From 4f85f92daf524ff80234f95efbb0ef60d66e3f7e Mon Sep 17 00:00:00 2001 From: shortstacked Date: Tue, 29 Jul 2025 10:38:53 +0100 Subject: [PATCH] ci: Migrate workflow tests to Playwright (#17370) --- .dockerignore | 4 +- .github/workflows/test-workflows-callable.yml | 213 +- .github/workflows/test-workflows-nightly.yml | 8 +- .../workflows/test-workflows-pr-approved.yml | 4 +- .../workflows/test-workflows-pr-comment.yml | 2 - packages/cli/src/command-registry.ts | 4 +- packages/testing/playwright/eslint.config.mjs | 14 +- packages/testing/playwright/global-setup.ts | 2 +- packages/testing/playwright/package.json | 6 + packages/testing/playwright/playwright | 0 .../testing/playwright/playwright.config.ts | 39 +- .../testing/playwright/services/api-helper.ts | 8 +- .../playwright/test-workflows/README.md | 286 ++ .../test-workflows/credentials.json | 3022 +++++++++++++++++ .../test-workflows/setup-workflow-tests.ts | 114 + .../testData/pdfs/04-valid.pdf | Bin .../testData/pdfs/05-versions-space.pdf | Bin .../test-workflows/workflow-tests.spec.ts | 142 + .../workflow-101-schema-mode-workflows.snap | 245 ++ .../workflow-103-schema-mode-workflows.snap | 337 ++ .../workflow-105-schema-mode-workflows.snap | 291 ++ .../workflow-108-schema-mode-workflows.snap | 1796 ++++++++++ .../workflow-109-schema-mode-workflows.snap | 521 +++ .../workflow-11-schema-mode-workflows.snap | 705 ++++ .../workflow-110-schema-mode-workflows.snap | 199 ++ .../workflow-111-schema-mode-workflows.snap | 337 ++ .../workflow-114-schema-mode-workflows.snap | 938 +++++ .../workflow-132-schema-mode-workflows.snap | 199 ++ .../workflow-133-schema-mode-workflows.snap | 153 + .../workflow-139-schema-mode-workflows.snap | 567 ++++ .../workflow-140-schema-mode-workflows.snap | 153 + .../workflow-144-schema-mode-workflows.snap | 245 ++ .../workflow-147-schema-mode-workflows.snap | 705 ++++ .../workflow-148-schema-mode-workflows.snap | 199 ++ .../workflow-15-schema-mode-workflows.snap | 935 +++++ .../workflow-150-schema-mode-workflows.snap | 337 ++ .../workflow-152-schema-mode-workflows.snap | 245 ++ .../workflow-153-schema-mode-workflows.snap | 199 ++ .../workflow-154-schema-mode-workflows.snap | 199 ++ .../workflow-155-schema-mode-workflows.snap | 797 +++++ .../workflow-156-schema-mode-workflows.snap | 153 + .../workflow-16-schema-mode-workflows.snap | 199 ++ .../workflow-161-schema-mode-workflows.snap | 153 + .../workflow-162-schema-mode-workflows.snap | 199 ++ .../workflow-164-schema-mode-workflows.snap | 1303 +++++++ .../workflow-166-schema-mode-workflows.snap | 797 +++++ .../workflow-17-schema-mode-workflows.snap | 153 + .../workflow-172-schema-mode-workflows.snap | 291 ++ .../workflow-174-schema-mode-workflows.snap | 521 +++ .../workflow-182-schema-mode-workflows.snap | 337 ++ .../workflow-184-schema-mode-workflows.snap | 1487 ++++++++ .../workflow-185-schema-mode-workflows.snap | 1533 +++++++++ .../workflow-186-schema-mode-workflows.snap | 1027 ++++++ .../workflow-19-schema-mode-workflows.snap | 981 ++++++ .../workflow-195-schema-mode-workflows.snap | 429 +++ .../workflow-202-schema-mode-workflows.snap | 337 ++ .../workflow-203-schema-mode-workflows.snap | 475 +++ .../workflow-205-schema-mode-workflows.snap | 153 + .../workflow-209-schema-mode-workflows.snap | 383 +++ .../workflow-212-schema-mode-workflows.snap | 843 +++++ .../workflow-216-schema-mode-workflows.snap | 245 ++ .../workflow-229-schema-mode-workflows.snap | 1027 ++++++ .../workflow-230-schema-mode-workflows.snap | 163 + .../workflow-231-schema-mode-workflows.snap | 294 ++ .../workflow-234-schema-mode-workflows.snap | 251 ++ .../workflow-235-schema-mode-workflows.snap | 496 +++ .../workflow-236-schema-mode-workflows.snap | 567 ++++ .../workflow-237-schema-mode-workflows.snap | 251 ++ .../workflow-238-schema-mode-workflows.snap | 251 ++ .../workflow-239-schema-mode-workflows.snap | 398 +++ .../workflow-240-schema-mode-workflows.snap | 521 +++ .../workflow-241-schema-mode-workflows.snap | 419 +++ .../workflow-242-schema-mode-workflows.snap | 348 ++ .../workflow-243-schema-mode-workflows.snap | 419 +++ .../workflow-244-schema-mode-workflows.snap | 538 +++ .../workflow-245-schema-mode-workflows.snap | 251 ++ .../workflow-246-schema-mode-workflows.snap | 251 ++ .../workflow-247-schema-mode-workflows.snap | 593 ++++ .../workflow-248-schema-mode-workflows.snap | 1262 +++++++ .../workflow-249-schema-mode-workflows.snap | 496 +++ .../workflow-250-schema-mode-workflows.snap | 736 ++++ .../workflow-251-schema-mode-workflows.snap | 373 ++ .../workflow-253-schema-mode-workflows.snap | 2108 ++++++++++++ .../workflow-254-schema-mode-workflows.snap | 2083 ++++++++++++ .../workflow-255-schema-mode-workflows.snap | 272 ++ .../workflow-256-schema-mode-workflows.snap | 706 ++++ .../workflow-257-schema-mode-workflows.snap | 688 ++++ .../workflow-258-schema-mode-workflows.snap | 810 +++++ .../workflow-259-schema-mode-workflows.snap | 1268 +++++++ .../workflow-32-schema-mode-workflows.snap | 291 ++ .../workflow-34-schema-mode-workflows.snap | 429 +++ .../workflow-35-schema-mode-workflows.snap | 659 ++++ .../workflow-36-schema-mode-workflows.snap | 1073 ++++++ .../workflow-37-schema-mode-workflows.snap | 705 ++++ .../workflow-44-schema-mode-workflows.snap | 613 ++++ .../workflow-48-schema-mode-workflows.snap | 935 +++++ .../workflow-49-schema-mode-workflows.snap | 245 ++ .../workflow-5-schema-mode-workflows.snap | 245 ++ .../workflow-50-schema-mode-workflows.snap | 337 ++ .../workflow-52-schema-mode-workflows.snap | 935 +++++ .../workflow-53-schema-mode-workflows.snap | 659 ++++ .../workflow-55-schema-mode-workflows.snap | 245 ++ .../workflow-58-schema-mode-workflows.snap | 383 +++ .../workflow-6-schema-mode-workflows.snap | 199 ++ .../workflow-60-schema-mode-workflows.snap | 337 ++ .../workflow-61-schema-mode-workflows.snap | 889 +++++ .../workflow-62-schema-mode-workflows.snap | 245 ++ .../workflow-63-schema-mode-workflows.snap | 291 ++ .../workflow-67-schema-mode-workflows.snap | 1165 +++++++ .../workflow-70-schema-mode-workflows.snap | 429 +++ .../workflow-71-schema-mode-workflows.snap | 429 +++ .../workflow-72-schema-mode-workflows.snap | 935 +++++ .../workflow-81-schema-mode-workflows.snap | 291 ++ .../workflow-83-schema-mode-workflows.snap | 199 ++ .../workflow-84-schema-mode-workflows.snap | 662 ++++ .../workflow-90-schema-mode-workflows.snap | 429 +++ .../workflow-91-schema-mode-workflows.snap | 383 +++ .../workflow-93-schema-mode-workflows.snap | 291 ++ .../workflow-95-schema-mode-workflows.snap | 199 ++ .../workflow-96-schema-mode-workflows.snap | 199 ++ .../workflow-97-schema-mode-workflows.snap | 935 +++++ .../workflow-98-schema-mode-workflows.snap | 291 ++ .../test-workflows/workflowConfig.json | 580 ++++ .../test-workflows/workflows/1.json | 165 + .../test-workflows/workflows/10.json | 292 ++ .../test-workflows/workflows/101.json | 108 + .../test-workflows/workflows/102.json | 72 + .../test-workflows/workflows/103.json | 149 + .../test-workflows/workflows/104.json | 71 + .../test-workflows/workflows/105.json | 118 + .../test-workflows/workflows/106.json | 373 ++ .../test-workflows/workflows/108.json | 969 ++++++ .../test-workflows/workflows/109.json | 280 ++ .../test-workflows/workflows/11.json | 387 +++ .../test-workflows/workflows/110.json | 70 + .../test-workflows/workflows/111.json | 130 + .../test-workflows/workflows/112.json | 192 ++ .../test-workflows/workflows/113.json | 91 + .../test-workflows/workflows/114.json | 561 +++ .../test-workflows/workflows/115.json | 184 + .../test-workflows/workflows/116.json | 236 ++ .../test-workflows/workflows/117.json | 112 + .../test-workflows/workflows/118.json | 216 ++ .../test-workflows/workflows/119.json | 181 + .../test-workflows/workflows/120.json | 209 ++ .../test-workflows/workflows/121.json | 421 +++ .../test-workflows/workflows/122.json | 466 +++ .../test-workflows/workflows/123.json | 213 ++ .../test-workflows/workflows/124.json | 151 + .../test-workflows/workflows/125.json | 210 ++ .../test-workflows/workflows/126.json | 88 + .../test-workflows/workflows/127.json | 84 + .../test-workflows/workflows/128.json | 112 + .../test-workflows/workflows/129.json | 749 ++++ .../test-workflows/workflows/130.json | 803 +++++ .../test-workflows/workflows/131.json | 57 + .../test-workflows/workflows/132.json | 82 + .../test-workflows/workflows/133.json | 55 + .../test-workflows/workflows/134.json | 235 ++ .../test-workflows/workflows/135.json | 204 ++ .../test-workflows/workflows/136.json | 140 + .../test-workflows/workflows/137.json | 1105 ++++++ .../test-workflows/workflows/138.json | 1235 +++++++ .../test-workflows/workflows/139.json | 334 ++ .../test-workflows/workflows/140.json | 56 + .../test-workflows/workflows/141.json | 402 +++ .../test-workflows/workflows/142.json | 1027 ++++++ .../test-workflows/workflows/143.json | 110 + .../test-workflows/workflows/144.json | 126 + .../test-workflows/workflows/145.json | 75 + .../test-workflows/workflows/146.json | 211 ++ .../test-workflows/workflows/147.json | 405 +++ .../test-workflows/workflows/148.json | 80 + .../test-workflows/workflows/149.json | 598 ++++ .../test-workflows/workflows/15.json | 486 +++ .../test-workflows/workflows/150.json | 197 ++ .../test-workflows/workflows/151.json | 480 +++ .../test-workflows/workflows/152.json | 98 + .../test-workflows/workflows/153.json | 75 + .../test-workflows/workflows/154.json | 76 + .../test-workflows/workflows/155.json | 462 +++ .../test-workflows/workflows/156.json | 55 + .../test-workflows/workflows/157.json | 446 +++ .../test-workflows/workflows/158.json | 236 ++ .../test-workflows/workflows/159.json | 415 +++ .../test-workflows/workflows/16.json | 84 + .../test-workflows/workflows/160.json | 266 ++ .../test-workflows/workflows/161.json | 56 + .../test-workflows/workflows/162.json | 101 + .../test-workflows/workflows/163.json | 247 ++ .../test-workflows/workflows/164.json | 731 ++++ .../test-workflows/workflows/165.json | 237 ++ .../test-workflows/workflows/166.json | 472 +++ .../test-workflows/workflows/167.json | 335 ++ .../test-workflows/workflows/168.json | 138 + .../test-workflows/workflows/169.json | 81 + .../test-workflows/workflows/17.json | 50 + .../test-workflows/workflows/170.json | 284 ++ .../test-workflows/workflows/171.json | 184 + .../test-workflows/workflows/172.json | 151 + .../test-workflows/workflows/173.json | 200 ++ .../test-workflows/workflows/174.json | 307 ++ .../test-workflows/workflows/176.json | 1084 ++++++ .../test-workflows/workflows/177.json | 750 ++++ .../test-workflows/workflows/179.json | 328 ++ .../test-workflows/workflows/180.json | 1228 +++++++ .../test-workflows/workflows/182.json | 214 ++ .../test-workflows/workflows/183.json | 560 +++ .../test-workflows/workflows/184.json | 837 +++++ .../test-workflows/workflows/185.json | 870 +++++ .../test-workflows/workflows/186.json | 555 +++ .../test-workflows/workflows/187.json | 242 ++ .../test-workflows/workflows/188.json | 77 + .../test-workflows/workflows/189.json | 481 +++ .../test-workflows/workflows/19.json | 719 ++++ .../test-workflows/workflows/190.json | 507 +++ .../test-workflows/workflows/191.json | 142 + .../test-workflows/workflows/192.json | 590 ++++ .../test-workflows/workflows/193.json | 141 + .../test-workflows/workflows/194.json | 113 + .../test-workflows/workflows/195.json | 209 ++ .../test-workflows/workflows/196.json | 1108 ++++++ .../test-workflows/workflows/197.json | 129 + .../test-workflows/workflows/198.json | 299 ++ .../test-workflows/workflows/199.json | 60 + .../test-workflows/workflows/20.json | 526 +++ .../test-workflows/workflows/200.json | 1016 ++++++ .../test-workflows/workflows/201.json | 269 ++ .../test-workflows/workflows/202.json | 174 + .../test-workflows/workflows/203.json | 307 ++ .../test-workflows/workflows/204.json | 417 +++ .../test-workflows/workflows/205.json | 57 + .../test-workflows/workflows/206.json | 443 +++ .../test-workflows/workflows/207.json | 483 +++ .../test-workflows/workflows/208.json | 63 + .../test-workflows/workflows/209.json | 191 ++ .../test-workflows/workflows/21.json | 427 +++ .../test-workflows/workflows/212.json | 405 +++ .../test-workflows/workflows/214.json | 48 + .../test-workflows/workflows/215.json | 350 ++ .../test-workflows/workflows/216.json | 89 + .../test-workflows/workflows/217.json | 139 + .../test-workflows/workflows/218.json | 144 + .../test-workflows/workflows/219.json | 356 ++ .../test-workflows/workflows/22.json | 186 + .../test-workflows/workflows/220.json | 315 ++ .../test-workflows/workflows/221.json | 846 +++++ .../test-workflows/workflows/222.json | 301 ++ .../test-workflows/workflows/223.json | 57 + .../test-workflows/workflows/224.json | 350 ++ .../test-workflows/workflows/225.json | 498 +++ .../test-workflows/workflows/226.json | 106 + .../test-workflows/workflows/227.json | 150 + .../test-workflows/workflows/229.json | 662 ++++ .../test-workflows/workflows/230.json | 67 + .../test-workflows/workflows/231.json | 171 + .../test-workflows/workflows/233.json | 532 +++ .../test-workflows/workflows/234.json | 82 + .../test-workflows/workflows/235.json | 210 ++ .../test-workflows/workflows/236.json | 234 ++ .../test-workflows/workflows/237.json | 82 + .../test-workflows/workflows/238.json | 86 + .../test-workflows/workflows/239.json | 104 + .../test-workflows/workflows/240.json | 216 ++ .../test-workflows/workflows/241.json | 142 + .../test-workflows/workflows/242.json | 103 + .../test-workflows/workflows/243.json | 142 + .../test-workflows/workflows/244.json | 321 ++ .../test-workflows/workflows/245.json | 82 + .../test-workflows/workflows/246.json | 82 + .../test-workflows/workflows/247.json | 232 ++ .../test-workflows/workflows/248.json | 470 +++ .../test-workflows/workflows/249.json | 215 ++ .../test-workflows/workflows/250.json | 513 +++ .../test-workflows/workflows/251.json | 104 + .../test-workflows/workflows/252.json | 812 +++++ .../test-workflows/workflows/253.json | 969 ++++++ .../test-workflows/workflows/254.json | 1023 ++++++ .../test-workflows/workflows/255.json | 77 + .../test-workflows/workflows/256.json | 172 + .../test-workflows/workflows/257.json | 235 ++ .../test-workflows/workflows/258.json | 236 ++ .../test-workflows/workflows/259.json | 451 +++ .../test-workflows/workflows/26.json | 654 ++++ .../test-workflows/workflows/27.json | 802 +++++ .../test-workflows/workflows/28.json | 556 +++ .../test-workflows/workflows/29.json | 422 +++ .../test-workflows/workflows/30.json | 423 +++ .../test-workflows/workflows/31.json | 747 ++++ .../test-workflows/workflows/32.json | 143 + .../test-workflows/workflows/33.json | 172 + .../test-workflows/workflows/34.json | 229 ++ .../test-workflows/workflows/35.json | 383 +++ .../test-workflows/workflows/36.json | 680 ++++ .../test-workflows/workflows/37.json | 424 +++ .../test-workflows/workflows/38.json | 81 + .../test-workflows/workflows/39.json | 857 +++++ .../test-workflows/workflows/4.json | 141 + .../test-workflows/workflows/40.json | 531 +++ .../test-workflows/workflows/41.json | 210 ++ .../test-workflows/workflows/42.json | 179 + .../test-workflows/workflows/43.json | 206 ++ .../test-workflows/workflows/44.json | 353 ++ .../test-workflows/workflows/45.json | 381 +++ .../test-workflows/workflows/46.json | 302 ++ .../test-workflows/workflows/47.json | 242 ++ .../test-workflows/workflows/48.json | 540 +++ .../test-workflows/workflows/49.json | 115 + .../test-workflows/workflows/5.json | 93 + .../test-workflows/workflows/50.json | 170 + .../test-workflows/workflows/51.json | 434 +++ .../test-workflows/workflows/52.json | 593 ++++ .../test-workflows/workflows/53.json | 371 ++ .../test-workflows/workflows/54.json | 769 +++++ .../test-workflows/workflows/55.json | 113 + .../test-workflows/workflows/56.json | 1040 ++++++ .../test-workflows/workflows/57.json | 126 + .../test-workflows/workflows/58.json | 197 ++ .../test-workflows/workflows/59.json | 342 ++ .../test-workflows/workflows/6.json | 69 + .../test-workflows/workflows/60.json | 175 + .../test-workflows/workflows/61.json | 525 +++ .../test-workflows/workflows/62.json | 105 + .../test-workflows/workflows/63.json | 145 + .../test-workflows/workflows/64.json | 84 + .../test-workflows/workflows/65.json | 110 + .../test-workflows/workflows/66.json | 147 + .../test-workflows/workflows/67.json | 719 ++++ .../test-workflows/workflows/68.json | 117 + .../test-workflows/workflows/69.json | 221 ++ .../test-workflows/workflows/70.json | 204 ++ .../test-workflows/workflows/71.json | 211 ++ .../test-workflows/workflows/72.json | 530 +++ .../test-workflows/workflows/73.json | 761 +++++ .../test-workflows/workflows/74.json | 145 + .../test-workflows/workflows/75.json | 523 +++ .../test-workflows/workflows/76.json | 761 +++++ .../test-workflows/workflows/77.json | 407 +++ .../test-workflows/workflows/78.json | 396 +++ .../test-workflows/workflows/79.json | 198 ++ .../test-workflows/workflows/80.json | 407 +++ .../test-workflows/workflows/81.json | 147 + .../test-workflows/workflows/82.json | 506 +++ .../test-workflows/workflows/83.json | 70 + .../test-workflows/workflows/84.json | 364 ++ .../test-workflows/workflows/85.json | 107 + .../test-workflows/workflows/86.json | 553 +++ .../test-workflows/workflows/87.json | 604 ++++ .../test-workflows/workflows/88.json | 546 +++ .../test-workflows/workflows/89.json | 396 +++ .../test-workflows/workflows/90.json | 196 ++ .../test-workflows/workflows/91.json | 179 + .../test-workflows/workflows/92.json | 792 +++++ .../test-workflows/workflows/93.json | 115 + .../test-workflows/workflows/94.json | 113 + .../test-workflows/workflows/95.json | 78 + .../test-workflows/workflows/96.json | 77 + .../test-workflows/workflows/97.json | 443 +++ .../test-workflows/workflows/98.json | 150 + pnpm-lock.yaml | 22 +- test-workflows/README.md | 2 - test-workflows/credentials.json | 3022 ----------------- test-workflows/skipList.json | 926 ----- test-workflows/snapshots/1-snapshot.json | 397 --- test-workflows/snapshots/10-snapshot.json | 708 ---- test-workflows/snapshots/101-snapshot.json | 132 - test-workflows/snapshots/103-snapshot.json | 213 -- test-workflows/snapshots/104-snapshot.json | 126 - test-workflows/snapshots/105-snapshot.json | 191 -- test-workflows/snapshots/107-snapshot.json | 63 - test-workflows/snapshots/108-snapshot.json | 1363 -------- test-workflows/snapshots/109-snapshot.json | 423 --- test-workflows/snapshots/11-snapshot.json | 642 ---- test-workflows/snapshots/110-snapshot.json | 105 - test-workflows/snapshots/111-snapshot.json | 320 -- test-workflows/snapshots/112-snapshot.json | 172 - test-workflows/snapshots/113-snapshot.json | 94 - test-workflows/snapshots/114-snapshot.json | 619 ---- test-workflows/snapshots/115-snapshot.json | 186 - test-workflows/snapshots/116-snapshot.json | 611 ---- test-workflows/snapshots/117-snapshot.json | 130 - test-workflows/snapshots/118-snapshot.json | 554 --- test-workflows/snapshots/119-snapshot.json | 166 - test-workflows/snapshots/120-snapshot.json | 223 -- test-workflows/snapshots/124-snapshot.json | 139 - test-workflows/snapshots/125-snapshot.json | 338 -- test-workflows/snapshots/128-snapshot.json | 137 - test-workflows/snapshots/130-snapshot.json | 815 ----- test-workflows/snapshots/131-snapshot.json | 71 - test-workflows/snapshots/132-snapshot.json | 112 - test-workflows/snapshots/133-snapshot.json | 99 - test-workflows/snapshots/139-snapshot.json | 1081 ------ test-workflows/snapshots/140-snapshot.json | 73 - test-workflows/snapshots/143-snapshot.json | 278 -- test-workflows/snapshots/145-snapshot.json | 105 - test-workflows/snapshots/146-snapshot.json | 198 -- test-workflows/snapshots/147-snapshot.json | 613 ---- test-workflows/snapshots/148-snapshot.json | 96 - test-workflows/snapshots/15-snapshot.json | 644 ---- test-workflows/snapshots/150-snapshot.json | 184 - test-workflows/snapshots/151-snapshot.json | 799 ----- test-workflows/snapshots/152-snapshot.json | 171 - test-workflows/snapshots/153-snapshot.json | 100 - test-workflows/snapshots/154-snapshot.json | 109 - test-workflows/snapshots/155-snapshot.json | 523 --- test-workflows/snapshots/156-snapshot.json | 72 - test-workflows/snapshots/16-snapshot.json | 132 - test-workflows/snapshots/161-snapshot.json | 75 - test-workflows/snapshots/162-snapshot.json | 105 - test-workflows/snapshots/163-snapshot.json | 302 -- test-workflows/snapshots/164-snapshot.json | 1007 ------ test-workflows/snapshots/166-snapshot.json | 1263 ------- test-workflows/snapshots/169-snapshot.json | 94 - test-workflows/snapshots/17-snapshot.json | 120 - test-workflows/snapshots/172-snapshot.json | 187 - test-workflows/snapshots/174-snapshot.json | 305 -- test-workflows/snapshots/177-snapshot.json | 1047 ------ test-workflows/snapshots/182-snapshot.json | 244 -- test-workflows/snapshots/184-snapshot.json | 1341 -------- test-workflows/snapshots/185-snapshot.json | 1588 --------- test-workflows/snapshots/186-snapshot.json | 919 ----- test-workflows/snapshots/187-snapshot.json | 253 -- test-workflows/snapshots/190-snapshot.json | 1258 ------- test-workflows/snapshots/191-snapshot.json | 283 -- test-workflows/snapshots/192-snapshot.json | 729 ---- test-workflows/snapshots/194-snapshot.json | 142 - test-workflows/snapshots/195-snapshot.json | 330 -- test-workflows/snapshots/197-snapshot.json | 142 - test-workflows/snapshots/198-snapshot.json | 301 -- test-workflows/snapshots/199-snapshot.json | 77 - test-workflows/snapshots/20-snapshot.json | 578 ---- test-workflows/snapshots/202-snapshot.json | 260 -- test-workflows/snapshots/203-snapshot.json | 327 -- test-workflows/snapshots/205-snapshot.json | 74 - test-workflows/snapshots/208-snapshot.json | 72 - test-workflows/snapshots/209-snapshot.json | 246 -- test-workflows/snapshots/21-snapshot.json | 473 --- test-workflows/snapshots/212-snapshot.json | 546 --- test-workflows/snapshots/216-snapshot.json | 169 - test-workflows/snapshots/223-snapshot.json | 73 - test-workflows/snapshots/229-snapshot.json | 664 ---- test-workflows/snapshots/230-snapshot.json | 79 - test-workflows/snapshots/231-snapshot.json | 164 - test-workflows/snapshots/232-snapshot.json | 126 - test-workflows/snapshots/233-snapshot.json | 961 ------ test-workflows/snapshots/234-snapshot.json | 146 - test-workflows/snapshots/235-snapshot.json | 324 -- test-workflows/snapshots/236-snapshot.json | 630 ---- test-workflows/snapshots/237-snapshot.json | 150 - test-workflows/snapshots/238-snapshot.json | 149 - test-workflows/snapshots/239-snapshot.json | 583 ---- test-workflows/snapshots/240-snapshot.json | 391 --- test-workflows/snapshots/241-snapshot.json | 296 -- test-workflows/snapshots/242-snapshot.json | 212 -- test-workflows/snapshots/243-snapshot.json | 305 -- test-workflows/snapshots/244-snapshot.json | 431 --- test-workflows/snapshots/245-snapshot.json | 145 - test-workflows/snapshots/246-snapshot.json | 152 - test-workflows/snapshots/247-snapshot.json | 380 --- test-workflows/snapshots/248-snapshot.json | 946 ------ test-workflows/snapshots/249-snapshot.json | 324 -- test-workflows/snapshots/250-snapshot.json | 946 ------ test-workflows/snapshots/251-snapshot.json | 276 -- test-workflows/snapshots/252-snapshot.json | 1719 ---------- test-workflows/snapshots/253-snapshot.json | 1821 ---------- test-workflows/snapshots/254-snapshot.json | 1763 ---------- test-workflows/snapshots/255-snapshot.json | 179 - test-workflows/snapshots/256-snapshot.json | 535 --- test-workflows/snapshots/257-snapshot.json | 734 ---- test-workflows/snapshots/258-snapshot.json | 980 ------ test-workflows/snapshots/259-snapshot.json | 1380 -------- test-workflows/snapshots/26-snapshot.json | 408 --- test-workflows/snapshots/29-snapshot.json | 561 --- test-workflows/snapshots/32-snapshot.json | 168 - test-workflows/snapshots/33-snapshot.json | 220 -- test-workflows/snapshots/34-snapshot.json | 544 --- test-workflows/snapshots/35-snapshot.json | 476 --- test-workflows/snapshots/36-snapshot.json | 1007 ------ test-workflows/snapshots/37-snapshot.json | 1205 ------- test-workflows/snapshots/38-snapshot.json | 107 - test-workflows/snapshots/40-snapshot.json | 620 ---- test-workflows/snapshots/41-snapshot.json | 299 -- test-workflows/snapshots/42-snapshot.json | 214 -- test-workflows/snapshots/43-snapshot.json | 265 -- test-workflows/snapshots/44-snapshot.json | 380 --- test-workflows/snapshots/45-snapshot.json | 427 --- test-workflows/snapshots/46-snapshot.json | 731 ---- test-workflows/snapshots/48-snapshot.json | 1071 ------ test-workflows/snapshots/49-snapshot.json | 173 - test-workflows/snapshots/5-snapshot.json | 184 - test-workflows/snapshots/51-snapshot.json | 644 ---- test-workflows/snapshots/52-snapshot.json | 629 ---- test-workflows/snapshots/53-snapshot.json | 411 --- test-workflows/snapshots/55-snapshot.json | 201 -- test-workflows/snapshots/58-snapshot.json | 314 -- test-workflows/snapshots/6-snapshot.json | 177 - test-workflows/snapshots/60-snapshot.json | 426 --- test-workflows/snapshots/61-snapshot.json | 800 ----- test-workflows/snapshots/62-snapshot.json | 243 -- test-workflows/snapshots/63-snapshot.json | 156 - test-workflows/snapshots/66-snapshot.json | 439 --- test-workflows/snapshots/67-snapshot.json | 1348 -------- test-workflows/snapshots/70-snapshot.json | 395 --- test-workflows/snapshots/71-snapshot.json | 395 --- test-workflows/snapshots/72-snapshot.json | 852 ----- test-workflows/snapshots/73-snapshot.json | 965 ------ test-workflows/snapshots/78-snapshot.json | 879 ----- test-workflows/snapshots/81-snapshot.json | 197 -- test-workflows/snapshots/83-snapshot.json | 933 ----- test-workflows/snapshots/84-snapshot.json | 425 --- test-workflows/snapshots/86-snapshot.json | 875 ----- test-workflows/snapshots/87-snapshot.json | 829 ----- test-workflows/snapshots/88-snapshot.json | 704 ---- test-workflows/snapshots/90-snapshot.json | 241 -- test-workflows/snapshots/91-snapshot.json | 229 -- test-workflows/snapshots/93-snapshot.json | 184 - test-workflows/snapshots/95-snapshot.json | 101 - test-workflows/snapshots/96-snapshot.json | 126 - test-workflows/snapshots/97-snapshot.json | 551 --- test-workflows/snapshots/98-snapshot.json | 322 -- test-workflows/workflows/1.json | 183 - test-workflows/workflows/10.json | 325 -- test-workflows/workflows/101.json | 120 - test-workflows/workflows/102.json | 81 - test-workflows/workflows/103.json | 167 - test-workflows/workflows/104.json | 80 - test-workflows/workflows/105.json | 133 - test-workflows/workflows/106.json | 412 --- test-workflows/workflows/107.json | 81 - test-workflows/workflows/108.json | 1080 ------ test-workflows/workflows/109.json | 310 -- test-workflows/workflows/11.json | 433 --- test-workflows/workflows/110.json | 79 - test-workflows/workflows/111.json | 148 - test-workflows/workflows/112.json | 210 -- test-workflows/workflows/113.json | 102 - test-workflows/workflows/114.json | 618 ---- test-workflows/workflows/115.json | 202 -- test-workflows/workflows/116.json | 260 -- test-workflows/workflows/117.json | 124 - test-workflows/workflows/118.json | 240 -- test-workflows/workflows/119.json | 199 -- test-workflows/workflows/120.json | 230 -- test-workflows/workflows/121.json | 463 --- test-workflows/workflows/122.json | 514 --- test-workflows/workflows/123.json | 234 -- test-workflows/workflows/124.json | 166 - test-workflows/workflows/125.json | 231 -- test-workflows/workflows/126.json | 97 - test-workflows/workflows/127.json | 95 - test-workflows/workflows/128.json | 124 - test-workflows/workflows/129.json | 835 ----- test-workflows/workflows/130.json | 883 ----- test-workflows/workflows/131.json | 65 - test-workflows/workflows/132.json | 91 - test-workflows/workflows/133.json | 61 - test-workflows/workflows/134.json | 262 -- test-workflows/workflows/135.json | 225 -- test-workflows/workflows/136.json | 155 - test-workflows/workflows/137.json | 1230 ------- test-workflows/workflows/138.json | 1375 -------- test-workflows/workflows/139.json | 367 -- test-workflows/workflows/140.json | 62 - test-workflows/workflows/141.json | 444 --- test-workflows/workflows/142.json | 1141 ------- test-workflows/workflows/143.json | 122 - test-workflows/workflows/144.json | 138 - test-workflows/workflows/145.json | 84 - test-workflows/workflows/146.json | 232 -- test-workflows/workflows/147.json | 447 --- test-workflows/workflows/148.json | 89 - test-workflows/workflows/149.json | 664 ---- test-workflows/workflows/15.json | 543 --- test-workflows/workflows/150.json | 215 -- test-workflows/workflows/151.json | 480 --- test-workflows/workflows/152.json | 110 - test-workflows/workflows/153.json | 84 - test-workflows/workflows/154.json | 85 - test-workflows/workflows/155.json | 512 --- test-workflows/workflows/156.json | 61 - test-workflows/workflows/157.json | 495 --- test-workflows/workflows/158.json | 260 -- test-workflows/workflows/159.json | 457 --- test-workflows/workflows/16.json | 93 - test-workflows/workflows/160.json | 293 -- test-workflows/workflows/161.json | 62 - test-workflows/workflows/162.json | 110 - test-workflows/workflows/163.json | 277 -- test-workflows/workflows/164.json | 812 ----- test-workflows/workflows/165.json | 264 -- test-workflows/workflows/166.json | 520 --- test-workflows/workflows/167.json | 370 -- test-workflows/workflows/168.json | 153 - test-workflows/workflows/169.json | 90 - test-workflows/workflows/17.json | 56 - test-workflows/workflows/170.json | 311 -- test-workflows/workflows/171.json | 202 -- test-workflows/workflows/172.json | 166 - test-workflows/workflows/173.json | 221 -- test-workflows/workflows/174.json | 337 -- test-workflows/workflows/176.json | 1192 ------- test-workflows/workflows/177.json | 825 ----- test-workflows/workflows/179.json | 363 -- test-workflows/workflows/180.json | 1351 -------- test-workflows/workflows/182.json | 232 -- test-workflows/workflows/183.json | 617 ---- test-workflows/workflows/184.json | 930 ----- test-workflows/workflows/185.json | 966 ------ test-workflows/workflows/186.json | 618 ---- test-workflows/workflows/187.json | 266 -- test-workflows/workflows/188.json | 86 - test-workflows/workflows/189.json | 534 --- test-workflows/workflows/19.json | 794 ----- test-workflows/workflows/190.json | 561 --- test-workflows/workflows/191.json | 157 - test-workflows/workflows/192.json | 650 ---- test-workflows/workflows/193.json | 159 - test-workflows/workflows/194.json | 125 - test-workflows/workflows/195.json | 233 -- test-workflows/workflows/196.json | 1222 ------- test-workflows/workflows/197.json | 144 - test-workflows/workflows/198.json | 329 -- test-workflows/workflows/199.json | 66 - test-workflows/workflows/20.json | 583 ---- test-workflows/workflows/200.json | 1121 ------ test-workflows/workflows/201.json | 296 -- test-workflows/workflows/202.json | 192 -- test-workflows/workflows/203.json | 340 -- test-workflows/workflows/204.json | 459 --- test-workflows/workflows/205.json | 63 - test-workflows/workflows/206.json | 490 --- test-workflows/workflows/207.json | 531 --- test-workflows/workflows/208.json | 69 - test-workflows/workflows/209.json | 212 -- test-workflows/workflows/21.json | 469 --- test-workflows/workflows/212.json | 456 --- test-workflows/workflows/214.json | 54 - test-workflows/workflows/215.json | 392 --- test-workflows/workflows/216.json | 101 - test-workflows/workflows/217.json | 160 - test-workflows/workflows/218.json | 159 - test-workflows/workflows/219.json | 393 --- test-workflows/workflows/22.json | 207 -- test-workflows/workflows/220.json | 348 -- test-workflows/workflows/221.json | 930 ----- test-workflows/workflows/222.json | 336 -- test-workflows/workflows/223.json | 63 - test-workflows/workflows/224.json | 404 --- test-workflows/workflows/225.json | 546 --- test-workflows/workflows/226.json | 118 - test-workflows/workflows/227.json | 165 - test-workflows/workflows/229.json | 731 ---- test-workflows/workflows/230.json | 73 - test-workflows/workflows/231.json | 171 - test-workflows/workflows/233.json | 586 ---- test-workflows/workflows/234.json | 91 - test-workflows/workflows/235.json | 231 -- test-workflows/workflows/236.json | 258 -- test-workflows/workflows/237.json | 91 - test-workflows/workflows/238.json | 95 - test-workflows/workflows/239.json | 116 - test-workflows/workflows/240.json | 237 -- test-workflows/workflows/241.json | 157 - test-workflows/workflows/242.json | 115 - test-workflows/workflows/243.json | 157 - test-workflows/workflows/244.json | 351 -- test-workflows/workflows/245.json | 91 - test-workflows/workflows/246.json | 91 - test-workflows/workflows/247.json | 256 -- test-workflows/workflows/248.json | 521 --- test-workflows/workflows/249.json | 236 -- test-workflows/workflows/250.json | 564 --- test-workflows/workflows/251.json | 116 - test-workflows/workflows/252.json | 899 ----- test-workflows/workflows/253.json | 1074 ------ test-workflows/workflows/254.json | 1131 ------ test-workflows/workflows/255.json | 86 - test-workflows/workflows/256.json | 193 -- test-workflows/workflows/257.json | 262 -- test-workflows/workflows/258.json | 263 -- test-workflows/workflows/259.json | 499 --- test-workflows/workflows/26.json | 729 ---- test-workflows/workflows/27.json | 892 ----- test-workflows/workflows/28.json | 619 ---- test-workflows/workflows/29.json | 470 --- test-workflows/workflows/30.json | 471 --- test-workflows/workflows/31.json | 831 ----- test-workflows/workflows/32.json | 158 - test-workflows/workflows/33.json | 190 -- test-workflows/workflows/34.json | 253 -- test-workflows/workflows/35.json | 422 --- test-workflows/workflows/36.json | 753 ---- test-workflows/workflows/37.json | 466 --- test-workflows/workflows/38.json | 90 - test-workflows/workflows/39.json | 938 ----- test-workflows/workflows/4.json | 158 - test-workflows/workflows/40.json | 598 ---- test-workflows/workflows/41.json | 231 -- test-workflows/workflows/42.json | 197 -- test-workflows/workflows/43.json | 233 -- test-workflows/workflows/44.json | 389 --- test-workflows/workflows/45.json | 417 --- test-workflows/workflows/46.json | 332 -- test-workflows/workflows/47.json | 268 -- test-workflows/workflows/48.json | 603 ---- test-workflows/workflows/49.json | 127 - test-workflows/workflows/5.json | 105 - test-workflows/workflows/50.json | 192 -- test-workflows/workflows/51.json | 479 --- test-workflows/workflows/52.json | 653 ---- test-workflows/workflows/53.json | 410 --- test-workflows/workflows/54.json | 852 ----- test-workflows/workflows/55.json | 125 - test-workflows/workflows/56.json | 1145 ------- test-workflows/workflows/57.json | 141 - test-workflows/workflows/58.json | 220 -- test-workflows/workflows/59.json | 381 --- test-workflows/workflows/6.json | 78 - test-workflows/workflows/60.json | 193 -- test-workflows/workflows/61.json | 582 ---- test-workflows/workflows/62.json | 117 - test-workflows/workflows/63.json | 160 - test-workflows/workflows/64.json | 93 - test-workflows/workflows/65.json | 122 - test-workflows/workflows/66.json | 162 - test-workflows/workflows/67.json | 791 ----- test-workflows/workflows/68.json | 129 - test-workflows/workflows/69.json | 255 -- test-workflows/workflows/70.json | 228 -- test-workflows/workflows/71.json | 235 -- test-workflows/workflows/72.json | 589 ---- test-workflows/workflows/73.json | 857 ----- test-workflows/workflows/74.json | 160 - test-workflows/workflows/75.json | 574 ---- test-workflows/workflows/76.json | 836 ----- test-workflows/workflows/77.json | 446 --- test-workflows/workflows/78.json | 444 --- test-workflows/workflows/79.json | 219 -- test-workflows/workflows/80.json | 449 --- test-workflows/workflows/81.json | 162 - test-workflows/workflows/82.json | 563 --- test-workflows/workflows/83.json | 79 - test-workflows/workflows/84.json | 407 --- test-workflows/workflows/85.json | 119 - test-workflows/workflows/86.json | 610 ---- test-workflows/workflows/87.json | 667 ---- test-workflows/workflows/88.json | 600 ---- test-workflows/workflows/89.json | 438 --- test-workflows/workflows/90.json | 220 -- test-workflows/workflows/91.json | 200 -- test-workflows/workflows/92.json | 864 ----- test-workflows/workflows/93.json | 130 - test-workflows/workflows/94.json | 128 - test-workflows/workflows/95.json | 87 - test-workflows/workflows/96.json | 86 - test-workflows/workflows/97.json | 500 --- test-workflows/workflows/98.json | 165 - 757 files changed, 138083 insertions(+), 160832 deletions(-) create mode 100644 packages/testing/playwright/playwright create mode 100644 packages/testing/playwright/test-workflows/README.md create mode 100644 packages/testing/playwright/test-workflows/credentials.json create mode 100644 packages/testing/playwright/test-workflows/setup-workflow-tests.ts rename {test-workflows => packages/testing/playwright/test-workflows}/testData/pdfs/04-valid.pdf (100%) rename {test-workflows => packages/testing/playwright/test-workflows}/testData/pdfs/05-versions-space.pdf (100%) create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-195-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap create mode 100644 packages/testing/playwright/test-workflows/workflowConfig.json create mode 100644 packages/testing/playwright/test-workflows/workflows/1.json create mode 100644 packages/testing/playwright/test-workflows/workflows/10.json create mode 100644 packages/testing/playwright/test-workflows/workflows/101.json create mode 100644 packages/testing/playwright/test-workflows/workflows/102.json create mode 100644 packages/testing/playwright/test-workflows/workflows/103.json create mode 100644 packages/testing/playwright/test-workflows/workflows/104.json create mode 100644 packages/testing/playwright/test-workflows/workflows/105.json create mode 100644 packages/testing/playwright/test-workflows/workflows/106.json create mode 100644 packages/testing/playwright/test-workflows/workflows/108.json create mode 100644 packages/testing/playwright/test-workflows/workflows/109.json create mode 100644 packages/testing/playwright/test-workflows/workflows/11.json create mode 100644 packages/testing/playwright/test-workflows/workflows/110.json create mode 100644 packages/testing/playwright/test-workflows/workflows/111.json create mode 100644 packages/testing/playwright/test-workflows/workflows/112.json create mode 100644 packages/testing/playwright/test-workflows/workflows/113.json create mode 100644 packages/testing/playwright/test-workflows/workflows/114.json create mode 100644 packages/testing/playwright/test-workflows/workflows/115.json create mode 100644 packages/testing/playwright/test-workflows/workflows/116.json create mode 100644 packages/testing/playwright/test-workflows/workflows/117.json create mode 100644 packages/testing/playwright/test-workflows/workflows/118.json create mode 100644 packages/testing/playwright/test-workflows/workflows/119.json create mode 100644 packages/testing/playwright/test-workflows/workflows/120.json create mode 100644 packages/testing/playwright/test-workflows/workflows/121.json create mode 100644 packages/testing/playwright/test-workflows/workflows/122.json create mode 100644 packages/testing/playwright/test-workflows/workflows/123.json create mode 100644 packages/testing/playwright/test-workflows/workflows/124.json create mode 100644 packages/testing/playwright/test-workflows/workflows/125.json create mode 100644 packages/testing/playwright/test-workflows/workflows/126.json create mode 100644 packages/testing/playwright/test-workflows/workflows/127.json create mode 100644 packages/testing/playwright/test-workflows/workflows/128.json create mode 100644 packages/testing/playwright/test-workflows/workflows/129.json create mode 100644 packages/testing/playwright/test-workflows/workflows/130.json create mode 100644 packages/testing/playwright/test-workflows/workflows/131.json create mode 100644 packages/testing/playwright/test-workflows/workflows/132.json create mode 100644 packages/testing/playwright/test-workflows/workflows/133.json create mode 100644 packages/testing/playwright/test-workflows/workflows/134.json create mode 100644 packages/testing/playwright/test-workflows/workflows/135.json create mode 100644 packages/testing/playwright/test-workflows/workflows/136.json create mode 100644 packages/testing/playwright/test-workflows/workflows/137.json create mode 100644 packages/testing/playwright/test-workflows/workflows/138.json create mode 100644 packages/testing/playwright/test-workflows/workflows/139.json create mode 100644 packages/testing/playwright/test-workflows/workflows/140.json create mode 100644 packages/testing/playwright/test-workflows/workflows/141.json create mode 100644 packages/testing/playwright/test-workflows/workflows/142.json create mode 100644 packages/testing/playwright/test-workflows/workflows/143.json create mode 100644 packages/testing/playwright/test-workflows/workflows/144.json create mode 100644 packages/testing/playwright/test-workflows/workflows/145.json create mode 100644 packages/testing/playwright/test-workflows/workflows/146.json create mode 100644 packages/testing/playwright/test-workflows/workflows/147.json create mode 100644 packages/testing/playwright/test-workflows/workflows/148.json create mode 100644 packages/testing/playwright/test-workflows/workflows/149.json create mode 100644 packages/testing/playwright/test-workflows/workflows/15.json create mode 100644 packages/testing/playwright/test-workflows/workflows/150.json create mode 100644 packages/testing/playwright/test-workflows/workflows/151.json create mode 100644 packages/testing/playwright/test-workflows/workflows/152.json create mode 100644 packages/testing/playwright/test-workflows/workflows/153.json create mode 100644 packages/testing/playwright/test-workflows/workflows/154.json create mode 100644 packages/testing/playwright/test-workflows/workflows/155.json create mode 100644 packages/testing/playwright/test-workflows/workflows/156.json create mode 100644 packages/testing/playwright/test-workflows/workflows/157.json create mode 100644 packages/testing/playwright/test-workflows/workflows/158.json create mode 100644 packages/testing/playwright/test-workflows/workflows/159.json create mode 100644 packages/testing/playwright/test-workflows/workflows/16.json create mode 100644 packages/testing/playwright/test-workflows/workflows/160.json create mode 100644 packages/testing/playwright/test-workflows/workflows/161.json create mode 100644 packages/testing/playwright/test-workflows/workflows/162.json create mode 100644 packages/testing/playwright/test-workflows/workflows/163.json create mode 100644 packages/testing/playwright/test-workflows/workflows/164.json create mode 100644 packages/testing/playwright/test-workflows/workflows/165.json create mode 100644 packages/testing/playwright/test-workflows/workflows/166.json create mode 100644 packages/testing/playwright/test-workflows/workflows/167.json create mode 100644 packages/testing/playwright/test-workflows/workflows/168.json create mode 100644 packages/testing/playwright/test-workflows/workflows/169.json create mode 100644 packages/testing/playwright/test-workflows/workflows/17.json create mode 100644 packages/testing/playwright/test-workflows/workflows/170.json create mode 100644 packages/testing/playwright/test-workflows/workflows/171.json create mode 100644 packages/testing/playwright/test-workflows/workflows/172.json create mode 100644 packages/testing/playwright/test-workflows/workflows/173.json create mode 100644 packages/testing/playwright/test-workflows/workflows/174.json create mode 100644 packages/testing/playwright/test-workflows/workflows/176.json create mode 100644 packages/testing/playwright/test-workflows/workflows/177.json create mode 100644 packages/testing/playwright/test-workflows/workflows/179.json create mode 100644 packages/testing/playwright/test-workflows/workflows/180.json create mode 100644 packages/testing/playwright/test-workflows/workflows/182.json create mode 100644 packages/testing/playwright/test-workflows/workflows/183.json create mode 100644 packages/testing/playwright/test-workflows/workflows/184.json create mode 100644 packages/testing/playwright/test-workflows/workflows/185.json create mode 100644 packages/testing/playwright/test-workflows/workflows/186.json create mode 100644 packages/testing/playwright/test-workflows/workflows/187.json create mode 100644 packages/testing/playwright/test-workflows/workflows/188.json create mode 100644 packages/testing/playwright/test-workflows/workflows/189.json create mode 100644 packages/testing/playwright/test-workflows/workflows/19.json create mode 100644 packages/testing/playwright/test-workflows/workflows/190.json create mode 100644 packages/testing/playwright/test-workflows/workflows/191.json create mode 100644 packages/testing/playwright/test-workflows/workflows/192.json create mode 100644 packages/testing/playwright/test-workflows/workflows/193.json create mode 100644 packages/testing/playwright/test-workflows/workflows/194.json create mode 100644 packages/testing/playwright/test-workflows/workflows/195.json create mode 100644 packages/testing/playwright/test-workflows/workflows/196.json create mode 100644 packages/testing/playwright/test-workflows/workflows/197.json create mode 100644 packages/testing/playwright/test-workflows/workflows/198.json create mode 100644 packages/testing/playwright/test-workflows/workflows/199.json create mode 100644 packages/testing/playwright/test-workflows/workflows/20.json create mode 100644 packages/testing/playwright/test-workflows/workflows/200.json create mode 100644 packages/testing/playwright/test-workflows/workflows/201.json create mode 100644 packages/testing/playwright/test-workflows/workflows/202.json create mode 100644 packages/testing/playwright/test-workflows/workflows/203.json create mode 100644 packages/testing/playwright/test-workflows/workflows/204.json create mode 100644 packages/testing/playwright/test-workflows/workflows/205.json create mode 100644 packages/testing/playwright/test-workflows/workflows/206.json create mode 100644 packages/testing/playwright/test-workflows/workflows/207.json create mode 100644 packages/testing/playwright/test-workflows/workflows/208.json create mode 100644 packages/testing/playwright/test-workflows/workflows/209.json create mode 100644 packages/testing/playwright/test-workflows/workflows/21.json create mode 100644 packages/testing/playwright/test-workflows/workflows/212.json create mode 100644 packages/testing/playwright/test-workflows/workflows/214.json create mode 100644 packages/testing/playwright/test-workflows/workflows/215.json create mode 100644 packages/testing/playwright/test-workflows/workflows/216.json create mode 100644 packages/testing/playwright/test-workflows/workflows/217.json create mode 100644 packages/testing/playwright/test-workflows/workflows/218.json create mode 100644 packages/testing/playwright/test-workflows/workflows/219.json create mode 100644 packages/testing/playwright/test-workflows/workflows/22.json create mode 100644 packages/testing/playwright/test-workflows/workflows/220.json create mode 100644 packages/testing/playwright/test-workflows/workflows/221.json create mode 100644 packages/testing/playwright/test-workflows/workflows/222.json create mode 100644 packages/testing/playwright/test-workflows/workflows/223.json create mode 100644 packages/testing/playwright/test-workflows/workflows/224.json create mode 100644 packages/testing/playwright/test-workflows/workflows/225.json create mode 100644 packages/testing/playwright/test-workflows/workflows/226.json create mode 100644 packages/testing/playwright/test-workflows/workflows/227.json create mode 100644 packages/testing/playwright/test-workflows/workflows/229.json create mode 100644 packages/testing/playwright/test-workflows/workflows/230.json create mode 100644 packages/testing/playwright/test-workflows/workflows/231.json create mode 100644 packages/testing/playwright/test-workflows/workflows/233.json create mode 100644 packages/testing/playwright/test-workflows/workflows/234.json create mode 100644 packages/testing/playwright/test-workflows/workflows/235.json create mode 100644 packages/testing/playwright/test-workflows/workflows/236.json create mode 100644 packages/testing/playwright/test-workflows/workflows/237.json create mode 100644 packages/testing/playwright/test-workflows/workflows/238.json create mode 100644 packages/testing/playwright/test-workflows/workflows/239.json create mode 100644 packages/testing/playwright/test-workflows/workflows/240.json create mode 100644 packages/testing/playwright/test-workflows/workflows/241.json create mode 100644 packages/testing/playwright/test-workflows/workflows/242.json create mode 100644 packages/testing/playwright/test-workflows/workflows/243.json create mode 100644 packages/testing/playwright/test-workflows/workflows/244.json create mode 100644 packages/testing/playwright/test-workflows/workflows/245.json create mode 100644 packages/testing/playwright/test-workflows/workflows/246.json create mode 100644 packages/testing/playwright/test-workflows/workflows/247.json create mode 100644 packages/testing/playwright/test-workflows/workflows/248.json create mode 100644 packages/testing/playwright/test-workflows/workflows/249.json create mode 100644 packages/testing/playwright/test-workflows/workflows/250.json create mode 100644 packages/testing/playwright/test-workflows/workflows/251.json create mode 100644 packages/testing/playwright/test-workflows/workflows/252.json create mode 100644 packages/testing/playwright/test-workflows/workflows/253.json create mode 100644 packages/testing/playwright/test-workflows/workflows/254.json create mode 100644 packages/testing/playwright/test-workflows/workflows/255.json create mode 100644 packages/testing/playwright/test-workflows/workflows/256.json create mode 100644 packages/testing/playwright/test-workflows/workflows/257.json create mode 100644 packages/testing/playwright/test-workflows/workflows/258.json create mode 100644 packages/testing/playwright/test-workflows/workflows/259.json create mode 100644 packages/testing/playwright/test-workflows/workflows/26.json create mode 100644 packages/testing/playwright/test-workflows/workflows/27.json create mode 100644 packages/testing/playwright/test-workflows/workflows/28.json create mode 100644 packages/testing/playwright/test-workflows/workflows/29.json create mode 100644 packages/testing/playwright/test-workflows/workflows/30.json create mode 100644 packages/testing/playwright/test-workflows/workflows/31.json create mode 100644 packages/testing/playwright/test-workflows/workflows/32.json create mode 100644 packages/testing/playwright/test-workflows/workflows/33.json create mode 100644 packages/testing/playwright/test-workflows/workflows/34.json create mode 100644 packages/testing/playwright/test-workflows/workflows/35.json create mode 100644 packages/testing/playwright/test-workflows/workflows/36.json create mode 100644 packages/testing/playwright/test-workflows/workflows/37.json create mode 100644 packages/testing/playwright/test-workflows/workflows/38.json create mode 100644 packages/testing/playwright/test-workflows/workflows/39.json create mode 100644 packages/testing/playwright/test-workflows/workflows/4.json create mode 100644 packages/testing/playwright/test-workflows/workflows/40.json create mode 100644 packages/testing/playwright/test-workflows/workflows/41.json create mode 100644 packages/testing/playwright/test-workflows/workflows/42.json create mode 100644 packages/testing/playwright/test-workflows/workflows/43.json create mode 100644 packages/testing/playwright/test-workflows/workflows/44.json create mode 100644 packages/testing/playwright/test-workflows/workflows/45.json create mode 100644 packages/testing/playwright/test-workflows/workflows/46.json create mode 100644 packages/testing/playwright/test-workflows/workflows/47.json create mode 100644 packages/testing/playwright/test-workflows/workflows/48.json create mode 100644 packages/testing/playwright/test-workflows/workflows/49.json create mode 100644 packages/testing/playwright/test-workflows/workflows/5.json create mode 100644 packages/testing/playwright/test-workflows/workflows/50.json create mode 100644 packages/testing/playwright/test-workflows/workflows/51.json create mode 100644 packages/testing/playwright/test-workflows/workflows/52.json create mode 100644 packages/testing/playwright/test-workflows/workflows/53.json create mode 100644 packages/testing/playwright/test-workflows/workflows/54.json create mode 100644 packages/testing/playwright/test-workflows/workflows/55.json create mode 100644 packages/testing/playwright/test-workflows/workflows/56.json create mode 100644 packages/testing/playwright/test-workflows/workflows/57.json create mode 100644 packages/testing/playwright/test-workflows/workflows/58.json create mode 100644 packages/testing/playwright/test-workflows/workflows/59.json create mode 100644 packages/testing/playwright/test-workflows/workflows/6.json create mode 100644 packages/testing/playwright/test-workflows/workflows/60.json create mode 100644 packages/testing/playwright/test-workflows/workflows/61.json create mode 100644 packages/testing/playwright/test-workflows/workflows/62.json create mode 100644 packages/testing/playwright/test-workflows/workflows/63.json create mode 100644 packages/testing/playwright/test-workflows/workflows/64.json create mode 100644 packages/testing/playwright/test-workflows/workflows/65.json create mode 100644 packages/testing/playwright/test-workflows/workflows/66.json create mode 100644 packages/testing/playwright/test-workflows/workflows/67.json create mode 100644 packages/testing/playwright/test-workflows/workflows/68.json create mode 100644 packages/testing/playwright/test-workflows/workflows/69.json create mode 100644 packages/testing/playwright/test-workflows/workflows/70.json create mode 100644 packages/testing/playwright/test-workflows/workflows/71.json create mode 100644 packages/testing/playwright/test-workflows/workflows/72.json create mode 100644 packages/testing/playwright/test-workflows/workflows/73.json create mode 100644 packages/testing/playwright/test-workflows/workflows/74.json create mode 100644 packages/testing/playwright/test-workflows/workflows/75.json create mode 100644 packages/testing/playwright/test-workflows/workflows/76.json create mode 100644 packages/testing/playwright/test-workflows/workflows/77.json create mode 100644 packages/testing/playwright/test-workflows/workflows/78.json create mode 100644 packages/testing/playwright/test-workflows/workflows/79.json create mode 100644 packages/testing/playwright/test-workflows/workflows/80.json create mode 100644 packages/testing/playwright/test-workflows/workflows/81.json create mode 100644 packages/testing/playwright/test-workflows/workflows/82.json create mode 100644 packages/testing/playwright/test-workflows/workflows/83.json create mode 100644 packages/testing/playwright/test-workflows/workflows/84.json create mode 100644 packages/testing/playwright/test-workflows/workflows/85.json create mode 100644 packages/testing/playwright/test-workflows/workflows/86.json create mode 100644 packages/testing/playwright/test-workflows/workflows/87.json create mode 100644 packages/testing/playwright/test-workflows/workflows/88.json create mode 100644 packages/testing/playwright/test-workflows/workflows/89.json create mode 100644 packages/testing/playwright/test-workflows/workflows/90.json create mode 100644 packages/testing/playwright/test-workflows/workflows/91.json create mode 100644 packages/testing/playwright/test-workflows/workflows/92.json create mode 100644 packages/testing/playwright/test-workflows/workflows/93.json create mode 100644 packages/testing/playwright/test-workflows/workflows/94.json create mode 100644 packages/testing/playwright/test-workflows/workflows/95.json create mode 100644 packages/testing/playwright/test-workflows/workflows/96.json create mode 100644 packages/testing/playwright/test-workflows/workflows/97.json create mode 100644 packages/testing/playwright/test-workflows/workflows/98.json delete mode 100644 test-workflows/README.md delete mode 100644 test-workflows/credentials.json delete mode 100644 test-workflows/skipList.json delete mode 100644 test-workflows/snapshots/1-snapshot.json delete mode 100644 test-workflows/snapshots/10-snapshot.json delete mode 100644 test-workflows/snapshots/101-snapshot.json delete mode 100644 test-workflows/snapshots/103-snapshot.json delete mode 100644 test-workflows/snapshots/104-snapshot.json delete mode 100644 test-workflows/snapshots/105-snapshot.json delete mode 100644 test-workflows/snapshots/107-snapshot.json delete mode 100644 test-workflows/snapshots/108-snapshot.json delete mode 100644 test-workflows/snapshots/109-snapshot.json delete mode 100644 test-workflows/snapshots/11-snapshot.json delete mode 100644 test-workflows/snapshots/110-snapshot.json delete mode 100644 test-workflows/snapshots/111-snapshot.json delete mode 100644 test-workflows/snapshots/112-snapshot.json delete mode 100644 test-workflows/snapshots/113-snapshot.json delete mode 100644 test-workflows/snapshots/114-snapshot.json delete mode 100644 test-workflows/snapshots/115-snapshot.json delete mode 100644 test-workflows/snapshots/116-snapshot.json delete mode 100644 test-workflows/snapshots/117-snapshot.json delete mode 100644 test-workflows/snapshots/118-snapshot.json delete mode 100644 test-workflows/snapshots/119-snapshot.json delete mode 100644 test-workflows/snapshots/120-snapshot.json delete mode 100644 test-workflows/snapshots/124-snapshot.json delete mode 100644 test-workflows/snapshots/125-snapshot.json delete mode 100644 test-workflows/snapshots/128-snapshot.json delete mode 100644 test-workflows/snapshots/130-snapshot.json delete mode 100644 test-workflows/snapshots/131-snapshot.json delete mode 100644 test-workflows/snapshots/132-snapshot.json delete mode 100644 test-workflows/snapshots/133-snapshot.json delete mode 100644 test-workflows/snapshots/139-snapshot.json delete mode 100644 test-workflows/snapshots/140-snapshot.json delete mode 100644 test-workflows/snapshots/143-snapshot.json delete mode 100644 test-workflows/snapshots/145-snapshot.json delete mode 100644 test-workflows/snapshots/146-snapshot.json delete mode 100644 test-workflows/snapshots/147-snapshot.json delete mode 100644 test-workflows/snapshots/148-snapshot.json delete mode 100644 test-workflows/snapshots/15-snapshot.json delete mode 100644 test-workflows/snapshots/150-snapshot.json delete mode 100644 test-workflows/snapshots/151-snapshot.json delete mode 100644 test-workflows/snapshots/152-snapshot.json delete mode 100644 test-workflows/snapshots/153-snapshot.json delete mode 100644 test-workflows/snapshots/154-snapshot.json delete mode 100644 test-workflows/snapshots/155-snapshot.json delete mode 100644 test-workflows/snapshots/156-snapshot.json delete mode 100644 test-workflows/snapshots/16-snapshot.json delete mode 100644 test-workflows/snapshots/161-snapshot.json delete mode 100644 test-workflows/snapshots/162-snapshot.json delete mode 100644 test-workflows/snapshots/163-snapshot.json delete mode 100644 test-workflows/snapshots/164-snapshot.json delete mode 100644 test-workflows/snapshots/166-snapshot.json delete mode 100644 test-workflows/snapshots/169-snapshot.json delete mode 100644 test-workflows/snapshots/17-snapshot.json delete mode 100644 test-workflows/snapshots/172-snapshot.json delete mode 100644 test-workflows/snapshots/174-snapshot.json delete mode 100644 test-workflows/snapshots/177-snapshot.json delete mode 100644 test-workflows/snapshots/182-snapshot.json delete mode 100644 test-workflows/snapshots/184-snapshot.json delete mode 100644 test-workflows/snapshots/185-snapshot.json delete mode 100644 test-workflows/snapshots/186-snapshot.json delete mode 100644 test-workflows/snapshots/187-snapshot.json delete mode 100644 test-workflows/snapshots/190-snapshot.json delete mode 100644 test-workflows/snapshots/191-snapshot.json delete mode 100644 test-workflows/snapshots/192-snapshot.json delete mode 100644 test-workflows/snapshots/194-snapshot.json delete mode 100644 test-workflows/snapshots/195-snapshot.json delete mode 100644 test-workflows/snapshots/197-snapshot.json delete mode 100644 test-workflows/snapshots/198-snapshot.json delete mode 100644 test-workflows/snapshots/199-snapshot.json delete mode 100644 test-workflows/snapshots/20-snapshot.json delete mode 100644 test-workflows/snapshots/202-snapshot.json delete mode 100644 test-workflows/snapshots/203-snapshot.json delete mode 100644 test-workflows/snapshots/205-snapshot.json delete mode 100644 test-workflows/snapshots/208-snapshot.json delete mode 100644 test-workflows/snapshots/209-snapshot.json delete mode 100644 test-workflows/snapshots/21-snapshot.json delete mode 100644 test-workflows/snapshots/212-snapshot.json delete mode 100644 test-workflows/snapshots/216-snapshot.json delete mode 100644 test-workflows/snapshots/223-snapshot.json delete mode 100644 test-workflows/snapshots/229-snapshot.json delete mode 100644 test-workflows/snapshots/230-snapshot.json delete mode 100644 test-workflows/snapshots/231-snapshot.json delete mode 100644 test-workflows/snapshots/232-snapshot.json delete mode 100644 test-workflows/snapshots/233-snapshot.json delete mode 100644 test-workflows/snapshots/234-snapshot.json delete mode 100644 test-workflows/snapshots/235-snapshot.json delete mode 100644 test-workflows/snapshots/236-snapshot.json delete mode 100644 test-workflows/snapshots/237-snapshot.json delete mode 100644 test-workflows/snapshots/238-snapshot.json delete mode 100644 test-workflows/snapshots/239-snapshot.json delete mode 100644 test-workflows/snapshots/240-snapshot.json delete mode 100644 test-workflows/snapshots/241-snapshot.json delete mode 100644 test-workflows/snapshots/242-snapshot.json delete mode 100644 test-workflows/snapshots/243-snapshot.json delete mode 100644 test-workflows/snapshots/244-snapshot.json delete mode 100644 test-workflows/snapshots/245-snapshot.json delete mode 100644 test-workflows/snapshots/246-snapshot.json delete mode 100644 test-workflows/snapshots/247-snapshot.json delete mode 100644 test-workflows/snapshots/248-snapshot.json delete mode 100644 test-workflows/snapshots/249-snapshot.json delete mode 100644 test-workflows/snapshots/250-snapshot.json delete mode 100644 test-workflows/snapshots/251-snapshot.json delete mode 100644 test-workflows/snapshots/252-snapshot.json delete mode 100644 test-workflows/snapshots/253-snapshot.json delete mode 100644 test-workflows/snapshots/254-snapshot.json delete mode 100644 test-workflows/snapshots/255-snapshot.json delete mode 100644 test-workflows/snapshots/256-snapshot.json delete mode 100644 test-workflows/snapshots/257-snapshot.json delete mode 100644 test-workflows/snapshots/258-snapshot.json delete mode 100644 test-workflows/snapshots/259-snapshot.json delete mode 100644 test-workflows/snapshots/26-snapshot.json delete mode 100644 test-workflows/snapshots/29-snapshot.json delete mode 100644 test-workflows/snapshots/32-snapshot.json delete mode 100644 test-workflows/snapshots/33-snapshot.json delete mode 100644 test-workflows/snapshots/34-snapshot.json delete mode 100644 test-workflows/snapshots/35-snapshot.json delete mode 100644 test-workflows/snapshots/36-snapshot.json delete mode 100644 test-workflows/snapshots/37-snapshot.json delete mode 100644 test-workflows/snapshots/38-snapshot.json delete mode 100644 test-workflows/snapshots/40-snapshot.json delete mode 100644 test-workflows/snapshots/41-snapshot.json delete mode 100644 test-workflows/snapshots/42-snapshot.json delete mode 100644 test-workflows/snapshots/43-snapshot.json delete mode 100644 test-workflows/snapshots/44-snapshot.json delete mode 100644 test-workflows/snapshots/45-snapshot.json delete mode 100644 test-workflows/snapshots/46-snapshot.json delete mode 100644 test-workflows/snapshots/48-snapshot.json delete mode 100644 test-workflows/snapshots/49-snapshot.json delete mode 100644 test-workflows/snapshots/5-snapshot.json delete mode 100644 test-workflows/snapshots/51-snapshot.json delete mode 100644 test-workflows/snapshots/52-snapshot.json delete mode 100644 test-workflows/snapshots/53-snapshot.json delete mode 100644 test-workflows/snapshots/55-snapshot.json delete mode 100644 test-workflows/snapshots/58-snapshot.json delete mode 100644 test-workflows/snapshots/6-snapshot.json delete mode 100644 test-workflows/snapshots/60-snapshot.json delete mode 100644 test-workflows/snapshots/61-snapshot.json delete mode 100644 test-workflows/snapshots/62-snapshot.json delete mode 100644 test-workflows/snapshots/63-snapshot.json delete mode 100644 test-workflows/snapshots/66-snapshot.json delete mode 100644 test-workflows/snapshots/67-snapshot.json delete mode 100644 test-workflows/snapshots/70-snapshot.json delete mode 100644 test-workflows/snapshots/71-snapshot.json delete mode 100644 test-workflows/snapshots/72-snapshot.json delete mode 100644 test-workflows/snapshots/73-snapshot.json delete mode 100644 test-workflows/snapshots/78-snapshot.json delete mode 100644 test-workflows/snapshots/81-snapshot.json delete mode 100644 test-workflows/snapshots/83-snapshot.json delete mode 100644 test-workflows/snapshots/84-snapshot.json delete mode 100644 test-workflows/snapshots/86-snapshot.json delete mode 100644 test-workflows/snapshots/87-snapshot.json delete mode 100644 test-workflows/snapshots/88-snapshot.json delete mode 100644 test-workflows/snapshots/90-snapshot.json delete mode 100644 test-workflows/snapshots/91-snapshot.json delete mode 100644 test-workflows/snapshots/93-snapshot.json delete mode 100644 test-workflows/snapshots/95-snapshot.json delete mode 100644 test-workflows/snapshots/96-snapshot.json delete mode 100644 test-workflows/snapshots/97-snapshot.json delete mode 100644 test-workflows/snapshots/98-snapshot.json delete mode 100644 test-workflows/workflows/1.json delete mode 100644 test-workflows/workflows/10.json delete mode 100644 test-workflows/workflows/101.json delete mode 100644 test-workflows/workflows/102.json delete mode 100644 test-workflows/workflows/103.json delete mode 100644 test-workflows/workflows/104.json delete mode 100644 test-workflows/workflows/105.json delete mode 100644 test-workflows/workflows/106.json delete mode 100644 test-workflows/workflows/107.json delete mode 100644 test-workflows/workflows/108.json delete mode 100644 test-workflows/workflows/109.json delete mode 100644 test-workflows/workflows/11.json delete mode 100644 test-workflows/workflows/110.json delete mode 100644 test-workflows/workflows/111.json delete mode 100644 test-workflows/workflows/112.json delete mode 100644 test-workflows/workflows/113.json delete mode 100644 test-workflows/workflows/114.json delete mode 100644 test-workflows/workflows/115.json delete mode 100644 test-workflows/workflows/116.json delete mode 100644 test-workflows/workflows/117.json delete mode 100644 test-workflows/workflows/118.json delete mode 100644 test-workflows/workflows/119.json delete mode 100644 test-workflows/workflows/120.json delete mode 100644 test-workflows/workflows/121.json delete mode 100644 test-workflows/workflows/122.json delete mode 100644 test-workflows/workflows/123.json delete mode 100644 test-workflows/workflows/124.json delete mode 100644 test-workflows/workflows/125.json delete mode 100644 test-workflows/workflows/126.json delete mode 100644 test-workflows/workflows/127.json delete mode 100644 test-workflows/workflows/128.json delete mode 100644 test-workflows/workflows/129.json delete mode 100644 test-workflows/workflows/130.json delete mode 100644 test-workflows/workflows/131.json delete mode 100644 test-workflows/workflows/132.json delete mode 100644 test-workflows/workflows/133.json delete mode 100644 test-workflows/workflows/134.json delete mode 100644 test-workflows/workflows/135.json delete mode 100644 test-workflows/workflows/136.json delete mode 100644 test-workflows/workflows/137.json delete mode 100644 test-workflows/workflows/138.json delete mode 100644 test-workflows/workflows/139.json delete mode 100644 test-workflows/workflows/140.json delete mode 100644 test-workflows/workflows/141.json delete mode 100644 test-workflows/workflows/142.json delete mode 100644 test-workflows/workflows/143.json delete mode 100644 test-workflows/workflows/144.json delete mode 100644 test-workflows/workflows/145.json delete mode 100644 test-workflows/workflows/146.json delete mode 100644 test-workflows/workflows/147.json delete mode 100644 test-workflows/workflows/148.json delete mode 100644 test-workflows/workflows/149.json delete mode 100644 test-workflows/workflows/15.json delete mode 100644 test-workflows/workflows/150.json delete mode 100644 test-workflows/workflows/151.json delete mode 100644 test-workflows/workflows/152.json delete mode 100644 test-workflows/workflows/153.json delete mode 100644 test-workflows/workflows/154.json delete mode 100644 test-workflows/workflows/155.json delete mode 100644 test-workflows/workflows/156.json delete mode 100644 test-workflows/workflows/157.json delete mode 100644 test-workflows/workflows/158.json delete mode 100644 test-workflows/workflows/159.json delete mode 100644 test-workflows/workflows/16.json delete mode 100644 test-workflows/workflows/160.json delete mode 100644 test-workflows/workflows/161.json delete mode 100644 test-workflows/workflows/162.json delete mode 100644 test-workflows/workflows/163.json delete mode 100644 test-workflows/workflows/164.json delete mode 100644 test-workflows/workflows/165.json delete mode 100644 test-workflows/workflows/166.json delete mode 100644 test-workflows/workflows/167.json delete mode 100644 test-workflows/workflows/168.json delete mode 100644 test-workflows/workflows/169.json delete mode 100644 test-workflows/workflows/17.json delete mode 100644 test-workflows/workflows/170.json delete mode 100644 test-workflows/workflows/171.json delete mode 100644 test-workflows/workflows/172.json delete mode 100644 test-workflows/workflows/173.json delete mode 100644 test-workflows/workflows/174.json delete mode 100644 test-workflows/workflows/176.json delete mode 100644 test-workflows/workflows/177.json delete mode 100644 test-workflows/workflows/179.json delete mode 100644 test-workflows/workflows/180.json delete mode 100644 test-workflows/workflows/182.json delete mode 100644 test-workflows/workflows/183.json delete mode 100644 test-workflows/workflows/184.json delete mode 100644 test-workflows/workflows/185.json delete mode 100644 test-workflows/workflows/186.json delete mode 100644 test-workflows/workflows/187.json delete mode 100644 test-workflows/workflows/188.json delete mode 100644 test-workflows/workflows/189.json delete mode 100644 test-workflows/workflows/19.json delete mode 100644 test-workflows/workflows/190.json delete mode 100644 test-workflows/workflows/191.json delete mode 100644 test-workflows/workflows/192.json delete mode 100644 test-workflows/workflows/193.json delete mode 100644 test-workflows/workflows/194.json delete mode 100644 test-workflows/workflows/195.json delete mode 100644 test-workflows/workflows/196.json delete mode 100644 test-workflows/workflows/197.json delete mode 100644 test-workflows/workflows/198.json delete mode 100644 test-workflows/workflows/199.json delete mode 100644 test-workflows/workflows/20.json delete mode 100644 test-workflows/workflows/200.json delete mode 100644 test-workflows/workflows/201.json delete mode 100644 test-workflows/workflows/202.json delete mode 100644 test-workflows/workflows/203.json delete mode 100644 test-workflows/workflows/204.json delete mode 100644 test-workflows/workflows/205.json delete mode 100644 test-workflows/workflows/206.json delete mode 100644 test-workflows/workflows/207.json delete mode 100644 test-workflows/workflows/208.json delete mode 100644 test-workflows/workflows/209.json delete mode 100644 test-workflows/workflows/21.json delete mode 100644 test-workflows/workflows/212.json delete mode 100644 test-workflows/workflows/214.json delete mode 100644 test-workflows/workflows/215.json delete mode 100644 test-workflows/workflows/216.json delete mode 100644 test-workflows/workflows/217.json delete mode 100644 test-workflows/workflows/218.json delete mode 100644 test-workflows/workflows/219.json delete mode 100644 test-workflows/workflows/22.json delete mode 100644 test-workflows/workflows/220.json delete mode 100644 test-workflows/workflows/221.json delete mode 100644 test-workflows/workflows/222.json delete mode 100644 test-workflows/workflows/223.json delete mode 100644 test-workflows/workflows/224.json delete mode 100644 test-workflows/workflows/225.json delete mode 100644 test-workflows/workflows/226.json delete mode 100644 test-workflows/workflows/227.json delete mode 100644 test-workflows/workflows/229.json delete mode 100644 test-workflows/workflows/230.json delete mode 100644 test-workflows/workflows/231.json delete mode 100644 test-workflows/workflows/233.json delete mode 100644 test-workflows/workflows/234.json delete mode 100644 test-workflows/workflows/235.json delete mode 100644 test-workflows/workflows/236.json delete mode 100644 test-workflows/workflows/237.json delete mode 100644 test-workflows/workflows/238.json delete mode 100644 test-workflows/workflows/239.json delete mode 100644 test-workflows/workflows/240.json delete mode 100644 test-workflows/workflows/241.json delete mode 100644 test-workflows/workflows/242.json delete mode 100644 test-workflows/workflows/243.json delete mode 100644 test-workflows/workflows/244.json delete mode 100644 test-workflows/workflows/245.json delete mode 100644 test-workflows/workflows/246.json delete mode 100644 test-workflows/workflows/247.json delete mode 100644 test-workflows/workflows/248.json delete mode 100644 test-workflows/workflows/249.json delete mode 100644 test-workflows/workflows/250.json delete mode 100644 test-workflows/workflows/251.json delete mode 100644 test-workflows/workflows/252.json delete mode 100644 test-workflows/workflows/253.json delete mode 100644 test-workflows/workflows/254.json delete mode 100644 test-workflows/workflows/255.json delete mode 100644 test-workflows/workflows/256.json delete mode 100644 test-workflows/workflows/257.json delete mode 100644 test-workflows/workflows/258.json delete mode 100644 test-workflows/workflows/259.json delete mode 100644 test-workflows/workflows/26.json delete mode 100644 test-workflows/workflows/27.json delete mode 100644 test-workflows/workflows/28.json delete mode 100644 test-workflows/workflows/29.json delete mode 100644 test-workflows/workflows/30.json delete mode 100644 test-workflows/workflows/31.json delete mode 100644 test-workflows/workflows/32.json delete mode 100644 test-workflows/workflows/33.json delete mode 100644 test-workflows/workflows/34.json delete mode 100644 test-workflows/workflows/35.json delete mode 100644 test-workflows/workflows/36.json delete mode 100644 test-workflows/workflows/37.json delete mode 100644 test-workflows/workflows/38.json delete mode 100644 test-workflows/workflows/39.json delete mode 100644 test-workflows/workflows/4.json delete mode 100644 test-workflows/workflows/40.json delete mode 100644 test-workflows/workflows/41.json delete mode 100644 test-workflows/workflows/42.json delete mode 100644 test-workflows/workflows/43.json delete mode 100644 test-workflows/workflows/44.json delete mode 100644 test-workflows/workflows/45.json delete mode 100644 test-workflows/workflows/46.json delete mode 100644 test-workflows/workflows/47.json delete mode 100644 test-workflows/workflows/48.json delete mode 100644 test-workflows/workflows/49.json delete mode 100644 test-workflows/workflows/5.json delete mode 100644 test-workflows/workflows/50.json delete mode 100644 test-workflows/workflows/51.json delete mode 100644 test-workflows/workflows/52.json delete mode 100644 test-workflows/workflows/53.json delete mode 100644 test-workflows/workflows/54.json delete mode 100644 test-workflows/workflows/55.json delete mode 100644 test-workflows/workflows/56.json delete mode 100644 test-workflows/workflows/57.json delete mode 100644 test-workflows/workflows/58.json delete mode 100644 test-workflows/workflows/59.json delete mode 100644 test-workflows/workflows/6.json delete mode 100644 test-workflows/workflows/60.json delete mode 100644 test-workflows/workflows/61.json delete mode 100644 test-workflows/workflows/62.json delete mode 100644 test-workflows/workflows/63.json delete mode 100644 test-workflows/workflows/64.json delete mode 100644 test-workflows/workflows/65.json delete mode 100644 test-workflows/workflows/66.json delete mode 100644 test-workflows/workflows/67.json delete mode 100644 test-workflows/workflows/68.json delete mode 100644 test-workflows/workflows/69.json delete mode 100644 test-workflows/workflows/70.json delete mode 100644 test-workflows/workflows/71.json delete mode 100644 test-workflows/workflows/72.json delete mode 100644 test-workflows/workflows/73.json delete mode 100644 test-workflows/workflows/74.json delete mode 100644 test-workflows/workflows/75.json delete mode 100644 test-workflows/workflows/76.json delete mode 100644 test-workflows/workflows/77.json delete mode 100644 test-workflows/workflows/78.json delete mode 100644 test-workflows/workflows/79.json delete mode 100644 test-workflows/workflows/80.json delete mode 100644 test-workflows/workflows/81.json delete mode 100644 test-workflows/workflows/82.json delete mode 100644 test-workflows/workflows/83.json delete mode 100644 test-workflows/workflows/84.json delete mode 100644 test-workflows/workflows/85.json delete mode 100644 test-workflows/workflows/86.json delete mode 100644 test-workflows/workflows/87.json delete mode 100644 test-workflows/workflows/88.json delete mode 100644 test-workflows/workflows/89.json delete mode 100644 test-workflows/workflows/90.json delete mode 100644 test-workflows/workflows/91.json delete mode 100644 test-workflows/workflows/92.json delete mode 100644 test-workflows/workflows/93.json delete mode 100644 test-workflows/workflows/94.json delete mode 100644 test-workflows/workflows/95.json delete mode 100644 test-workflows/workflows/96.json delete mode 100644 test-workflows/workflows/97.json delete mode 100644 test-workflows/workflows/98.json diff --git a/.dockerignore b/.dockerignore index ae5f6c2afe..55f56a5122 100644 --- a/.dockerignore +++ b/.dockerignore @@ -15,5 +15,5 @@ packages/**/*.test.* docker/compose docker/**/Dockerfile .vscode -cypress -test-workflows \ No newline at end of file +packages/testing +cypress \ No newline at end of file diff --git a/.github/workflows/test-workflows-callable.yml b/.github/workflows/test-workflows-callable.yml index 398f8bce82..691fd7e2a3 100644 --- a/.github/workflows/test-workflows-callable.yml +++ b/.github/workflows/test-workflows-callable.yml @@ -1,4 +1,4 @@ -name: Callable Test Workflows +name: Test Workflows - Reusable on: workflow_call: @@ -7,211 +7,50 @@ on: description: 'The Git ref (branch, tag, or SHA) to checkout and test.' required: true type: string - send_webhook_report: - description: 'Set to true to send test results to the webhook.' - required: false - type: boolean - default: false - pr_number: - description: 'The PR number, if applicable (for context in webhook).' + compare_schemas: + description: 'Set to "true" to enable schema comparison during tests.' required: false + default: 'true' type: string - default: '' secrets: ENCRYPTION_KEY: description: 'Encryption key for n8n operations.' required: true - CI_SENTRY_DSN: - description: 'Sentry DSN for CI test runs.' - required: false - WORKFLOW_TESTS_RESULT_DESTINATION: - description: 'Webhook URL to send test results to (if enabled).' - required: false + CURRENTS_RECORD_KEY: + description: 'Currents record key for uploading test results.' + required: true + +env: + NODE_OPTIONS: --max-old-space-size=4096 env: NODE_OPTIONS: --max-old-space-size=3072 jobs: - build_and_test: - name: Install, Build, and Test Workflows + run_workflow_tests: + name: Run Workflow Tests with Snapshots runs-on: blacksmith-2vcpu-ubuntu-2204 - timeout-minutes: 10 - env: - N8N_ENCRYPTION_KEY: ${{ secrets.ENCRYPTION_KEY }} - steps: - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.git_ref }} - - name: Setup Environment and Build Project - uses: n8n-io/n8n/.github/actions/setup-and-build@7e870b8f7f5a39bb8bf82d1f42b6d44febc0082c # v1.100.1 - with: - node-version: '22.x' - cache-suffix: 'workflow-test' + - name: Set up Environment + uses: n8n-io/n8n/.github/actions/setup-nodejs-blacksmith@f5fbbbe0a28a886451c886cac6b49192a39b0eea # v1.104.1 - - name: Install OS dependencies - run: | - sudo apt update -y - echo 'tzdata tzdata/Areas select Europe' | sudo debconf-set-selections - echo 'tzdata tzdata/Zones/Europe select Paris' | sudo debconf-set-selections - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends graphicsmagick - sudo apt-get clean - sudo rm -rf /var/lib/apt/lists/* - - - name: Import credentials - run: ./packages/cli/bin/n8n import:credentials --input=test-workflows/credentials.json - - - name: Import workflows - run: ./packages/cli/bin/n8n import:workflow --separate --input=test-workflows/workflows - - - name: Copy static assets - run: | - mkdir -p /tmp/testData/pdfs - cp assets/n8n-logo.png /tmp/n8n-logo.png - cp assets/n8n-screenshot.png /tmp/n8n-screenshot.png - cp test-workflows/testData/pdfs/*.pdf /tmp/testData/pdfs/ - - - name: Run tests - id: tests - run: ./packages/cli/bin/n8n executeBatch --shallow --skipList=test-workflows/skipList.json --githubWorkflow --shortOutput --output=test-results.json --concurrency=16 --compare=test-workflows/snapshots - continue-on-error: true + - name: Set up Workflow Tests + run: pnpm --filter=n8n-playwright test:workflows:setup env: - SKIP_STATISTICS_EVENTS: 'true' - DB_SQLITE_POOL_SIZE: '4' - N8N_SENTRY_DSN: ${{ secrets.CI_SENTRY_DSN }} + N8N_ENCRYPTION_KEY: ${{ secrets.ENCRYPTION_KEY }} - - name: Report test outcome - if: always() - run: | - echo "Test step outcome was: ${{ steps.tests.outcome }}" - if [[ "${{ steps.tests.outcome }}" == "failure" ]]; then - echo "Workflow tests failed but the workflow will continue." - elif [[ "${{ steps.tests.outcome }}" == "success" ]]; then - echo "Workflow tests passed." - else - echo "Workflow tests outcome: ${{ steps.tests.outcome }}" - fi - - - name: Prepare and Send Test Results to Webhook - if: inputs.send_webhook_report == true - shell: bash + - name: Run Workflow Tests + run: pnpm --filter=n8n-playwright test:workflows --workers 4 env: - WEBHOOK_URL: ${{ secrets.WORKFLOW_TESTS_RESULT_DESTINATION }} - TEST_RESULTS_FILE: ./test-results.json - GH_REPOSITORY: ${{ github.repository }} - GH_RUN_ID: ${{ github.run_id }} - GH_RUN_ATTEMPT: ${{ github.run_attempt }} - GH_REF_TESTED: ${{ inputs.git_ref }} - GH_EVENT_NAME: ${{ github.event_name }} - GH_PR_NUMBER_INPUT: ${{ inputs.pr_number }} - GH_WORKFLOW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - GH_ACTOR: ${{ github.actor }} - run: | - echo "Attempting to send test results to webhook..." - echo "Test results file expected at: $TEST_RESULTS_FILE" + CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }} - if [ ! -f "$TEST_RESULTS_FILE" ]; then - echo "::warning::Test results file ($TEST_RESULTS_FILE) not found. Skipping webhook." - exit 0 - fi - - if ! command -v jq &> /dev/null; then - echo "jq not found. Installing jq..." - sudo apt-get update -qq && sudo apt-get install -y -qq jq - if ! command -v jq &> /dev/null; then - echo "::error::Failed to install jq. Cannot process JSON." - exit 1 - fi - fi - - pr_number_to_send="$GH_PR_NUMBER_INPUT" - - echo "Preparing JSON payload..." - if [ ! -s "$TEST_RESULTS_FILE" ]; then - echo "::warning::Test results file ($TEST_RESULTS_FILE) is empty. Sending only GitHub context." - enriched_payload=$(jq -n \ - --arg repository "$GH_REPOSITORY" \ - --arg run_id "$GH_RUN_ID" \ - --arg run_attempt "$GH_RUN_ATTEMPT" \ - --arg ref_tested "$GH_REF_TESTED" \ - --arg event_name "$GH_EVENT_NAME" \ - --arg pr_num "$pr_number_to_send" \ - --arg workflow_run_url "$GH_WORKFLOW_RUN_URL" \ - --arg actor "$GH_ACTOR" \ - '{ - githubWorkflowContext: { - repository: $repository, - runId: $run_id, - runAttempt: $run_attempt, - gitRefTested: $ref_tested, - triggeringEventName: $event_name, - prNumber: (if $pr_num == "" then null else $pr_num | tonumber? // $pr_num end), - workflowRunUrl: $workflow_run_url, - triggeredBy: $actor - } - }') - else - enriched_payload=$(jq \ - --arg repository "$GH_REPOSITORY" \ - --arg run_id "$GH_RUN_ID" \ - --arg run_attempt "$GH_RUN_ATTEMPT" \ - --arg ref_tested "$GH_REF_TESTED" \ - --arg event_name "$GH_EVENT_NAME" \ - --arg pr_num "$pr_number_to_send" \ - --arg workflow_run_url "$GH_WORKFLOW_RUN_URL" \ - --arg actor "$GH_ACTOR" \ - '. + { - githubWorkflowContext: { - repository: $repository, - runId: $run_id, - runAttempt: $run_attempt, - gitRefTested: $ref_tested, - triggeringEventName: $event_name, - prNumber: (if $pr_num == "" then null else $pr_num | tonumber? // $pr_num end), - workflowRunUrl: $workflow_run_url, - triggeredBy: $actor - } - }' "$TEST_RESULTS_FILE") - fi - - jq_exit_code=$? - if [ $jq_exit_code -ne 0 ] || [ -z "$enriched_payload" ]; then - echo "::error::Failed to process JSON with jq (exit code: $jq_exit_code). Input file: $TEST_RESULTS_FILE" - if [ -s "$TEST_RESULTS_FILE" ]; then - echo "Contents of $TEST_RESULTS_FILE that may have caused an error:" - head -c 1000 "$TEST_RESULTS_FILE" # Print first 1000 chars - echo "" # Newline after head - elif [ -f "$TEST_RESULTS_FILE" ]; then - echo "$TEST_RESULTS_FILE exists but is empty." - fi - exit 1 - fi - - echo "Enriched payload to send (first 500 chars):" - echo "$enriched_payload" | head -c 500 - echo "" - - echo "Sending data to webhook: $WEBHOOK_URL" - http_response_code=$(curl -s -w "%{http_code}" \ - -X POST \ - -H "Content-Type: application/json" \ - -H "X-GitHub-Event: $GH_EVENT_NAME" \ - -H "X-GitHub-Run-Id: $GH_RUN_ID" \ - --data "$enriched_payload" \ - "$WEBHOOK_URL" \ - -o curl_response_body.txt 2>curl_stderr.txt) - - curl_stderr_content=$(cat curl_stderr.txt) - if [ -n "$curl_stderr_content" ]; then - echo "::warning::curl stderr: $curl_stderr_content" - fi - echo "Webhook response code: $http_response_code" - echo "Webhook response body:" - cat curl_response_body.txt - if [[ "$http_response_code" -ge 200 && "$http_response_code" -lt 300 ]]; then - echo "Successfully sent data to webhook." - else - echo "::error::Webhook call failed with status code $http_response_code." - fi + - name: Run Workflow Schema Tests + if: ${{ inputs.compare_schemas == 'true' }} + run: pnpm --filter=n8n-playwright test:workflows:schema + env: + CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }} diff --git a/.github/workflows/test-workflows-nightly.yml b/.github/workflows/test-workflows-nightly.yml index 28d6e6d391..3f912e6aef 100644 --- a/.github/workflows/test-workflows-nightly.yml +++ b/.github/workflows/test-workflows-nightly.yml @@ -11,16 +11,10 @@ on: type: string default: 'master' - -permissions: - contents: read - jobs: run_workflow_tests: name: Run Workflow Tests uses: ./.github/workflows/test-workflows-callable.yml with: git_ref: ${{ github.event_name == 'schedule' && 'master' || github.event.inputs.git_ref_to_test }} - send_webhook_report: false - pr_number: '' - secrets: inherit \ No newline at end of file + secrets: inherit diff --git a/.github/workflows/test-workflows-pr-approved.yml b/.github/workflows/test-workflows-pr-approved.yml index 0eda5329ee..a1dbd25322 100644 --- a/.github/workflows/test-workflows-pr-approved.yml +++ b/.github/workflows/test-workflows-pr-approved.yml @@ -22,6 +22,4 @@ jobs: uses: ./.github/workflows/test-workflows-callable.yml with: git_ref: ${{ github.event.pull_request.head.sha }} - send_webhook_report: true - pr_number: ${{ github.event.pull_request.number }} - secrets: inherit \ No newline at end of file + secrets: inherit diff --git a/.github/workflows/test-workflows-pr-comment.yml b/.github/workflows/test-workflows-pr-comment.yml index d1b2615765..61073c2689 100644 --- a/.github/workflows/test-workflows-pr-comment.yml +++ b/.github/workflows/test-workflows-pr-comment.yml @@ -107,6 +107,4 @@ jobs: uses: ./.github/workflows/test-workflows-callable.yml with: git_ref: ${{ needs.handle_comment_command.outputs.git_ref }} - send_webhook_report: true - pr_number: ${{ needs.handle_comment_command.outputs.pr_number }} secrets: inherit diff --git a/packages/cli/src/command-registry.ts b/packages/cli/src/command-registry.ts index a3f894e392..0fa2ac07f9 100644 --- a/packages/cli/src/command-registry.ts +++ b/packages/cli/src/command-registry.ts @@ -22,7 +22,9 @@ export class CommandRegistry { private readonly moduleRegistry: ModuleRegistry, private readonly logger: Logger, ) { - this.argv = argvParser(process.argv.slice(2)); + // yargs-parser was resolving number like strings to numbers, which is not what we want + // eslint-disable-next-line id-denylist + this.argv = argvParser(process.argv.slice(2), { string: ['id'] }); this.commandName = process.argv[2] ?? 'start'; } diff --git a/packages/testing/playwright/eslint.config.mjs b/packages/testing/playwright/eslint.config.mjs index bdc7ac92f9..b17831d95f 100644 --- a/packages/testing/playwright/eslint.config.mjs +++ b/packages/testing/playwright/eslint.config.mjs @@ -1,16 +1,14 @@ -import { defineConfig } from 'eslint/config'; import { baseConfig } from '@n8n/eslint-config/base'; import playwrightPlugin from 'eslint-plugin-playwright'; -export default defineConfig( - { - ignores: ['**/playwright-report/**'], - }, - baseConfig, +export default [ + ...baseConfig, playwrightPlugin.configs['flat/recommended'], + { + ignores: ['playwright-report/**/*'], + }, { rules: { - '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unsafe-argument': 'off', '@typescript-eslint/no-unsafe-assignment': 'off', '@typescript-eslint/no-unsafe-call': 'off', @@ -33,4 +31,4 @@ export default defineConfig( ], }, }, -); +]; diff --git a/packages/testing/playwright/global-setup.ts b/packages/testing/playwright/global-setup.ts index b80143e543..a1dc5edff6 100644 --- a/packages/testing/playwright/global-setup.ts +++ b/packages/testing/playwright/global-setup.ts @@ -21,7 +21,7 @@ async function globalSetup() { const n8nBaseUrl = process.env.N8N_BASE_URL; if (!n8nBaseUrl) { console.log('⚠️ N8N_BASE_URL environment variable is not set, skipping database reset'); - if (process.env.CI) { + if (process.env.CI && process.env.N8N_DOCKER_IMAGE) { await pullImagesForCI(); } return; diff --git a/packages/testing/playwright/package.json b/packages/testing/playwright/package.json index 87baf3b129..f03e0e8de5 100644 --- a/packages/testing/playwright/package.json +++ b/packages/testing/playwright/package.json @@ -10,6 +10,10 @@ "test:queue": "playwright test --project=mode:queue*", "test:multi-main": "playwright test --project=mode:multi-main*", "test:clean": "docker rm -f $(docker ps -aq --filter 'name=n8n-*') 2>/dev/null || true && docker network prune -f", + "test:workflows:setup": "tsx test-workflows/setup-workflow-tests.ts", + "test:workflows": "playwright test --project=mode:workflows", + "test:workflows:schema": "SCHEMA=true playwright test --project=mode:workflows", + "test:workflows:update": "playwright test --project=mode:workflows --update-snapshots", "lint": "eslint .", "lintfix": "eslint . --fix", "install-browsers:ci": "PLAYWRIGHT_BROWSERS_PATH=./ms-playwright-cache playwright install chromium --with-deps --no-shell", @@ -20,6 +24,8 @@ "@playwright/test": "1.53.0", "@types/lodash": "catalog:", "eslint-plugin-playwright": "2.2.0", + "generate-schema": "2.6.0", + "json-diff": "1.0.6", "n8n-containers": "workspace:*" } } diff --git a/packages/testing/playwright/playwright b/packages/testing/playwright/playwright new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/testing/playwright/playwright.config.ts b/packages/testing/playwright/playwright.config.ts index 064efafc0d..5e4b342924 100644 --- a/packages/testing/playwright/playwright.config.ts +++ b/packages/testing/playwright/playwright.config.ts @@ -5,6 +5,21 @@ import { defineConfig } from '@playwright/test'; import currentsConfig from './currents.config'; +// Type definitions for container configurations +interface ContainerConfig { + postgres?: boolean; + queueMode?: { + mains: number; + workers: number; + }; + env?: Record; +} + +interface ContainerConfigEntry { + name: string; + config: ContainerConfig; +} + /* * Mode-based Test Configuration * @@ -35,17 +50,26 @@ import currentsConfig from './currents.config'; */ // Container configurations -const containerConfigs = [ +const containerConfigs: ContainerConfigEntry[] = [ { name: 'mode:standard', config: {} }, { name: 'mode:postgres', config: { postgres: true } }, { name: 'mode:queue', config: { queueMode: { mains: 1, workers: 1 } } }, { name: 'mode:multi-main', config: { queueMode: { mains: 2, workers: 1 } } }, ]; +// Workflow tests are run in a separate project, since they are not run in parallel with the other tests +const workflowProject: Project = { + name: 'mode:workflows', + testDir: './test-workflows', + testMatch: 'workflow-tests.spec.ts', + retries: process.env.CI ? 2 : 0, + fullyParallel: true, +}; + // Parallel tests can run fully parallel on a worker // Sequential tests can run on a single worker, since the need a DB reset // Chaos tests can run on a single worker, since they can destroy containers etc, these need to be isolate from DB tests since they are destructive -function createProjectTrio(name: string, containerConfig: any): Project[] { +function createProjectTrio(name: string, containerConfig: ContainerConfig): Project[] { const modeTag = `@${name}`; // Parse custom env vars from command line @@ -72,7 +96,7 @@ function createProjectTrio(name: string, containerConfig: any): Project[] { ), testIgnore: '*examples*', fullyParallel: true, - use: { containerConfig: mergedConfig } as any, + use: { containerConfig: mergedConfig }, }, { name: `${name} - Sequential`, @@ -81,7 +105,7 @@ function createProjectTrio(name: string, containerConfig: any): Project[] { testIgnore: '*examples*', workers: 1, ...(shouldAddDependencies && { dependencies: [`${name} - Parallel`] }), - use: { containerConfig: mergedConfig } as any, + use: { containerConfig: mergedConfig }, }, { name: `${name} - Chaos`, @@ -89,7 +113,7 @@ function createProjectTrio(name: string, containerConfig: any): Project[] { testIgnore: '*examples*', fullyParallel: false, workers: 1, - use: { containerConfig: mergedConfig } as any, + use: { containerConfig: mergedConfig }, timeout: 120000, }, ]; @@ -131,5 +155,8 @@ export default defineConfig({ ? containerConfigs .filter(({ name }) => name === 'mode:standard') .flatMap(({ name, config }) => createProjectTrio(name, config)) - : containerConfigs.flatMap(({ name, config }) => createProjectTrio(name, config)), + .concat([workflowProject]) + : containerConfigs + .flatMap(({ name, config }) => createProjectTrio(name, config)) + .concat([workflowProject]), }); diff --git a/packages/testing/playwright/services/api-helper.ts b/packages/testing/playwright/services/api-helper.ts index 129a101b3f..6a62db7bf4 100644 --- a/packages/testing/playwright/services/api-helper.ts +++ b/packages/testing/playwright/services/api-helper.ts @@ -12,7 +12,7 @@ import { TestError } from '../Types'; export interface LoginResponseData { id: string; - [key: string]: any; + [key: string]: unknown; } export type UserRole = 'owner' | 'admin' | 'member'; @@ -182,15 +182,15 @@ export class ApiHelpers { throw new TestError(errorText); } - let responseData: any; + let responseData: unknown; try { responseData = await response.json(); - } catch (error) { + } catch (error: unknown) { const errorText = await response.text(); throw new TestError(errorText); } - const loginData: LoginResponseData = responseData.data; + const loginData: LoginResponseData = (responseData as { data: LoginResponseData }).data; if (!loginData?.id) { throw new TestError('Login did not return expected user data (missing user ID)'); diff --git a/packages/testing/playwright/test-workflows/README.md b/packages/testing/playwright/test-workflows/README.md new file mode 100644 index 0000000000..1ee540a21b --- /dev/null +++ b/packages/testing/playwright/test-workflows/README.md @@ -0,0 +1,286 @@ +# Workflow Testing Framework + +## Introduction + +This framework tests n8n's nodes and workflows to: + +* ✅ **Ensure Correctness:** Verify that nodes operate correctly +* 🔄 **Maintain Compatibility:** Detect breaking changes in external APIs +* 🔒 **Guarantee Stability:** Prevent regressions in new releases + +## Our Move to Playwright + +This framework is an evolution of a previous system. We moved to **Playwright** as our test runner to leverage its powerful, industry-standard features, resulting in: + +* **Simpler Commands:** A single command to run tests, with simple flags for control +* **Better Reporting:** Rich, interactive HTML reports with visual diffs +* **Built-in Features:** Automatic retries, parallel execution, and CI integration out of the box +* **Schema Validation:** Detect structural changes that indicate API breaking changes + +--- + +## 🚀 Quick Start + +### Prerequisites + +1. **Set encryption key:** The test credentials are encrypted. Add to `~/.n8n/config`: + ```json + { + "N8N_ENCRYPTION_KEY": "YOUR_KEY_FROM_BITWARDEN" + } + ``` + Find the key in Bitwarden under "Testing Framework encryption key" + +2. **Fresh database (optional):** For a clean start, remove `~/.n8n/database.sqlite` if it exists +3. **Setup Environment**: ```pnpm test:workflows:setup``` + +### Basic Commands + +```bash +# 1. Basic execution test (just verify workflows run without errors) +pnpm test:workflows + +# 2. Run with schema validation +SCHEMA=true pnpm test:workflows + +# 3. Update schema snapshots (when output structure changes) +pnpm test:workflows --update-snapshots + +# 4. Run specific workflows (using grep) +pnpm test:workflows -g "email" +``` + +### View Test Results + +After any test run, open the interactive HTML report: +```bash +npx playwright show-report +``` + +The report shows: +* ✅ Passed/❌ Failed tests with execution times +* 📸 Schema diffs showing structural changes +* ⚠️ Warnings and annotations +* 📊 Test trends over time (in CI) + +--- + +## ⚙️ How It Works + +### Test Modes + +1. **Basic Run** (default): Executes workflows and checks for errors +2. **Schema Mode** (`SCHEMA=true`): Validates workflow output structure against saved schemas + +### Schema Validation (Recommended) + +Schema validation captures the **structure** of workflow outputs, not the values. This is ideal for: +- Detecting API breaking changes (field renames, type changes) +- Avoiding false positives from legitimate data variations +- Maintaining stable tests across different environments + +When enabled, the framework: +1. Generates a JSON schema from the workflow output +2. Compares it against the saved schema snapshot +3. Reports any structural differences + +**Example of what schema validation catches:** +```javascript +// Original API response +{ user: { name: "John", email: "john@example.com" } } + +// Changed API response (field renamed) +{ user: { fullName: "John", email: "john@example.com" } } +// ❌ Schema validation catches this immediately! +``` + +### Why Schema Over Value Comparison? + +Traditional value comparison often leads to: +- 🔴 False positives from timestamps, IDs, and other dynamic data +- 🔴 Constant snapshot updates for legitimate data changes +- 🔴 Missing actual breaking changes when values happen to match + +Schema validation focuses on what matters: +- ✅ Data structure and types +- ✅ Field presence and naming +- ✅ API contract stability + +--- + +## 📋 Configuration + +### workflowConfig.json + +Controls workflow execution and testing behavior: + +```json +[ + { + "workflowId": "123", + "status": "ACTIVE", + "enableSchemaValidation": true + }, + { + "workflowId": "456", + "status": "SKIPPED", + "skipReason": "Depends on external API that is currently down", + "ticketReference": "JIRA-123" + } +] +``` + +**Configuration Fields:** +- `workflowId`: The ID of the workflow (must match the filename) +- `status`: Either "ACTIVE" or "SKIPPED" +- `enableSchemaValidation`: (optional) Whether to use schema validation (default: true) +- `skipReason`: (optional) Why the workflow is skipped +- `ticketReference`: (optional) Related ticket for tracking + +--- + +## 🎯 Workflow for New Tests + +### Step-by-Step Process + +```bash +# 1. Create/modify workflow in n8n UI +# 2. Export the workflow +./packages/cli/bin/n8n export:workflow --separate --output=test-workflows/workflows --pretty --id=XXX + +# 3. Add configuration entry to workflowConfig.json +# Edit workflowConfig.json and add: +{ + "workflowId": "XXX", + "status": "ACTIVE", + "enableSchemaValidation": true +} + +# 4. Test basic execution +pnpm test:workflows -g "XXX" + +# 5. Create initial schema snapshot +SCHEMA=true pnpm test:workflows --update-snapshots -g "XXX" + +# 6. Verify schema validation works +SCHEMA=true pnpm test:workflows -g "XXX" + +# 7. Commit all changes +git add test-workflows/workflows/XXX.json +git add __snapshots__/workflow-XXX-schema.snap +git add workflowConfig.json +``` + +--- + +## 💡 Common Scenarios + +### "I just want to check if workflows run" +```bash +pnpm test:workflows +``` + +### "I want to ensure API compatibility" +```bash +SCHEMA=true pnpm test:workflows +``` + +### "An API legitimately changed its structure" +```bash +# Update the schema snapshot +pnpm test:workflows --update-snapshots -g "workflow-name" +# Note: --update-snapshots automatically enables schema mode +``` + +### "I want to skip a workflow temporarily" +Update `workflowConfig.json`: +```json +{ + "workflowId": "123", + "status": "SKIPPED", + "skipReason": "API endpoint is under maintenance", + "ticketReference": "SUPPORT-456" +} +``` + +--- + +## 🔧 Creating Test Workflows + +### Best Practices + +1. **One node per workflow:** Test a single node with multiple operations/resources +2. **Use test files:** Reference the files automatically copied to `/tmp` by setup +3. **Limit results:** Set "Limit" to 1 for "Get All" operations when possible +4. **Handle throttling:** Add wait/sleep nodes for rate-limited APIs +5. **Focus on structure:** Schema validation handles dynamic values automatically + +### Available Test Files + +The setup automatically copies these to `/tmp`: +- `n8n-logo.png` +- `n8n-screenshot.png` +- PDF test files: + - `04-valid.pdf` + - `05-versions-space.pdf` + +### Exporting Credentials + +When credentials expire or need updating: + +```bash +# Update the credential in n8n UI +# Export all credentials (encrypted) +./packages/cli/bin/n8n export:credentials --output=test-workflows/credentials.json --all --pretty +``` + +⚠️ **Never use `--decrypted` when exporting credentials!** + +--- + +## 🐛 Troubleshooting + +### Tests fail with "No valid JSON output found" +The workflow likely has console.log statements. Remove them or ensure they don't interfere with JSON output. + +### Schema differences for legitimate changes +When an API or node output structure legitimately changes: +```bash +pnpm test:workflows --update-snapshots -g "affected-workflow" +``` + +### Setup didn't run / Need to re-run setup +```bash +pnpm test:workflows:setup +``` + +### Workflow not found +Ensure the workflow was exported to the `test-workflows/workflows` directory and the workflowId in `workflowConfig.json` matches the filename. + +--- + +## 🔄 Setup Process + +```bash +pnpm test:workflows:setup +``` + +--- + +## 📊 Understanding Test Output + +### Test Status + +- **✅ PASSED:** Workflow executed successfully (and schema matched if enabled) +- **❌ FAILED:** Workflow execution failed or schema didn't match +- **⏭️ SKIPPED:** Workflow marked as SKIPPED in configuration + +### Schema Comparison + +When schema validation is enabled, the test compares: +- Data types (string, number, boolean, array, object) +- Object properties and their types +- Array element types +- Overall structure depth and shape + +Schema validation ignores actual values, focusing purely on structure, making tests more stable and meaningful. diff --git a/packages/testing/playwright/test-workflows/credentials.json b/packages/testing/playwright/test-workflows/credentials.json new file mode 100644 index 0000000000..13a455dcdd --- /dev/null +++ b/packages/testing/playwright/test-workflows/credentials.json @@ -0,0 +1,3022 @@ +[ + { + "createdAt": "2024-03-04T15:40:29.192Z", + "updatedAt": "2024-03-04T15:54:48.737Z", + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account", + "data": "U2FsdGVkX1+IyUbFB38M0XCIgoH5zoL1tjGnwKq+JzneJyqgreZTc2VXu6wdpgquR4wy1MzA3nTvg/sTFIMRCor4mQxoSesF1ngWRNjm0kYMBFFcLd587DNLysVE9Doq4UpzRjYH8uu18k8PWbhOgOLi9dmiBDhiFSK6xQ1fdTwT6E1F3BkEvx1ckh1nnuzj", + "type": "anthropicApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "date": "2024-03-04T15:40:29.190Z" + } + ] + }, + { + "createdAt": "2021-01-21T13:43:39.125Z", + "updatedAt": "2021-02-09T12:36:44.881Z", + "id": "2", + "name": "Tele2 Public FTP http://speedtest.tele2.net/", + "data": "U2FsdGVkX1/mo3zDTPKE2JYkV/RH0LnA8DWVO8/mLT8ozSNMp5XbO9TCVeMB04h2zn+/RkL8BSqVzusGvPc/hB5wdpECsR9LXQsL2pVLNXkplMlyB8OlRylJ1DFmYuec", + "type": "ftp", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.ftp", + "date": "2021-01-21T13:43:39.123Z" + } + ] + }, + { + "createdAt": "2021-02-15T11:37:03.072Z", + "updatedAt": "2021-07-06T10:39:59.212Z", + "id": "3", + "name": "SMTP creds", + "data": "U2FsdGVkX18AXWFca0iueXujyV9hZbycosL6u3pYftMwTmHEOdwEKlPNFoxVtOsCWy5O00xWs2lV3M3XKIGmS1KWXD3tLMAj5O5Ynk780lFkVkaTOoHAFN5gkggmVawx", + "type": "smtp", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.emailSend", + "date": "2021-02-15T11:37:03.066Z" + } + ] + }, + { + "createdAt": "2021-02-15T11:37:46.005Z", + "updatedAt": "2021-06-26T06:59:11.676Z", + "id": "4", + "name": "IMAP creds", + "data": "U2FsdGVkX19SdPyFa/K5tlg2Tie4djwWc2JOFHLQQFjg07y6TI0V4V6oMiwOYgnAUt4r3n80bASv7w1kmjcvimSFop+9nlPx8pndyVGdUOfn5f9fPwmM6lUQVCGiHRtB", + "type": "imap", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.emailReadImap", + "date": "2021-02-15T11:37:46.001Z" + } + ] + }, + { + "createdAt": "2021-02-15T12:57:59.494Z", + "updatedAt": "2021-02-15T12:57:59.494Z", + "id": "5", + "name": "Disqus token", + "data": "U2FsdGVkX19UyoTbSFiMuYLDR5KP2SWmOu8hBabOu6taMrK1oAmoPdT2ZFr4Yjl2Sq62gA7WfKgE/qqCU2irNVBByXtWLIVeAHGTm6tDKQ+U+OPGDaTNuJciU+RsQ/VpwpN2yZW4CfOBQUR4jONzqQ==", + "type": "disqusApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.disqus", + "date": "2021-02-15T12:57:59.492Z" + } + ] + }, + { + "createdAt": "2021-02-15T13:08:06.531Z", + "updatedAt": "2021-02-15T13:08:06.531Z", + "id": "6", + "name": "Dropbox token", + "data": "U2FsdGVkX18JY4G+S5NaTkmVwYpW6yrfX3bVIkrw45e6Pf1sT0V4fciAHb/fh6oZtToCnmSWIsTdpGAdI4fJuz7Fc5hPMWLVJlxcK9EVnwecFuuCkcKSGqKfC4qQw4z1L5HrFvtRqu3kdLBJ2LERwA==", + "type": "dropboxApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.dropbox", + "date": "2021-02-15T13:08:06.528Z" + } + ] + }, + { + "createdAt": "2021-02-15T13:45:49.854Z", + "updatedAt": "2021-02-15T13:45:49.854Z", + "id": "7", + "name": "pagerduty token", + "data": "U2FsdGVkX1/B3ghuFhz1347NvobE2x7Mi4WjLVFoQpiZVTTDIk3dlz5f/UhX3Pw/59xwwReMvyw8MRo/RRI9/g==", + "type": "pagerDutyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pagerDuty", + "date": "2021-02-15T13:45:49.852Z" + } + ] + }, + { + "createdAt": "2021-02-15T16:04:13.241Z", + "updatedAt": "2021-02-15T16:04:13.242Z", + "id": "8", + "name": "mailchimp key", + "data": "U2FsdGVkX1+37YCqnvgF09N7Dx3kS8AUzXuWJ9ZW2wiyW5lx1gptBpp6HAR1ntabXt/LCHN+nsEaNSKhllEZjoYmxIWWz7r2i43MHIFbPog=", + "type": "mailchimpApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailchimp", + "date": "2021-02-15T16:04:13.177Z" + } + ] + }, + { + "createdAt": "2021-02-16T12:20:17.902Z", + "updatedAt": "2021-02-16T12:20:17.902Z", + "id": "9", + "name": "openweathermap token", + "data": "U2FsdGVkX1/evqLuEr9GFldum4E2ZLRLU+rBW+pVF4Qn8KOCs1BUz4tR6NWiRI3HogaqM0o/vu3jIJfBLE3qyZmcK0SRgQvLhsp7eQ9pLdU=", + "type": "openWeatherMapApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.openWeatherMap", + "date": "2021-02-16T12:20:17.899Z" + } + ] + }, + { + "createdAt": "2021-02-16T14:14:21.988Z", + "updatedAt": "2021-02-16T14:14:21.988Z", + "id": "10", + "name": "sentry io token", + "data": "U2FsdGVkX19boPxIYR9oj9q1i/HeugKAv8UUU5wk0JMzdIALxase4dzBXYIsOe5MiONVrOYUTBR4VScT8HAEExsVY8osfQ+T7QkDKInRn8kmOUdTR05DW2mVQHKNh/Sq", + "type": "sentryIoApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.sentryIo", + "date": "2021-02-16T14:14:21.984Z" + } + ] + }, + { + "createdAt": "2021-02-16T14:58:08.182Z", + "updatedAt": "2021-02-16T14:58:08.182Z", + "id": "11", + "name": "hubsport api key", + "data": "U2FsdGVkX1/Z24uT/B6cgNQGNCMknJBH1bpSAy0nQo/ohxX8SRiguCIRvw0/9aFfOuP7KjS8EnRGzNZmrgITKFeFDORHIt4zwlbW41zrE2Q=", + "type": "hubspotApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.hubspot", + "date": "2021-02-16T14:58:08.180Z" + } + ] + }, + { + "createdAt": "2021-02-17T08:20:03.577Z", + "updatedAt": "2021-02-17T08:20:03.577Z", + "id": "12", + "name": "personal rocket api ", + "data": "U2FsdGVkX1/Dlf+LrEJk5tWsYK8p7xB6XMx92eM7eLuFapQ0y8o9gn8mklaC1Bqv2jm3VUgZY7slENEmUkQ9XxhI9gle6uxzg5FE6FKmE4PN42jLaW/xCaAL7ZYto+8Y/aUWtnsAPWYCjI8e+qgTlN5Fl38vbnDqUwBzMRvc6AYhmSBipr5GPRpHJwkX4+squOyIU6P5Ed1zD6YZjJMkEA==", + "type": "rocketchatApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.rocketchat", + "date": "2021-02-17T08:20:03.559Z" + } + ] + }, + { + "createdAt": "2021-02-17T09:04:43.331Z", + "updatedAt": "2021-02-17T09:04:43.331Z", + "id": "13", + "name": "clickup cred", + "data": "U2FsdGVkX18dAAovXIsWCleujbur0NmOsqVPA90QCZzWC2CNmXL+RCvMVjAuz0USj0QasZ7y5Aiq83qUCHMhidooq/RWPiUcrNXoQePz8bE=", + "type": "clickUpApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.clickUp", + "date": "2021-02-17T09:04:43.328Z" + } + ] + }, + { + "createdAt": "2021-02-17T12:41:45.809Z", + "updatedAt": "2021-02-17T12:41:45.809Z", + "id": "14", + "name": "my drift creds", + "data": "U2FsdGVkX1+AdLjV9aXYN2meYs8Qwbyznr0WHBdcp53s5k+Dc37I0dGW5XsrAM6IjK+u1clbt36uM+86roZo5LeVWYHYeQNhgyKPvfYQyZE=", + "type": "driftApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.drift", + "date": "2021-02-17T12:41:45.805Z" + } + ] + }, + { + "createdAt": "2021-02-17T12:47:31.216Z", + "updatedAt": "2021-02-17T12:47:31.216Z", + "id": "15", + "name": "Drift API credentials", + "data": "U2FsdGVkX18pOmX9k7sDuGnTKOWfEXWUR7chWgIt2UNT0PBJf7fw3hQORICHZla0de/JMQiDGNXFzEY8aBsQ9d83Rx5LnWQlQY+d7rcLMhw=", + "type": "driftApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.drift", + "date": "2021-02-17T12:47:31.214Z" + } + ] + }, + { + "createdAt": "2021-02-17T13:20:35.267Z", + "updatedAt": "2021-10-27T08:37:42.803Z", + "id": "16", + "name": "Zoom JWT token", + "data": "U2FsdGVkX1/nLFjDaTRdH9RqMo/qLJjl49jiPkJkSrHoQaqXeHZkuSEAA79CZidSST1R3MoQHVRcNgipttXNwhUb0IFLQAegDf3yRGbqNxIOuMacwIVDdG7okIo0+fHvZXqeCyBONitjZXKrrqQGRCNLpPsUSdRGa3f0pxtCOLE7QcwzE4lz+JpbOZknrHJ9MkL8AuARjobQFhi6X/xX65iOWHsfPPf50MoaUjk4ItJM1sZePu7lJxFAXLY7qeo7VclA8KPQOjkqMdngfWH3BA==", + "type": "zoomApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.zoom", + "date": "2021-02-17T13:20:35.262Z" + } + ] + }, + { + "createdAt": "2021-02-17T14:22:57.677Z", + "updatedAt": "2023-02-20T11:04:22.768Z", + "id": "17", + "name": "Strava credentials", + "data": "U2FsdGVkX1/KS4H4rG6sH5TJp4CSv5VKNVxNxxV2+SNg+LK33zuDwHoHbWIyNneb6I1FO17ue3F+wTdcpYu7m+PuYBKzth46k1Ld96oPWjszE8w29iYhSjPzstDdDnWJRxt1srFZOGdMIarc/ydhcrpVMvWiNgTruDxzv696z55d9DYSDzL+CM4NuE/y05mpiRbm02f/6qB0vBI+TwooMiNCRrt2pNdP6oNZDy8Wug+8uXzbUpsIQUUdSSGWuG1joIA69mYf28ZXfGptfW2AnrWBMEt59JvKp2wP26oEz3UTEbN0sUpqjdZU7uFvPxNMob2lfvux7j/5lxdgXNsXxe7Haw7elrI7Y2ErUtWjddaw9k5HWlbqZY6bYOIGGdb7iP3UXQ78a8R86h9+/EZDqHhWKK5e95l1v6DRulBR/rriteTeyyxrMMwkm+nUDhxxa5g+IZ3z0QmnWEO81QIwzazpezsQn0XyZ+u2Vgud+u4cTUHFP5L+a/M73u4nHd/8aCoXrNAHXWiwdIwDUXNUgQYQxOz0hceWlZkBj/hrLmG1+O56HPa5YI/6XMHHQUVaREkYuUGuoxiN9TZIsXoNivP7qxkDEJzcQ7Iwfk8LPMOpUKCWptUDBarz731N1MxozADWpaC4xqWjlf7I4T3LzO2n1usn+XYazmDZRorAYDjykhTDoY6wE51GqpSVgaCX9TFV9RTwRBdmDw7vaLJWQ/AaSrfjklLCn8i/aKMG9IIpfor/gaR2/dWwXIMr1a4GlQssSSKpNkidZuQkMUSUydbwLzYMgn0Gedw5JW6h93KLgrrkAW5nxeHpntLYgMObrUuzdK+lRLF2vbglLWUAw6uAjIjRO9Web0EjVFyG4K+e+Z4sYJdTtQYeNLoHK67PqGgjMMqlmwws9ryyUHFPZvCJ0vJHQXZg4p6D1/FwHmLYToWNrsbxFM3YXl9WUJtLsfCG8clZlP4Y67zm+bGNDHIgulrsJ49uOEFvvHdFjeVRr4v8rH7FZIvEej8w4GuLCqyI1bCyFvEoJ6fxoA86JEzbfh4Y2sQUUAZv7VEPOBstk3lzLyOtX8Kdv5Q4YgsKc265dyXVRKjJEP9wWqKyuGB0tsD9eUqFIz/xu/BJ457sxMV4Icq1lL0TpXv2ncuZpl/BNUGSRFoKm9xWMtPjwWsDsyt2apHYoGkODK9zWuiZ2G/kE5afzUz2+U90hu8Q5ekBvnI6B16w5sYH4gMc5a47JDL6MSNc9kXt5mT9kW3mcOivAOEPCCJJ/mvozb5HzURYKKsZOXM8NmLUdZIBTVudLY9XYQ9Jm7lNlV0d6JoT5T6y8gxVrK3ViqzoC4YGpkhBJ3GtlQjXhHLFhyQiVYq5tDt2h1wBskFZrrP5BwmlVeR35pGHtlzme1FSRfM8qyA1H9Cw4bxEm4AAgZOAuyk3Lcy9zglYH6JsNdX8Fa16PNp6uCtaCWhd+wd+iwOuCnvcSUohg07Jzaj7QpZFZ5eUZlRsfSLhW6YZkBCqdjmOU6Fix0+BuYAonQigoZUQyr1UE0rRlo2hxLqTbaGQh4XTCZvLE+xsI/YVVtY+bwXK681sM2tqYf6ebua1J3HJXm24rNbCdwwkdGe0YYm57o9xTgKajRE2bHPiA3d6iu+mB/vgufVJ2RCdbU+7tAN8", + "type": "stravaOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.strava", + "date": "2021-02-17T14:22:57.672Z" + } + ] + }, + { + "createdAt": "2021-02-17T15:36:32.700Z", + "updatedAt": "2021-02-17T15:36:32.700Z", + "id": "18", + "name": "Slack Token", + "data": "U2FsdGVkX18Eai5B3FetbX23OclBkxKHbhYWwokHtZWEVfZRpMuPar9ZOZ0pvU1XhupZUORmHqPUr6ArDnvNGjZW4U8uZmtWUgp27RDSHji3d0JR071WsmtszpMEEBXHtspvSq8HYfkzTfBz65IZNLuBrpkDK3zSLmWPL1XAHlY=", + "type": "slackApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.slack", + "date": "2021-02-17T15:36:32.693Z" + } + ] + }, + { + "createdAt": "2021-02-18T08:26:48.413Z", + "updatedAt": "2021-10-27T08:50:17.141Z", + "id": "19", + "name": "Gitlap token", + "data": "U2FsdGVkX1+3yzHMp71Ko+7dex/Dl7iQ4p0PVfNRDItUQgmQR3TUko+ATWWdPaaFbp5wMCszYx7YACqeqxtUcg==", + "type": "gitlabApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.gitlab", + "date": "2021-02-18T08:26:48.398Z" + } + ] + }, + { + "createdAt": "2021-02-18T09:07:01.559Z", + "updatedAt": "2021-02-18T09:07:01.559Z", + "id": "20", + "name": "Medium token", + "data": "U2FsdGVkX1+YQ8h3jLxoLEdAteuDiJ8wtSB7wTl9X9oFgLceBq694vCaXy7kCZHTRZBl0zTTi9UthBh9m8VwT4/+Ew+Q72mi+Auf6p3i4Sy52wXxrOkXDcF4TIt6A18tIgv9jyaBixm7ycd4NEaQ7A==", + "type": "mediumApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.medium", + "date": "2021-02-18T09:07:01.554Z" + } + ] + }, + { + "createdAt": "2021-02-18T10:24:53.036Z", + "updatedAt": "2021-02-18T10:24:53.037Z", + "id": "21", + "name": "Github creds", + "data": "U2FsdGVkX19vvKc1mHdf6RBllMHreMQEoOQiPXi15UKEoDvcCMG00nClARleUwCKe1zbUXRBnVLsE6zwbAsIIcacIcWlRYi/d8IG54cr/Y+vRuqkU1Zs6lkefaCd4MM/U7XU/KB7Wkrg2pvhwk7jIw==", + "type": "githubApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.github", + "date": "2021-02-18T10:24:52.976Z" + } + ] + }, + { + "createdAt": "2021-02-18T14:41:23.986Z", + "updatedAt": "2023-03-06T15:34:18.960Z", + "id": "22", + "name": "Gmail 0auth", + "data": "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", + "type": "gmailOAuth2", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.gmail", + "date": "2021-02-18T14:41:23.732Z" + } + ] + }, + { + "createdAt": "2021-02-18T15:18:21.795Z", + "updatedAt": "2023-03-06T15:34:18.782Z", + "id": "23", + "name": "Google calendar 0auth creds", + "data": "U2FsdGVkX1+qd8+Rp+6Z7qcqFaHdp/hHy53JfQIaZifRycH7GAmAc2gIQcaWnlc/8oeyNl6p8GCD1w6MNVuRgeMBIo0/cjB49tU3pJkw3UfXWJWW+I2QIivOpCk3jDyACzLEgEeyzY7R/vn1wsYjlyx/dUgzG7wTDRg0XBjDDkPcxFrymTV1n6JQUQ9/NTVrv5yibMrh2vF62wOP1YJpzhCRMNCIKx6N9GGBiRJo040fiQMVVpMZ1LpAlIhIoXMJAZRINk6wJocv3cdFt5QC1p3TkvB/lPwMAmY701YMIsZ7X5X1OkNqmrec+yyFphOefHpW1nXD3AD1H3Ez1WzZtZAr4X5rvWVrs0Tza7qB8bxBvSJx3WUbsyoH/bMwleERb/cIl9Vhj3CJR3B0VQJTUxcgu8E4nGqCxoFTUfnUD8C/Ekh5RAnMyNZaS6JJzKTSHpaXpszJCyc5QTljncg88xsrckue1EXCOKl83Z4mEK7PdGCHwX/xpGMK1Cnl1wbfbb0pRhgg+KIxzM16Ap0OuXtvQQT7sllH3sdo5J1+vIYJpqujhYlm3VVAbV/xy5fledVTVraMk4tKKFYCAvFT89bXpb67BbyD/xUDOaUyOjgWD5chJqbWA3TYg3VvHhOtuu5tXIKhpiDfarJmDS+8WAS6Pfbpex4B7nLPJ/WVulRX731FCDXd0XcY3emd16+d+n+ykYmHSgeun6yHQVlMyU3LAWBMlu5BZCBrGmvH9mQWHoxwNeDQABgbLllhRUHnsSFGTM3MJolm5IxTDLSMG/Mn6w2UmheayEXvuDdYLUQaGBhr5sxRO3kYS7/q6xNFcq65Mrn6j6M5zE9SUR8dkCLR4GXlAi/qdBQw63ohI7AcTV/+Ebn1YZLQhIF78VGSs0bb1897nyi1a7dUYr1y7sTRrJ3DohKdi6Ccuydpg48WZVbSnes8T8dOrbpiRRroYuX3PJoICf3rqQw+JsxM6bhZbM72z5dh8e4AKvb5QcHwqm/HbBI9dhNp/sjN01DdP3kcioH1bmNBcbRru/Xob2SJdDupjc3ZSSuizk0AtLPYBM79ZeYqH2th3Q3d5azkIGGDpSZ3n5uKilXMjkIda3y/7AMATiiy63hXrrAjgQbJF+D8nDbhCity/xPG+l7MY3sHBjl2c/+kLdAbh1wu1KsmKIRbOklingBSg91DJFdwolk24eLwgEifGvi3kQfPssWN+Em3G9wWHVU6ncDdnlfysz7yH5YtwXGnN4Go5Ytpa5eAPKtJ15g4KhSYahzIOPqNVWSzZjNU/O9y1oUEmqq8yLl/hyAhlOuS/pSmAkpFspivnFtYtQ9Q9BsjN2QII2pYKriqD7NI0pj6sO1issRRVYwabAZFu7kHVUcGgBqVwyJNLW5ywJF8EUqXBnE6/6T2VM0AbN/C78wKksCcxfqUdM0ivhpC0IG/rRsb72fEjWtCA2NFKtKrm/17NTs+EJWY+nO+9v56nfzPv2sSzw==", + "type": "googleCalendarOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleCalendar", + "date": "2021-02-18T15:18:21.790Z" + } + ] + }, + { + "createdAt": "2021-02-18T16:03:02.703Z", + "updatedAt": "2023-03-06T15:34:18.788Z", + "id": "24", + "name": "Google Tasks 0auth creds", + "data": "U2FsdGVkX1+edD61FSggCKY04QefXoggIREO7JWOw+3HTPR+yAxw8+oJRZ8TiP4p7A8ozDgpmqpwR1sMJrM8UtWTmgW0qUEPqQHNeCldjVRvkON3lklRNBdnLWELMojccrm7itIxqwRc78GSbdgyxu0yFnP0BP7zqoXaaKTxdvETTsYlKeEqI1g7T7Pe3uThCsI6EPSlN5dNTPCaQ6JqThXtA7oG0ycppNfLntj6wGTh/WVfcXFfpVwXTioNxYQQrcnZ4CvM1oV7oG24I6pfbgXg1XtB/jOKuYDmxvCdiv9ATCD51bj2PqJXxcWD7B4EC7cpGzkkSx8VCOQVM/zBxFAsfvWOdKKYVJ3WG7NWg2D8kFHsAo+Z1hwL4kjKXeYPQP5aBKEEGgi05ekXa+6R3LEz0lqrKN+BlztWsJ5v1K0T6Sijiw0ejHQlh1kNSeLXomP7NBlSravGUXTV7DM8uqpE8Wy6GUeRcS0xrl0ih45fdLWAv/M2gQ7T+ga3VNIGluGtNXraCrdpl4mqeZH/MdReshoOYym6owwgTg7fJ+ZdzMfG78NfB7/WuOahtv2u1IK0L5l9ehMvQzdGiWA+UTfC1o8LT5euQqM7HFskEbEp9/8w4cgOFMEYH6r+A/J3U2iji3jYVKUNz/g4rb/R/8uV5z+AjNgu7V+BM7noI3+IGf7SEtsg+G71pGB15R8w6hbcjcQD17WcPWXULCyJ5LbdQntmYc3t5ApBHJ+axO49TZAQN9Di8n7MVOL6C3lsSfcL7Rno+k8mUXJAdYmjxb9hGTSqeVLrTklRor41zm3yjiXRJTxnyuj2zOL0Sf9KmZMtVq4uT0tzK+w3KFx3qeZUjgU2z3tCOTNkfWX9pIbeqqQwvnLRONj5SYekf8fPk8z3nR838eGWGBE78fsSWmTn3PZV6o3Ipo/cX/Upm7ME8oaUnUFml5C++eOPEzru/fxLGuYmkf63o61u4CPEUvPdGfBiG8VmdWK7INrN9zbIj/HhryslI4btVPlVQI6yYgj54xBj3kXC7YhjVVRv7AtKojWkb40nnDuHsfbmCiUFtW61Fc9Tzk+QtunwKMIA0LL0Opt4m8FMF3gO1chF0i7xHiwQaezxvpEt4o+b0RL1ELg5GNmgOFEQpk0SgX/o6duf4NcK/jnM0a52eRC1/P6EJf5cbBO4uAz4JZgF0x4H42aN5fkg3foDdc+CjSRo0sUztGX2CS5Bz9drFRxPbJ43tntYZLH2SECg/T/l7KMT7XHLuakNOME5NUZ6XQ+A", + "type": "googleTasksOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleTasks", + "date": "2021-02-18T16:03:02.698Z" + } + ] + }, + { + "createdAt": "2021-02-19T07:23:21.167Z", + "updatedAt": "2023-03-06T15:34:18.909Z", + "id": "25", + "name": "Google Contacts creds", + "data": "U2FsdGVkX19VGtbv7GPw5kvNUHdRv0KD24G2pKQkF3HBq/VxgslaL3JS909bS68gIPBgV6cbuz4UiDBK/nodQ4L9Gus7lpfM8kuNC3ojlyn/AQvYqfuO+IBpGqkeO5surLDhdnCZBcHBOZlWDruaqT+a92ewm9i7PQJNQBcQ8F5zcOBJr2ZM3fZIxVNA7bhl+T1qeUrdGLOQSxVc/OlH8HNTttxpQhCI8gYapBOhPUscvKKe4lcqGJftSSyohqJX59PGNtostOku4GU4iNr5RxU6m0BhqVqQSt1wYxkbO+L5C8VqwFp6zndX5wbqcc+Z2OzkjBLhl/MPc+ZVX8fHsPpWopbcplX81zOr6bNbzKcaoX2FyIccV6YeSNw7zSVrVfQog3qZd1KMLbK8Tpwj1zqH/J07BWnu2yJf/6EPe6jQPU099qObwxGX/AcZbVDJeVzPeiTQNhQNFf2z2SKb5SYecbEz9QA7i4BZxPVOcC+1Xzuq83Rt9VQfYOqSkqVphD11U6fXfULCmkW2Rns/y+FRqMi+XG+72eWM7U7emmBtm+4mjH/WMKDTe6EwF11VFE/6MYoYfwAVWwyZ4OTyZZMC118oenid5AsTeRjEP2zBD58biK3MTHTlQCKdbbySW+bjfJ+I9subcgUoHBlrFBnN+pmT/0mmR8+ijwP6eaItaxjwjbh4bW2Lco6vh/2w5aC/DohIYA6DdvQs1xNs9TgKXsvyVwYRr5cnzyMpk2hVbeeF6USFRkLlWy4uux3hSzUJswmETd/4dO2j/jl7DiFG3xacGHChyKcauF711vSCUMnKCJjcrvu8DWM13GK1rmD63O3NH0j3tYX854cZlFQ4Jkzla3ziIpKlpZe3hnD6eXKIa6w89C3ZuWcwlSS7P3NhQaHHqAKavmyYIDe+tkI3lYMxfoWu0Z+i5h8WyNPpDNT4X9pll9Y4+XfeD6+BUPcMFL1RyPQrZ7SnGfebww9iumnjQ3b2KOLILdZI8n+Y6jJGJY9Ys7B9Etvgf0y3vQ2ZEzfDbZwkv7EF24GBF95G677yOSgzHdv05UjmZwW5b6pT4j5af9D9DwTitNbhSKYfFhTFqEf0+YZ0YvjIE25l2UraFdGEawotxCiOxSwZ4KMetRSiKPEiB/4jhuWKyfAY8OAcQ6+APMtSSFMiDAHvPdqav/ebzsOtywav7UyjM+o5uyj+3OoniPl6EOA/aZTPPA3eYR3baaQ63VWMlaqs7Wgq0R7XxJUAgUs23novfMfecEpiqNW0n6TQG89MtPruyUCwDnVBuASqbIkffw==", + "type": "googleContactsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleContacts", + "date": "2021-02-19T07:23:21.161Z" + } + ] + }, + { + "createdAt": "2021-02-19T07:36:52.875Z", + "updatedAt": "2023-03-06T15:34:18.930Z", + "id": "26", + "name": "Google Drive creds", + "data": "U2FsdGVkX19TL4Gerzx9CT6G9dLI2TmgDJdZQXu1l1hqxF7Y+jP+hHFaVpunu8Yhn14NHNMakt0uCaHFXKbj47QdZGo/AEgP2SeY0WBG47FPJAgr3iBSSuELJNH5ha/OCBrspKTKRBO0vu0p2Ypfqqx7JB7GmaczRo/VRuBn92edWdw7MIVOBZgVLBw8BBR1O3YMwfHYWxGeqkxQEXNhVvxvPqTJNJnwWwAyARJbhsp9QnI9IAhRcO9pPnIezQqcTQkE5ufQnNB0B/6EwdCCDf8ACg5yIDtIc9h9HtNrkNoEoAvNNfDpdu6ZSRTH+j00ggwA53t+l29Ip3p/1jsnjgkf/6+ySj4hWZl/CLx5SNY4phz7uTvME1/8wqOWF/MaXCzfVSmEuuxzqnX6q1jQgpRoMzAs+lKl11ZzK46b47wFiNEGBIwy8xhOX7y/Dn5a+ehmzOfvO2OlzCLyuq+TVSmJaMAEol1WBXiefA1iukT1LD2Qb0p9j8bn8LHP//zlS3rXQ5wiWlVObHHL1YXuoiboFB+uuhsV/oivaBdr4xylytXv1SwLn63uJ29HF32/xVFGlZmgUPXLLBOLUKfkA3kUl12GOzZmQtmYhmyWSVuyRBxWY1TobjsV66p4fKUpKttWWGcXdehQDoroB6pbgOHKO8i3iL0rFuxTygG354jT7XJAeDbJxp4353BiKMfr6M6b+rHzjQlSoV/lTkhdWbQ6d6lB4aoQaXgGe8Op41Dg40j3hPALyeTPkXDkPpWATMV9s60jGyzkls6Urjc7NcGwwhIv1/ktK/Uo3g4LPAOQw77DUU5b1VknF0ZiVUgz9QAeftCh+If9Br5/WXuRBLY3UbYWaaLod9ftTki69NmkZD9Muf1QT9yZ8DQJOJDpitLJAqs/onWk8dQvNOIR7Fq32cuJZj69YS4HSHzaolBNewzvd3d0jDn8DJrXBYEUbeWw+cfTAhpV5WNivaE+G9peCnsbWWnnLiCigtUHb+8a8bQnC2QQ/5Vq1snVxvcwkntNlJ3kLnkJ0DsIwZ9L9mjRhLHFJl2TF+bX5cKU7XPdrh/4TRXBdS9KyuFh93OCAU3egsgho5MgNkGLgl0JMcXVgzs/pktkw/b+t7u6hGMOyxkwEJ2rc2j8IPs2gVHC5SFgjyFoi4i3Fyy75U7ZNT4DB+6Pbyr8teOchocHWGsFk/Wn+6WtAwA8q0OqIQ9aB3ATwiojUhW4NGxj6S8/ndamt3XN99uw/aHF4IAJ6Z4rbfojT7EhIyKHC61Z9XPKdbW2HHadUcQM7mb9jk/klPrfKSGGVkESs4ess6E9SN6/yrhbhxocD3mFZBKey1tpvajXg/2PcThsFQXkLZaxhOAxJl4w1ud7dWMyLkDCK8qFEA7wLNcC3RAd7/ru+J9kk3zoumo+LcdXcPolkuuBS9XSaCLmZWDd2p1/Zmm84Djg37ieNyjmb94azDWByTsWwsna7L4FyqZYuuJ8rinwk+0V4Nn0zg0+fm3yvZ4ZsiPgyZ97z7r8yx0RhB3PQkRbN5cRoQEXaEgO+/MAs7PFxmfdr41NLR84CV810sDDpYBgXrfK1OUpuoOEmYaaSBTNDmaneHxV/FWSUrH0vUC8Q6Dbj8FAvuVfs0G/7jQThp5iQniaa19kivlhxvw6eEM2/qQZejh0yDRhcfgQrWaIUA==", + "type": "googleDriveOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleDrive", + "date": "2021-02-19T07:36:52.865Z" + } + ] + }, + { + "createdAt": "2021-02-19T08:21:10.389Z", + "updatedAt": "2023-03-06T15:34:19.181Z", + "id": "27", + "name": "Google Sheets creds", + "data": "U2FsdGVkX1+21ONZUJ/0Cu/1d1sVpmlTAu8r7hzqachyECaLhrgNW5e7KED38VQHeR57GOE+Uo3FhFM5pL8yqG0ZcS5S5+uneXXosQzkDy4UPWE4ymioy9fv+SQJTNN3e+BDQdXATGEcD/ZSpqgBtj/Ld6zv8P3OxWr65hYCkmpx5csrORSwrqB8zZMniyaXZgpUd1mGCHWGFEjV+IZFMTwGmvTzmfqmmBLfGXHhzqKN1FJCSZ5WO7fshx7Gc7A/DaSHprdnxY+axa+PF+utCpbNx9pKvCQv3dttSlMpQfEkzEzENO8uUbxYXi230UZlmZ6QNMkzrgh8MZpwFAInqC68A/tEPrQLIGEykg2zaw7gVlVF560GXxs9Yh0nRBF+La7SKMOCEf2FUQaJ4niQg0Lmf5A1OJLQENbEbsVyXieUP3gqefoUbA5bYbQg1uMwmURAvgXfMvX/WFUbvUdd37Pee7x1QcQ5zL7i5/NPwORzdwZaW+QHcsLXDHl0CdwBXtC3EhlhIQ3K66/uh88dY/GvgaAYdqAG8YxpEG3VXF/xMJBUQOqcHlXi8Zm1SFK55HURPUGBPscVxsXz3SFANkY59d4LE7ClZonri/QACQZcRc0MG+n94fAtQ3RctsqI74hTnpqF9+sbsJfkxpLBiepiybbN3A1BExB/iAdQcRU/bTLWXusBfs0ZqOKZFLeZgEjw9/e7PMtmwyQ9g9dZvJ+Q6Iiy8nQq+gy001Eu9FMACQwCl0Q0ixiK6JbmnezSn7qM4dcgzZTInTh3RnTjJwRa2fm51/4+gRdFHFVTFimNacs/al0yM2o27GZsebZ/GonY2cDgNnCbtPahZrD1Kb7s4JsmlwwM6Ry4UKE48dueirrSlLc9N1RhonH7BYnjH0o90Un6iQ4mU4NLTLF5UPxkV07p/3DIgMCJjlJGs/xR+cQPHwKUfkE9moYhRNkpruzcc3hioebsF27HnBPmnBXBFYMnLUt2RbAgDaXMfDk/CsGKaAR6zUKAlU4np38ybk4txnKr2nkiw3A2xWfuXeRO37ZlRfS5WIMtwMLDa8ni067/ToDtGilt0ZgFcS4icP9j39QVWNId1PCJ2SMSjC8c29I5tXG9+JKMoVLo469cnsmsj77MxuulAee/m4qy2+3Cw69Z1MtAoGBTSpgxylukolJtiUFHVr5W0YNAXt6u9SE/7dyRSUzUH2yoS2BAqA61SeNxyzCFObf21s4JfpDv+SQDLhiDKwLzOY/Ss7jUF0DaxruPRvQd5DsI8fDFKPG8fhiVaC2CQD+59wz1o7UJRuiEnCJEhKPTM4nYZZvMUK5mepdrKH0O2t3lxOAIDUE7gJQHvRH7J/XSnK9P4HeTeNk388shTZu+XGi9yriq4aI9Vnhtu+te/nMPFJfNMRYEbDcuV9BlALDD9h1EoGiaN7hwl18bG4/LnbP2aYuyuQNsz+HoEOdDLuwPrk42iT9Vy/uJ/DRgZxkRSu2XXnJxlYkiF8+wBD2T6Yc9hd0n1l4shbik5xZYsC1kCM14jSO6HaNcueek3iTEX5KqnKzwtkxmYK5bA8lnDC61jzFek8AjBryxlhmFQoM2lLHjI6H+Hm/4oSxo6Z7JvH8fv2TlNXosPqEXcOlVFIOvAUqbs711oQIPuAfHo7xIsacx", + "type": "googleSheetsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleSheets", + "date": "2021-02-19T08:21:10.381Z" + } + ] + }, + { + "createdAt": "2021-02-19T09:22:25.089Z", + "updatedAt": "2023-03-06T15:34:19.009Z", + "id": "28", + "name": "Google Books creds", + "data": "U2FsdGVkX1+hfSrqAA29hJDK0VA14zcJwj9O7dnWpTc39k2t6ZMuKQUfIgAFmQWOHbi+3GV60yuiEKTnttU2gcEOFtLMnA+uYvTGAsUhdEWdPtUB7UmA8ORvSmZtsvTIS3UjuE0umXgtr6iFMuJJ50zkoRSpe1Wf3cc7Le5KgDb4FVp4o4fyLUPUSjyy9Kd+jN491Uhd03K1kxz4ScZe50SKoxzr1ZRhcjht5Xwk685kUOlLJQK0dgHse8D1+JuKt2jyvLrz6BLfM34a4MYoCvHFDALznwunpT+zBIWIekAfybwZTBGW0cKW4LLF4+sonmzVdbfZiQ2+GUiFhVUYiyhUePW+274Dw92clJSxEPORTZ5GeUjAC7wcSTOSpNKED/Kb9iPoK75Sd3auPgbVJ9i4oZGhyEiY1ex27cCVKPWZc4qHlzmhRAlVBX+1oQ1afDYys//+M+tkw/RbKNyYekzPlDDGzKcEUM2kwkcF9qOqHT+YQKPTk6HDZt+8Q7ITf+YgvP/BVuQdVYBdTgguKDTcgxqx6zmQHYObFTuefp4BbekI3WPAbbl9u+I8dWwUNuEaq/x2VL+Bm4kXoIvZbbaZiUshDiJ5DpVkRBgh8CSdfsFyUDveCFkbm7FW+mk7RFLLJ8/s85X4oNKiW8+scvQlPU+yvwkxrGGxFCugkZPtQBOqrSH8P3cauPIhPolEzbjonCcpTfQy7ocgk99Mja+bc+dAeTzlZkFDwVAbk0Z+FrgIRHivogNT0pPyvA7f7r4fVicM4Mbbs94jXrU2682z826H1dUc0yRZbePo2qFFkYIaLlYc6twtbjAA8f6AhVHFYfBGuZllyzMmQWmftR5pEJZcyIODyMhK0bPIFAI3er/tZrgWap6D4B5FjSlH5ZNQIsSiynOV4TwZDnP6Ept+cfJn+GI3zq9HXVZWE0UjdRUqOMKRllpULCxjrElCSnplWnr4BLIEtJRuQ+F7KU7rsDooHZ0sCj14SC6wR2W0vT7M9LeRj4bb57ajAspNsqNwgV143y5giTa73tDjxefQVWKmuJgYEg/KnC8f1D3X/kgUkGSYu+W1k7qTRibASOeM1KPGiKYxqWFyX/zmjYDN7QpCDNnaMN22riBHr2Q6bMca5s9e0fFUVc+UVj3t44+YMl4Xobe4z6kkRhpoQFD0Orw3qen0iH0QDzwuq3FH62j1UvMADrEHvqR1ZDwAjlKBWuqZEbF+nhCdkaOc9vFCZd7Q6Ge5pIEaSJfRT6co3vlHU36+QwBLV+1IYoBG", + "type": "googleBooksOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleBooks", + "date": "2021-02-19T09:22:25.084Z" + } + ] + }, + { + "createdAt": "2021-02-19T11:05:20.475Z", + "updatedAt": "2021-02-19T11:05:20.475Z", + "id": "29", + "name": "Mailchimp creds", + "data": "U2FsdGVkX18xXLE184Ww0HhGQkif28k1jLv1ct51ofijH9qbNGhY2KUE4M/ziFjMsBXwtClo1oKHfWJ+2qDu29b6R8mKOl/1dJSKDo3WAyY=", + "type": "mailchimpApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailchimp", + "date": "2021-02-19T11:05:20.468Z" + } + ] + }, + { + "createdAt": "2021-02-19T11:38:01.580Z", + "updatedAt": "2021-02-19T11:38:01.580Z", + "id": "30", + "name": "PagerDuty creds", + "data": "U2FsdGVkX18Du1HJcfLgrPgYruh0cbxQT4NkEwQ5Q0JUT1B7RxhZMPMYGnfY//cf6GlgSCcF1bb9l3arLf5Wvg==", + "type": "pagerDutyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pagerDuty", + "date": "2021-02-19T11:38:01.578Z" + } + ] + }, + { + "createdAt": "2021-02-19T11:56:29.813Z", + "updatedAt": "2021-02-19T12:02:56.759Z", + "id": "31", + "name": "Dropbox creds", + "data": "U2FsdGVkX1/Uofms8LodC3KQrzG2UWCGnscMH+RPTE2axbxtI6YocNs+36iw2N1i92ZtGUViIGH+uTwmQnDOQt4A5+0B7o5FU9R8iBE80mq10LpgUEnWPG43Ptesx2goGeuBX1N7d9YqoNIUCJHjLg==", + "type": "dropboxApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.dropbox", + "date": "2021-02-19T11:56:29.812Z" + } + ] + }, + { + "createdAt": "2021-02-19T13:53:50.602Z", + "updatedAt": "2021-02-19T13:56:32.212Z", + "id": "32", + "name": "Airtable creds", + "data": "U2FsdGVkX1+p/4EZC6fbBe4qz8h2NP0wlwXoUBQqLV7Xqqex3F9z4JzyDBBXGqTm", + "type": "airtableApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.airtable", + "date": "2021-02-19T13:53:50.597Z" + } + ] + }, + { + "createdAt": "2021-02-19T14:17:11.249Z", + "updatedAt": "2021-02-19T14:17:11.249Z", + "id": "33", + "name": "Asana creds", + "data": "U2FsdGVkX19dsW2YFvNyR3Va4cffC/3puNn+BdxY8zyHQwjR2WL+cTHIQZ9vnGfddqkd5vxrjBdM1EMNYvVu9XhzdaYaXRlu/Rvz1N9dg/XREGtR0ily4UZJtR5kI46w", + "type": "asanaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.asana", + "date": "2021-02-19T14:17:11.242Z" + } + ] + }, + { + "createdAt": "2021-02-19T16:44:50.180Z", + "updatedAt": "2021-02-19T16:44:50.180Z", + "id": "34", + "name": "Bitly creds", + "data": "U2FsdGVkX1990KbQcV2hqg2N2WqqysphMRcF9rRqHbV3xd967Vo0gm5udr/FIXIMl8m+4qWh6bIpovyiDagdulQPpuEE78s8bJV82Rpk9vI=", + "type": "bitlyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.bitly", + "date": "2021-02-19T16:44:50.160Z" + } + ] + }, + { + "createdAt": "2021-02-19T16:53:38.869Z", + "updatedAt": "2021-02-19T16:53:38.869Z", + "id": "35", + "name": "Brandfetch creds", + "data": "U2FsdGVkX1/xdfTlrPUFZe2VnImmukah+Rp17zGZId6ryo3nwNoultrEmgPNEMgvJA9zSjsqu20zjR2xujBtipZqJB1sjtr0GVvpYi0JlfA=", + "type": "brandfetchApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.Brandfetch", + "date": "2021-02-19T16:53:38.860Z" + } + ] + }, + { + "createdAt": "2021-02-22T07:21:18.838Z", + "updatedAt": "2021-02-22T07:21:18.838Z", + "id": "36", + "name": "Clockify creds", + "data": "U2FsdGVkX1/lgcgfsGNJ0Hhk42cGd5gdw1VjOlm4rvsRatgjASdsg0shFMB0Zaspb+rDO2CJYSsLf/gAZwXIiH47dsNCTgHe95PMeSyt0U8=", + "type": "clockifyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.clockify", + "date": "2021-02-22T07:21:18.831Z" + } + ] + }, + { + "createdAt": "2021-02-22T07:46:04.337Z", + "updatedAt": "2021-02-22T07:46:04.337Z", + "id": "37", + "name": "Code creds", + "data": "U2FsdGVkX18QBJCIz/5sBK0uTJLi4gxCQUQ+48jsKK/ENyPqhnFZ7uc2gnDYyLBR7JHhLPqplv0RuaaZDbo0iajcOvJurdO3bK+0yNSBsXE=", + "type": "codaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.coda", + "date": "2021-02-22T07:46:04.335Z" + } + ] + }, + { + "createdAt": "2021-02-22T09:14:29.302Z", + "updatedAt": "2021-02-22T09:14:29.302Z", + "id": "38", + "name": "ConvertKit creds", + "data": "U2FsdGVkX18kPZr6CzzuBhOHSY5wILD3lzqGCbmNot7ctpX7ByIA/gaVOGQmsliOQ0HAwSnUEQSloW4BxhFlyv51vK8nCwzhpB2PH6Iy3o0=", + "type": "convertKitApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.convertKit", + "date": "2021-02-22T09:14:29.294Z" + } + ] + }, + { + "createdAt": "2021-02-22T09:51:25.952Z", + "updatedAt": "2021-02-22T09:51:25.952Z", + "id": "39", + "name": "Invoice Ninja creds ", + "data": "U2FsdGVkX19FCgCRnZI9LxkJ0fFDqCHTNzRDD3PPCEx/iwDzlc1SF6Y/gvEedCIXbrSLj5DA9Cx0+pLTmu+TdQ==", + "type": "invoiceNinjaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.invoiceNinja", + "date": "2021-02-22T09:51:25.944Z" + } + ] + }, + { + "createdAt": "2021-02-22T11:06:05.470Z", + "updatedAt": "2021-02-22T11:06:05.470Z", + "id": "40", + "name": "Hunter creds", + "data": "U2FsdGVkX1/1gYkZzUr6nvLINdWRLgfpevrIVD+9N0Oj+N1EzfgOa1Dt+mh7XwPfIFN7PTAFtx2zvc9zWpE6v9lbs+9UmQ94mN7o7SQJn+8=", + "type": "hunterApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.hunter", + "date": "2021-02-22T11:06:05.466Z" + } + ] + }, + { + "createdAt": "2021-02-22T11:29:21.335Z", + "updatedAt": "2021-03-15T12:38:04.857Z", + "id": "41", + "name": "Trello creds", + "data": "U2FsdGVkX19q8WLJggC99tA3sNCK7veRzmTun+D5LgO6N1LTdCpFsthgWZUJwTNQoq1xkMTUqcP1Pj5tDql8XScwyMpuUV2L/HpT6XIsmRNTtW6OnyiN9SUbOjT/CyhvW6scxU4TB5Ig4hChfzpXqOLnX79+hpaq+uEZ2Z7z7OYkBPO+pb8V71HghiBoWN2khsNYHoowKQLVQQewTy3Z75Ck5cYKlkCNOW0mIl0uj34jwPwRbLj0kbe4ET/4whRlewnWsTqGn+qUeAv6U8BGTTKmGqlKIEQB9L9cGEsd3PA=", + "type": "trelloApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.trello", + "date": "2021-02-22T11:29:21.326Z" + } + ] + }, + { + "createdAt": "2021-02-22T13:57:40.992Z", + "updatedAt": "2021-03-19T09:43:57.936Z", + "id": "42", + "name": "Mailgun API creds", + "data": "U2FsdGVkX1+ZwsN2nbj+EJ1UcibG/cA10of9HwNMWZlDMtDcOc85SwN4x/2TOuLxV6ZyvVVD/vlGDZYWmRKM2R/U2kuj0K4T04VkM27W/oebDSYYtFXzxkZoGLArpztmeoyL1s452mMnCC25h/avrp+xt2I+U1ElIJEiEaWfAkoGc0z4fiPoXzbEG3sGenzEsu9ttsKr4mmVWdwE2znYxQ==", + "type": "mailgunApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailgun", + "date": "2021-02-22T13:57:40.879Z" + } + ] + }, + { + "createdAt": "2021-02-23T09:29:07.947Z", + "updatedAt": "2021-02-23T09:29:07.947Z", + "id": "43", + "name": "Todoist creds", + "data": "U2FsdGVkX1+ZQ+H3Iqo6GY28ORlUO2kdl6j5uwphJzkPu4fjngt63aWY5+bWWUKDSm77KfxyKRIfaiLlC3IgbMWvR7vhr43wsgSPhWwxlbY=", + "type": "todoistApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.todoist", + "date": "2021-02-23T09:29:07.915Z" + } + ] + }, + { + "createdAt": "2021-02-23T09:43:33.668Z", + "updatedAt": "2021-02-23T09:43:33.668Z", + "id": "44", + "name": "Mindee Receipt creds", + "data": "U2FsdGVkX1/xjsZ7QCzqu/anvMFyp1YFh2gExdIEMxlKGVf+XgAYCgSgjw7pwjaOc0H+c9UyOO0FQ8yh59EkHw==", + "type": "mindeeReceiptApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mindee", + "date": "2021-02-23T09:43:33.665Z" + } + ] + }, + { + "createdAt": "2021-02-23T09:44:38.720Z", + "updatedAt": "2021-02-23T09:44:38.720Z", + "id": "45", + "name": "Mindee Invoice creds", + "data": "U2FsdGVkX18Def/h8UXc1LyvtDAklLmMCR5/KRBrs99NFVoBrWNoNQZgmp6eQeZ6KqWRvMinWLySGsLD1G5ttQ==", + "type": "mindeeInvoiceApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mindee", + "date": "2021-02-23T09:44:38.718Z" + } + ] + }, + { + "createdAt": "2021-02-23T10:00:05.520Z", + "updatedAt": "2021-02-23T10:00:05.520Z", + "id": "46", + "name": "SendGrid creds", + "data": "U2FsdGVkX1/Qy3woKXJcHu0Il+dKLHNtIliiqCXBj/PYC/OiUXCTMWdhPNSXzClwui2u2lCk/G/EmOTh/4mVFx78vdqPfbBxWa9t/xOhND7PZ2tFSeVCAxEi+/NhqryKFcDHlfuELJNoc7RDvKu7KQ==", + "type": "sendGridApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.sendGrid", + "date": "2021-02-23T10:00:05.513Z" + } + ] + }, + { + "createdAt": "2021-02-23T14:57:18.744Z", + "updatedAt": "2021-02-23T15:04:39.303Z", + "id": "47", + "name": "Contenful creds", + "data": "U2FsdGVkX19Oa7+0moJ8K9pm84xEsvnMq+zc9Wvh5ZHZIB6bJ/9CLxpCE1pwa8w2eg2k43nTs5FEjb2Ri2pgFQ+FZrvgePCvtY/boqrp8JYqCmMwD5okfSY3OzagWZZnbxxC/ed/gF+n+mUWN1HNq7ZRfjur96SQSK43480+OyFUt+YqLYROzuBiSsaETuIU8paej8P7cHtG0NxgAtxse/Wrl9CT8AgPH4OJrCl4xo0ACLhBt/0nDa/2pG+549wV", + "type": "contentfulApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.contentful", + "date": "2021-02-23T14:57:18.735Z" + } + ] + }, + { + "createdAt": "2021-02-23T15:24:48.023Z", + "updatedAt": "2021-02-23T15:24:48.023Z", + "id": "48", + "name": "Taiga Cloud creds", + "data": "U2FsdGVkX18d/4zkKxH6ykIKuyADGk0vKAbliDLg4C+OKu2X5qSx+36Jb5lsc6Nxde7a+WJgpbu4s4KzeKfrzoBpYUY0jfB1JR6jauJI6hY=", + "type": "taigaCloudApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.taiga", + "date": "2021-02-23T15:24:48.020Z" + } + ] + }, + { + "createdAt": "2021-02-23T16:07:57.472Z", + "updatedAt": "2021-02-23T16:07:57.472Z", + "id": "49", + "name": "Nasa creds", + "data": "U2FsdGVkX18vXNAT6KDSAsLy1u5aDAui5VO705Wr27SblEsXnQShsGKTzb+ljT1r7mOiApbC3r08KyxvKe10/PMtJpOCw3aajw61blf71bU=", + "type": "nasaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.nasa", + "date": "2021-02-23T16:07:57.467Z" + } + ] + }, + { + "createdAt": "2021-02-25T08:25:44.871Z", + "updatedAt": "2021-02-25T08:25:44.871Z", + "id": "51", + "name": "ProfitWell creds", + "data": "U2FsdGVkX19xPtSE9TRS0mwaAw63Y8Ju0Zku5f0k9VZhKq8IvtfrFYhpTbZmz/WLUK2PTjm4mzpyQzi2OS2T2gtGdI8ef+S/W8JCBAu7x8s=", + "type": "profitWellApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.profitWell", + "date": "2021-02-25T08:25:44.856Z" + } + ] + }, + { + "createdAt": "2021-02-25T08:45:54.414Z", + "updatedAt": "2021-02-25T08:45:54.414Z", + "id": "52", + "name": "Segment creds", + "data": "U2FsdGVkX1++XuRK0guHm8ScOP2VMjkmz4pPCxEcPl3mlLqrWB4DPntgrTKIWme2utlbMbIbCUttb4JXZmC6xw==", + "type": "segmentApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.segment", + "date": "2021-02-25T08:45:54.412Z" + } + ] + }, + { + "createdAt": "2021-02-25T09:20:29.624Z", + "updatedAt": "2021-02-25T09:20:29.624Z", + "id": "53", + "name": "Signal4 creds", + "data": "U2FsdGVkX1/ga0VQ/7JAfmu2l5dBandWEBmoRHj26J70hj2ZAaz80EfX23FtrdSX", + "type": "signl4Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.signl4", + "date": "2021-02-25T09:20:29.620Z" + } + ] + }, + { + "createdAt": "2021-02-25T09:33:08.283Z", + "updatedAt": "2021-02-25T09:33:08.283Z", + "id": "54", + "name": "Spontit creds", + "data": "U2FsdGVkX1+QF2n37wTEYca2sh443csUZOySmaVJKlkMmJI5l/WuQAosIp6svTJxIDiQUtfPgT1HoxjuGqE/gZxduaAukURLug1zFrPA2zDrzcNtDnH1vColOJB1Rlr3WpmpPxQUVtmlkFgmA/evrDlEsHs6y/aGXoi3oXaqVxD0icyEiK0sqnjkOjx2K15q3pdK3+MNlKfEhLSvtceRhg==", + "type": "spontitApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.spontit", + "date": "2021-02-25T09:33:08.272Z" + } + ] + }, + { + "createdAt": "2021-02-25T10:01:00.363Z", + "updatedAt": "2021-02-25T10:11:56.314Z", + "id": "55", + "name": "Storyblok Content creds", + "data": "U2FsdGVkX18fu+PWpyX8OvYaYQBsokeO9jd4uoD8sqT+cnX5iwyDSxw8VwsMRL9MXC1htLcVhC+XXvLtTLYKOw==", + "type": "storyblokContentApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.storyblok", + "date": "2021-02-25T10:01:00.359Z" + } + ] + }, + { + "createdAt": "2021-02-25T10:01:19.257Z", + "updatedAt": "2021-02-25T10:01:19.257Z", + "id": "56", + "name": "Storyblok Management creds", + "data": "U2FsdGVkX186K/kl8qU3zSAIcptPOb9d4IGpKgUXmsx1/dnUhzafZttH9h3rUdzfRgudxgEdY9UcxfjYffTsyg5mbCqf4NMOLKYV7qudCY+mjCKNQjpV4pAAK0lDpM23", + "type": "storyblokManagementApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.storyblok", + "date": "2021-02-25T10:01:19.255Z" + } + ] + }, + { + "createdAt": "2021-02-25T10:42:11.765Z", + "updatedAt": "2021-02-25T10:42:12.052Z", + "id": "57", + "name": "PhilipHue OAuth2 creds", + "data": "U2FsdGVkX1/vWmXJFCvnUqKOyIce09k5K/WSvdrV1BxhRnDCDZVEcEbDbwi32/AunLgkkddqtWAts9pqg1fZBwOAPaNQ0T7EFNpnvXQ0uAIORereTYIkVXWONhdzuMIr5jJp/vQ7psMoVPxYauC6KFDEx8oVbX0f4ceR7Ww5v65KKANAlNhAWwxKJvoqXpr0vwHTMPhr8GiQN4gIfortAA==", + "type": "philipsHueOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.philipsHue", + "date": "2021-02-25T10:42:11.763Z" + } + ] + }, + { + "createdAt": "2021-02-25T11:04:28.100Z", + "updatedAt": "2021-02-25T11:09:07.367Z", + "id": "58", + "name": "Twist OAuth2 creds", + "data": "U2FsdGVkX19Dt1p9mEJlmKSLsBtY4YbMStGyY+UewyQ1kQUM+Hnx9qLjnWsLc22uCouPgYhgXd6sHt7wxSuouQzayPaBQfrbWjPuFluXr7Tplux3lSyWmLWZ5yZ88kCDP48zvNCYLa+Dr4qZWWy5qbi5DPPz7Z7cSLEx8BrL49Lgz9fZLoTPl+6K5kfYLQ5qxSajVDBxdv6dPIja+6ArUFCwTI3nTWKRDA7R6LO2JhAoCPDLhEQhuaZ2J7zucdSizL7CD34lsLdH50zFQz4NTBLs5w3LwbSQxYgwdBk6gMNg5HyfbgqNHyBuHnyb8SzZ", + "type": "twistOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.twist", + "date": "2021-02-25T11:04:28.095Z" + } + ] + }, + { + "createdAt": "2021-02-25T12:41:33.347Z", + "updatedAt": "2021-02-25T12:41:33.347Z", + "id": "59", + "name": "CircleCI creds", + "data": "U2FsdGVkX1/x4tOSrog/+i5xBXwlqV2T8ZAAqY0cDMeYL9G95QM0RN84i5U1C+il4dRgPFh0k1zkWBgGrBdNsJyrlVkNXNcJq6cI3ivAMLc=", + "type": "circleCiApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.circleCi", + "date": "2021-02-25T12:41:33.344Z" + } + ] + }, + { + "createdAt": "2021-02-25T14:08:48.529Z", + "updatedAt": "2021-02-25T14:08:48.529Z", + "id": "60", + "name": "Zulip creds", + "data": "U2FsdGVkX191OlYH69pbOCK/txZZtMnZctoqURQu30ltWgpny4Q0xJtNteD2eRCFvQgsQBTlskJC22ipgeI/xENi2MOQoiOGiUco3Hotyi/uQBldZrg1wTJMzwb3nINcnK3Q4UQIGQW7NXnW9J4DGiMTgPBakigwdaGeBHXzchQ=", + "type": "zulipApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.zulip", + "date": "2021-02-25T14:08:48.524Z" + } + ] + }, + { + "createdAt": "2021-02-25T15:13:40.272Z", + "updatedAt": "2021-03-03T14:45:01.088Z", + "id": "61", + "name": "MessageBird creds", + "data": "U2FsdGVkX18e2o0tiR0oECP+m6eNJHWujdEU+tZ6ibwZBnDvQTSOckeI3ZeK/HQ97a+LC5ERFRmSRvAa0R8arg==", + "type": "messageBirdApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.messageBird", + "date": "2021-02-25T15:13:40.267Z" + } + ] + }, + { + "createdAt": "2021-02-25T15:24:52.504Z", + "updatedAt": "2023-03-06T15:34:18.897Z", + "id": "62", + "name": "YouTube OAuth2 creds", + "data": "U2FsdGVkX18BLcXn/cn8lY3HaZGBgLRH+56M/JKQHwvHzAOUGBL8hGIANmCZqvSRjMUsALuXUXXAESaOuWsZiFksBcMEH0TMu+7GY/xFSpW45d9nysAhPEY7BXWuQvSBQsOS7e/9lSd4XaECpsOyLKQ6hppdw11DRE1nzGPlmUMeH1kRPBhfseeHgSgMRz9Rb5kVK0BGbxy+DxWCXMzQUa+O6fL72SxXceOahBrs2dyNKpuPNvgGl4NZAKiqb7jCpfIfU/37/dEi64bZycVn8Hg4K8FQ/UzsruweOiequllv7xmg5sFXC4g/39H45dgzA64wz3vpFT7DWcg/izW1Y5Ik0CRHV9VEa1WmdtyMyozLijKv2gW/zfH6Yv4UMX2OEhTu1WmPCwy7wrihnp8UYY7f0XtU5JTs4HHA/Bmv6SF24vSd+oPOMWWUXKlthynKDLWTlxTcW//tLkPUnStnoCvjM/VhLMiCbNjrpgD0izF8vukmaomEtKHrA0zlWduF52/Evt2NXkEFA8V026HlfMTyI4OVj3PLjBC/dO2i68T+YPuhIyeNl+d3pF3ltpUX/Fd+DYWfEMUSdKr6W+2pXOCIgAze37Ipoi6T9hHU6QOKUYN1/g0q/QCw9zJ9kFgO+iy1zhAjXS73mF5FGyN96nd2Ws3avn2VnONhx5XwoNmdjEjvmVU5FqCrwlQ7iLboGKRpM8Q3e9pXU32Lt+SkECdLbcp5kkGlFzc3Yz0qQj9q4YbmA3aEXPK6SRmk3IRUsooKB8JNNfjsH3GqeGAxbUrKa99ys0f+Lu6fIonK+d0dVrHcFUlqQIkRHQqa9x7DQ9+9UIF4t2ZUC6zk5F9Ph/LyYjOt0Bc/WOCSTnNdUvcyMHypbBJ4rI/XxY3/loaXSIMN8xfpTXBLHfDQ2F+GxDHvo5ocqC4+lGfQAOkCY7ZmIQadzUjeCbIs0/STgN8+9vW5FmVziQ1TH0CE3Ss5mZXzv3BjG3mXw1xAj8bgd55lqC3wk0PvHYAiobBJncLBWyVzNwnnIGlLaPO7O7fIthrgFOD7bmqHw4OK7RBI95LVFnWHpDU64RzZ6q0MVr9xKKHfZvtEY8naN2JGDCPhxu1/57l6+GNK5iUy490wABmPYwqaZQ08vbF+oZ5YqDIJdLKr3wS1VoOaZGOEKc3Rm0+tTQS+qpFvjq9VvqasxhcwoTV62UpTi0nS0N4YvN9j9gxJ3ikwyDYbrBSEj4oqWuy/q/hxaobD5DKx7Gt5H5FbrrTJb24ss0I47pOHRc8GJN8uNW+hNdfE7An2ZPi0tOWW+3Jy+LHmMSLrcZWp9ATqDD7fMuoOSHh6s+0GlUSKPx/fm/BoCEPa7pb9RiI9vxHnunEeA4/LPic8joeBhbJvJZTJTpNmKdwnhO+feJ5522zNKpiHMJi+CPe/ucinePxgPuditIGKS3lcShJS3NhXAT5XuXBUoOTSzgrciCk4ni0t5moOPODpB0yygRsiKjm0mrW8U2tV9DNZ3AdynUxs7jrQZP7sKfK+Jwcf8AJnox7J5JKf/Nvwce+PoGqnJxpSuyc0bjsyqpvgE8/Gflq2jfS3hrk7RfakunIQO2Ha4HJUxCvyomSMORtpmvVxVtnYkKZtdOAE2DVzB3QMTvhmu18V/sBHo1/JqEhtqRbRIi4oby3bajizDZuN8jVZ0Sw1fa8z10qtVNjP/8uX9sSKB0gWwxr8tGvF/RMIPdiNS+ump/31pyAUCy4Kgu2UvL3NegOtJwN82en5djjfNmlABFquogy0YI/nkMct5nvIUntjzUpiThVTsPkzeLPZuEQrGaIuXasqMaY/Js1othF4YU81BCGA4ukTq5s93Nt8Pbse/d6xoZbeT1pTSBkAe9RNJc6G71zSg8cC81wDBMsy7TheONyyB4lq7063YqLCjwAehfh2mI5paxBnJRrY66PQwVZl34hZyMH/VeymdJCYVFgx9SyD2f7Na2znRj9VjGujtKnfVN27FpvUmG5EQWgFnWRXdPr3iouI0m/mqpqISCZE1WXtdUk14LFJqNATSs7mXgPDLL0h/T6t+2p1BI0PBS77ZhRjR3bXCSz/2b5Gyp6JzjYwM6tfSi4cio/S", + "type": "youTubeOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.youTube", + "date": "2021-02-25T15:24:52.500Z" + } + ] + }, + { + "createdAt": "2021-02-26T08:32:24.059Z", + "updatedAt": "2021-02-26T08:32:24.059Z", + "id": "63", + "name": "E-goi creds", + "data": "U2FsdGVkX18y61lqpGSJj/wPde7n8cmSBdIIsMhKVffEZkTWJBA+gx51ynKTbN87xJVmWx8UJ+R3gNMK9Y1FNwyS2E+zWCkIOIxBaBKDqZU=", + "type": "egoiApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.egoi", + "date": "2021-02-26T08:32:24.054Z" + } + ] + }, + { + "createdAt": "2021-02-26T09:23:34.436Z", + "updatedAt": "2021-10-28T10:14:20.661Z", + "id": "64", + "name": "Harvest OAuth2 creds", + "data": "U2FsdGVkX19gIX0riuNYg9DGQcyusKHiWMVDYF/m/T98QHVstw7+xWC0bhPLb8CNgM69x/Z3OHxsXHl+6194SSprAPUgEgEFMeIJdjVGHtToC3PveN6K4sAoM+qy9pPCJq8Zg73jHawpXx9fgW40Dn43W1NJo2fedj4wAJPap/z1OfU2CiqMr//0jAdufXzLPi+dWNKJIO3QgRzV34BrrKg0M/gyMz2kFp9xuc1HaRkevI0C64n2pWDMNB7jorh+pqsB+BKAd3gOtfP6+/R80BIxVk7Yk0XlfwyuKiVhuaKJQlyOjYI7mc9ByL3D4mk1laOQPwzgO8gWSNyVKj35Sgx4Plh4hC8AF1sR1rnvy5aI6zdilzOZLcHcPDR93x98tWER158GaaEHJ7M0KvYnF1eX+in4uAAlbr+LkaoMqYxUr+OFR3iE/78xV10V7ezJzhlgtE5ud2A2zr22qdHb5f0DO2l4ehXyyIvekOpxJ0oxkLEqjpmBzLkKv2uQ0lFSd1oA+7hS9yHZWsdNLymJwvUk2hlurHY2YhxXD8Q5Jk+iaQXxA3mK2+dmyVd2H9jVX3d8HC7xJgKD9gFOf6AErd1Q4Nk9eIRf0Y93XXOmAgUrSut5I8UehuGncM7gRZhUrEAnpqqMSnLxuDsTrREKnU8EW7vIOeMcSbTCu6JLQvE=", + "type": "harvestOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.harvest", + "date": "2021-02-26T09:23:34.434Z" + } + ] + }, + { + "createdAt": "2021-02-26T11:20:10.809Z", + "updatedAt": "2023-03-06T11:43:25.094Z", + "id": "65", + "name": "Google Translate OAuth2 creds", + "data": "U2FsdGVkX1+NStrrHlND40COBadvqGl+/zGrGN5O0iho6g5eF6kfrfS1jIKtYAVSazlByTmDhCnBta7+gPLf5xaDaea3EDBSf9AHZhVO9L+0VAgxPNyQ5oBQJO1ze+vVxpGoWoD8dtivUQ3lB3ZDT/zKvCbGKP00162j686w6fwZr7re9aMpALp7vt2/p+cy4y9bZQPSAefncZgJLv8qukSmady6SQHQWJKp0pOu/nAjmrhHwjfOEIYXQvvkVZ/F5Vp3m31n3kZxeuinCWqKtf28zrage4w4N2MEq3jLrOUa8IvaCqQJHOFHwSNdyqwiA6hZFCh8xhV0ij+OgIOUVGRLSYZ1PiSAVuzuLxSjP6uQ7UtIhCwNnwXmxD0dz7OjrzzVdX/jyDNuTlo9VioUqfZ24VdOV8tO09sBwQCKMb5N+4lYPcxiDZGdd1XEjOB43ZYJDnD1jUNtU0+j8gCAnp90ET7oR+XA9ademGyxsMK5y52IQRkcH6BNu++nLcWhVhiqoh4ShxCcyhOR/z6RLyREBwDuK+C6ZpiaprFFeVDKv0hCLsQgAIbrsJPpezF1GW46PIdvoG0gBWiWST7KuIl3jIhbKb0xy7BLhCqJan56zCWPoAnEQvIs8eeEiqG+BARgDham66ky24A+KfaRxQAT2ZO64wEmoYIkfNeAssxbVQ+aRiLrrgGuzzDzqV3tZXCbXAooSAGsny27oIFXMjtjfs7WB9TiEvVsbdLz0sMPhhIihJifmNy1FB1BWxq4v3pfzs4W7aYzByrswDyn/6jyKE7Pv9CDTQGTPWEsWvpenPagXZRfQJT+2NlAoZYsEExC3nkTaJUgm4UJq5ohkgu8f8CPVPjwvmTanOEnPRitmoBJjPPGM8VEvVrWIKgrVg4b8LvdjJLV6mRpU2xv3+j4P3KTlZ+Ir+/52l65X0A=", + "type": "googleTranslateOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleTranslate", + "date": "2021-02-26T11:20:10.808Z" + } + ] + }, + { + "createdAt": "2021-02-26T11:24:45.742Z", + "updatedAt": "2023-03-06T11:43:35.065Z", + "id": "66", + "name": "Google Analytics OAuth2 creds", + "data": "U2FsdGVkX1+F0sfl4kQM+wSoX+PvxCea26tz1KafoF3iRiF9ezfmEt4xuhBhArvCrEsNZLYabqHmcnbbRytU3SUyvWP7UYhWR707ltECvPxfhWyi4H5aFlWB3AExRKodiiwf9U011DTxOqtVkXez1a2AUXjOXl3W01hQyaHSxGYnLh+wqEWh1/LUogCSMi1eeG8zt2jkZAUgvrAcEI9mSlwHi0WNuPCCEPuFn0XQD1L2I/QuAbdqep3pPSwJJ4IUourtHdzxFRtCZQeS+g7ERogFpnTuNzzeXQOlSDRtCCe9zJiMxGNZmycxVKGO7YLAkGnPkMfmFW3v3JpQtAjvLOcATHzDxwQC9Gt2gWGlCBk50922jSzyOB5jQMLZNtjODUNQupQOK+QQVJHZHQzAhRlTydjDJl1ckua0aX+WEpvmuvK3u7m/pY0aY0YaE3wH+e+uMBmoGpZxJxuKbyz5XMNtyZr6RKNV1UeGz3alAmXRE+VENyzKy+6M7xJLfUcT3J6f3CqdBLDn0782FNPev+wIUwPi/pI1VnmZ/yqsFZiMojZffXe3291SjRMo0UeVNWRFeJp+wiTS9izSuUALI4FS/mpG08zh5sslNycKhlKXDVrNPtMYt764wbNLvdm+Hf2WxaEhYDfiYidOaboVGX8TK17yOpyV5s7DfeMZJi2qIPhoASbQUfyBnc5Xepefk8LzS26i8O5Ftgmddl7fJKje4eajv02Ta7J6Govui7U2PLamEsbsYes+y0DYQGZuR2xsZEpwwnzWq5qdi4xGOhrSqG68gpNm7L5XJk+hdewwgUjF8E8nZVShBL/rG29coSrT2PaHXjOqWidK8uoUQ6E7CufQ+1+p1wTD6ryO+FCId6KkmNjG8HK40dw5WHvPYRygRlukH3S3Zxmxk98n9JAnMKHFa0aVOLtrcMXfaCMsrXa6IPW4622pi4aj4B13NRS4JV+KtzIGEWr0QxbIxigSbqUB5pqatY2Tjm/kJEBBQ+xlCmx+n923pdTwvz1ilY/+8QC63SktbfUp5/GCBP5BQUc/1sZ+kd9Gxw5W/bc=", + "type": "googleAnalyticsOAuth2", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleAnalytics", + "date": "2021-02-26T11:24:45.739Z" + } + ] + }, + { + "createdAt": "2021-02-26T15:31:06.279Z", + "updatedAt": "2021-07-12T13:42:58.440Z", + "id": "67", + "name": "Zoho OAuth2 creds", + "data": "U2FsdGVkX1/PHbhszEfSZ7bN4MZZkmaNwKQoFZBG4pF7/ZHUFV0DoTUwqujK/2wOEDxe1FM04hPgOqyJPu+MKRp2c20X0EWVPNRtokD/1+HmqdXOOx6k4X+lbFkfQelI2dWWyprmvi40fwoMdGLUpu3HJc8o55G4q2dtMqPYrmtFHkaf4Op5uiYlayZqmsqJTPWxFPdhMKGpmjZTdNQQ/2qe8cv38+z7Ck8DB665LMHA+KwhlqYopcXxPIQ8i/0ClRPH8FKsOqbByty3BiNToSvI+8kk2H+RUlY1+oiNLgiM6SnlASbKSAv+P1iB+1RE5A0eSIDdjmAE3oPqT5RqGGVadj0+0kdb4lSyMxWum4nXNd7Oj5b4TkD6b2xAcSS5H5Z/4W89icxyMBH13jAi9OfLb9XxWLIikhw7fMv/6qyOIjpoujdwk1axpur2g9TQu4aslhVEvURJYlNxyzTjSz6IWwxybxUGMQp5VVuxTTGnizKcwQzeskQMYHDkSTa6jwREC7eZTR79/UBja0PghskLlk4fIGy2gXSR5YQ4xDNyk+RCiKX5/yN0j6/bmHriBmQRv4O8mEIgCww9QlCNcpoTCK9gPb64DcafH9nYSh24fZl/8dXsi++VGxBCePneIl3a1fHzzA+mr1tp6SKjV9dF8Vh3caodQtYjvTX8LPQNK7Gl5lvKWljTNuP9uxtglERZ7+8e61vWwLHecbY4OA4r9wD+b9DjVngkFtmcM6dN136+KbQ+5UKAapOIgr5NTFfOrQrUBdCEKAuUp00O3jTqLcWhjKhsMDsOrU/8kcfNmuAwMvNQGusmYzQid/+a6/DqmWLEvWWCflgkB6uftGUW4H5HVwmPL0Q7D9Ld+/JpLYxYvGuizAC3owViJJMNWxsJjQwcQDtvJvUnc4NhvkiAOOvURCzsXwj6CLCHnAGuQugSFwFJpBETuobDs55+zzl1/axiumMK5U49tNHtZnMTYm/Qsw9UNP8mWSsqzi4=", + "type": "zohoOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.zohoCrm", + "date": "2021-02-26T15:31:06.275Z" + } + ] + }, + { + "createdAt": "2021-02-26T16:08:41.778Z", + "updatedAt": "2021-04-13T10:26:31.116Z", + "id": "68", + "name": "Zendesk OAuth2 ", + "data": "U2FsdGVkX194FIYOkTkfh8YriL4a3jwoRvtU3bvvVuDSICwS0mODmmldCtKhXiwUugqRLtOWBNeqTfRIUcOnlzPjxU73pF08O06wfQnuTE5RcmG8PjXTnD9eBinn6IqdFf5BmdDzCWYdnhTtXzTUb2r20OCseIwe83PVoZetcSdrf+UYGGrNFkjPZpUMZHyCDUuHFzvJyHokSgOm8sqK9kp/1s/otFliiJJo+a6W6Jys5u4JDexjNuxi7YMErXuOSFdFP8ou9kJBop7MzMZnyEEVwU5FxAMLeQ4QYyTmMWy31UjJ32cnqZHxWH5eBe4ee2AfmT2ZUpOldQjDV2QOmswbjzz2H5IrLRWC1Xcpz9swMpPLdCa08CBzJHfKpMg2qW+BqaWVWmu4OgtuOu1DWuBGV8xrha3zIVgXbR+GZ3uQfEJHJELEDYKxr/TsbUyT", + "type": "zendeskOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.zendesk", + "date": "2021-02-26T16:08:41.766Z" + } + ] + }, + { + "createdAt": "2021-03-01T08:48:19.991Z", + "updatedAt": "2021-11-12T13:12:17.994Z", + "id": "69", + "name": "Microsoft Drive OAuth2 creds", + "data": "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", + "type": "microsoftOneDriveOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftOneDrive", + "date": "2021-03-01T08:48:19.988Z" + } + ] + }, + { + "createdAt": "2021-03-01T09:32:36.992Z", + "updatedAt": "2021-03-01T09:32:36.992Z", + "id": "70", + "name": "Phantombuster creds", + "data": "U2FsdGVkX19vXLwfVWRl0HwLwlCfclCynvIxMoUNSZ5L8PF8GEFUrAQZUE6n3/4Bd07jpO/StLJbCZhvtnVMOKtP3j4Tu41pGdt0hOGwJuA=", + "type": "phantombusterApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.phantombuster", + "date": "2021-03-01T09:32:36.988Z" + } + ] + }, + { + "createdAt": "2021-03-01T11:00:33.420Z", + "updatedAt": "2021-03-01T11:00:33.420Z", + "id": "71", + "name": "Matrix creds", + "data": "U2FsdGVkX1/P87NNIRrCvZ7Wek6+PRyZIdvjv3n9pBqODH8BSb3EisCyd9pxn8DFH5DDkysZmqmSX7LzcX9yUI7nsZO55qyoEhxfqlvHT+iMYMF5avnPNqSn9ixA4OpvcVkqzHWVKvJ5XLNfg/o82uPCIScr52Jqy3tWZBjPqsjxVUM87GXB5zPaGImV9wAuzJoa8yLB4dxleyBTT+O1ZPg77+Anp6cL56qfYlw0IehZrZcUd9XQMh2PrKkp68biuDM/wU70tNmNqUAP3s5M76c5IHK+wG++OikTqB2jL6Quw7eoRrdejWjqAgAcMpCW6X6KOEuvhSpixNeqfdGclnFS1ZcDQrwtJcW1x9RkE8q8LfuRl3GhwEMDYYy0giRM8tMFsbcB3wsSRx0gDKTHqA==", + "type": "matrixApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.matrix", + "date": "2021-03-01T11:00:33.381Z" + } + ] + }, + { + "createdAt": "2021-03-01T11:38:38.114Z", + "updatedAt": "2023-03-06T15:41:00.458Z", + "id": "72", + "name": "Microsoft Outlook OAuth2 creds", + "data": "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", + "type": "microsoftOutlookOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftOutlook", + "date": "2021-03-01T11:38:38.111Z" + } + ] + }, + { + "createdAt": "2021-03-01T11:55:26.940Z", + "updatedAt": "2021-11-12T13:12:36.858Z", + "id": "73", + "name": "Microsoft Excel OAuth2 creds", + "data": "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", + "type": "microsoftExcelOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftExcel", + "date": "2021-03-01T11:55:26.934Z" + } + ] + }, + { + "createdAt": "2021-03-02T10:00:46.756Z", + "updatedAt": "2021-10-27T11:06:21.565Z", + "id": "74", + "name": "LinkedIn OAuth2 creds", + "data": "U2FsdGVkX1+ckjPhFVeFIRl7aC+uDvlzUqHTpRqJss/ciWvEjMHTMnuASd9wOf2JK4lcHqZtWkxFiT+Rn2woUQ3M8guOiGlnkMzTPJdSluBgWbIK76NOCZdPHULW+trSnlx1KbZxyTU5cBwM1fnlip/5WC7ibQ6+Jx7mTAg6M8+CBetR8KosMPreN/KU6RofFoOS+2FX2T7kk91LZKhLC3HHbLEHXJytLrXZ95Hlw7P0ZYyULSRJEy9VTZkREZATiwtAEjtiGSnqeq84guQ0u/QnKirqn/9ux+id+nEzNfFfrRN45PNLcZv/2gGpFqhhufYZhRW601xTvuWCwgedUFj6X8hFrlY2bjs0cU/Ox+PMrFn3pMtiw6DpaeqyatpNvw7gCreIv9byDXDXJKJJNq+ogP31em40CK+VCNcyIOfCdctpJceTVRueD+8GdWKqGO+Bv2c8RmnnRbBgUJeNbTqkyM/bjAXDiIB5IxbQGshEHDBGV8v6Diif88HFXdkG5TwavL63GgxVQxfiW6y067lYbLH3YtSNSDzB4rFsxco0mRBUq4+xADexa9s5ejAtr+Gf31VMiITfu4pn2ppQ/urO5WmZte0DLpwC6C/nOvfZQc1WtbzWTgUWBR0dgSY8WYW2Rr/xBgB5MnmxRJkSS3Ryuzs9QCCacHiuFMbjoOlVyEWUZPbrMh4vSCp1Oqd9", + "type": "linkedInOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.linkedIn", + "date": "2021-03-02T10:00:46.750Z" + } + ] + }, + { + "createdAt": "2021-03-02T16:25:26.622Z", + "updatedAt": "2021-03-02T16:25:26.622Z", + "id": "75", + "name": "ActiveCampaign creds", + "data": "U2FsdGVkX18W+SLv7gUuy10NEDU3kkFR50l77CVagp7KlMOt/QPi4uNpb+HZH6iOBShJD4eAl7ZWqG8RaOLwbmgQ6rSCDp/Ejirxv6xOu5toQU+dcqBLBG8Xxb80XcH2iH83hADIinW+MzHBRoxyv1nLCAGbZ+WdFFLyjUdCbNYaCJ8OnUiDJ82z+fGzmWfPXtWAp7ZdsQgJkO1HRHqCBw==", + "type": "activeCampaignApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.activeCampaign", + "date": "2021-03-02T16:25:26.615Z" + } + ] + }, + { + "createdAt": "2021-03-03T09:00:16.838Z", + "updatedAt": "2021-03-03T09:01:02.915Z", + "id": "76", + "name": "S3 creds", + "data": "U2FsdGVkX18j6CZWeaGqrt9PWsivbWbhOdp+f+5AlePE6pNz5eiFOyAaN84/2BsUh35Bb7lptiiv4OAWbRUMNVMrrHz/gHOSmlW5k8Za0mNv+yzNQBVNPWTgM8FY2DJUWjIamFGfvXH9iy17SIqtPNejNmHMPw8gP3t60gWxlrYsDrjDkVFqbpRvm8eie3Fqin/mOctRhc5RtRBdrJBEz3bzAPEQjzaRHzG2LeU/kA5XMGTfUIFaKEZAxhNMz2Mz", + "type": "s3", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.s3", + "date": "2021-03-03T09:00:16.832Z" + } + ] + }, + { + "createdAt": "2021-03-04T13:43:11.683Z", + "updatedAt": "2021-10-28T11:30:17.299Z", + "id": "77", + "name": "Box OAuth2 creds", + "data": "U2FsdGVkX1+u04oWiTQml2xFo1N0bF+0LN6oa/QW3wRYm88OuvD1gWzSMrsqmt0ogyYRphaB6usFXB/JUsknrHtRZB/DWoo1WYtSREKsu6r/t27nWmE8PPUVkDY9z4cBHGU7wmrPEHMMHLdFreM8VVwNDMqVTIH0MKy9kurxMSbN/rqMI6KF/744KrJRhjK5AdXAu120V9VveO9sjmD1KN79GpZnSpcY4IIhqOgFacBa/rL64bURIxgnaN2HGit06gJmpp9Z6/oPBBu7ukLUhlgoUvOyojNS1tOkpjm0hg2ESLds1KTTc5hUtFQl4MS9EU+xBLitSagNhKgwaNuj84YnoBNyXdOPDgw7dL7Imllb9m+Ic9JNdr60b15RWn6U3MO4NLy6AUf2ITeLL1/UkBTkDcLZt3Owvp1yF/NXNv+1zlssdPFBQ5/1v+sTAZCy0K3jDpAigjYe2eH+1aOTVCqboRNF1KGmGapPVqAo4IJ+DGj/DaU3E6MslATb1shOrLDz3b3Ar4MXes2dk30GOob0mttZt7UcJPQke4ojqFIaC8IgtWgrwFGKzeqYBOWUS6Np1Qza5uvPuheQN4vetFu/9+p6esap4a5fL9BGpJztdJcKDyTFogGVtA33S2iZM5n8D6i5tDVZLZLbDEso5Q==", + "type": "boxOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.box", + "date": "2021-03-04T13:43:11.678Z" + } + ] + }, + { + "createdAt": "2021-03-09T08:12:18.169Z", + "updatedAt": "2021-03-09T08:12:59.310Z", + "id": "78", + "name": "Customer.io creds", + "data": "U2FsdGVkX18xYaYa1fih1Ak9xBxBEcc7kL9WyUBpTiFIlEfFwXG0c+Oy5po6HiAHLJdF1NcwjETTyDMaaQSOTtIW6cSgZVxWWvwQz66Wcynu21E2ZBdpWPpeXtkEcvrf48uTQNBEjew2VWi/gvAYAI7EsWPLnlbcKGSLR6MBjnXDjd2InyvRGKDvkqRgf8jAcbX2eRhJcJY7SXcekyikfA==", + "type": "customerIoApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.customerIo", + "date": "2021-03-09T08:12:18.164Z" + } + ] + }, + { + "createdAt": "2021-03-09T12:43:48.282Z", + "updatedAt": "2021-05-20T08:38:00.279Z", + "id": "79", + "name": "RabbitMQ creds", + "data": "U2FsdGVkX18AeAvLNz45uTV/AZuY9NhFbt2nj1Xgk0Qo6KqJpGfSPOeqTUmwih28kpkqUrYEBwOD/fFZMHhkOy+Hx2VsniZu6VZ6q1XeO4nDkpn85iBFQii2Fgj4QZ6ElTAwuRZ2EZbmLvih0ZGM2g==", + "type": "rabbitmq", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.rabbitmq", + "date": "2021-03-09T12:43:48.274Z" + } + ] + }, + { + "createdAt": "2021-03-09T14:20:45.836Z", + "updatedAt": "2021-05-20T12:02:32.803Z", + "id": "80", + "name": "AMQP creds", + "data": "U2FsdGVkX19X9RUEWDKX9xPj1oZtR55IpUt0jGMm1N/3ofT2fNyP0bb29pLMvx8flJpNEqaxEPilLwHJWgdtAgoZLdXqxwRUtGhURtPlzY5tk9uCn3k6RUrWou8vIOO0h92C9Rjj9ECaOMfztk79/pPk+0YtMov3oVbto6BZUU8=", + "type": "amqp", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.amqp", + "date": "2021-03-09T14:20:45.830Z" + } + ] + }, + { + "createdAt": "2021-03-10T08:50:52.438Z", + "updatedAt": "2021-03-10T08:50:52.438Z", + "id": "81", + "name": "Cockpit API creds", + "data": "U2FsdGVkX18Wg9sOJHfAFVYeyoufC6+kq89NGn6OwGGGlLx+i1vaJWKOYdU84dPMwYUH+N3Ka+wjslx6VYFqzGSLIRWSe0+R/p+d3NTCJcare7+ohHTbBFh+60v9TXpBi9OcyilhMRUSiXemrxyuYw==", + "type": "cockpitApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.cockpit", + "date": "2021-03-10T08:50:52.429Z" + } + ] + }, + { + "createdAt": "2021-03-10T10:24:16.085Z", + "updatedAt": "2021-03-10T10:24:16.085Z", + "id": "82", + "name": "Ghost Content creds", + "data": "U2FsdGVkX1+TNAOLTVdPh0YRViINswv5hzwB+4UvCSKdk4h9rcquyMrOtsHBbQhW1EY8w6A/j2I8/bSkIuL50TlHa5o1aYMY55JM9oVmdO+vIMjVoPxS2oGu+wuj+4DU", + "type": "ghostContentApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.ghost", + "date": "2021-03-10T10:24:16.082Z" + } + ] + }, + { + "createdAt": "2021-03-10T10:24:40.932Z", + "updatedAt": "2021-03-10T10:26:51.110Z", + "id": "83", + "name": "Ghost Admin api creds", + "data": "U2FsdGVkX1+SRpIFNtzzfGZwnTmykQFg+c12uMUCPuPzR7WQBrKq1wIctFb5XuQEG9eAZW4KmYFjbyfcFDXrHVHa10mDafeIVneNL7aCB5t0fhTGPtWJZetmJdeAZSjmcjO6WNLOCRDaa77GYR8FaRqhytUByOFtQq5+QXN32zBtCnSQi/WxodKICCbvh5c4VQvZeKt7zFf5uJnqXLC5Hw==", + "type": "ghostAdminApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.ghost", + "date": "2021-03-10T10:24:40.930Z" + } + ] + }, + { + "createdAt": "2021-03-10T11:06:38.526Z", + "updatedAt": "2021-04-13T16:46:11.783Z", + "id": "84", + "name": "Gotify API creds", + "data": "U2FsdGVkX18xgudNECIJK0mBFNJLvzrF+BsvkEc6IS49CAlCSF9fOzuX7uEQAT0X5SbhXQrmifGw2W35rGolz2srrAmTTlK1ihXw9rXzXevNmjLRvywHkubMUiqFLx0aQbhKUzUyDZPkAM8dV7/0rA74tkMtL7MpmaSz5bHuU7Y=", + "type": "gotifyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.gotify", + "date": "2021-03-10T11:06:38.521Z" + } + ] + }, + { + "createdAt": "2021-03-10T11:22:50.635Z", + "updatedAt": "2021-03-10T13:29:20.727Z", + "id": "85", + "name": "Redis creds", + "data": "U2FsdGVkX1/eorJ+2PBnpfL7fZovMHUkv2I+nk3rgzDFy39kZhQlqAUbflN1ZdmIBmzZxQeM/XBSFxSk4G6A0jktorg01xhoZbOKAh1/h98=", + "type": "redis", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.redis", + "date": "2021-03-10T11:22:50.632Z" + } + ] + }, + { + "createdAt": "2021-03-10T14:59:28.371Z", + "updatedAt": "2021-05-20T11:33:59.423Z", + "id": "86", + "name": "CrateDB creds", + "data": "U2FsdGVkX1/FqmItC7w2FpP48G1Y/N+HEfvxdUeP6MTzjt3aO8EwtdJAdHZ0lBb4XXHv2Tvj9JiIwSDcDx1XSlPr3M2omC6tPA7+Ssmy8tb07DnUBxoA+pAYNW2jzDqcVRO8Q7GH/8Na0xukhU/KGQ==", + "type": "crateDb", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.crateDb", + "date": "2021-03-10T14:59:28.364Z" + } + ] + }, + { + "createdAt": "2021-03-10T15:27:31.299Z", + "updatedAt": "2021-03-10T15:27:31.299Z", + "id": "87", + "name": "MySQL creds", + "data": "U2FsdGVkX1/S61GLvMW0XIJTyLvo1e1S7EvgzbOGiFek524hwrf/0/9UGj/hSYLV4dZeCOWWJaVzBJHUH6UxaqoEknCElhrh+RGWV9X84sT65Z+ZsOLCEqB4XmTn20I1OJggjnL9FC/owalBUQ5zBg==", + "type": "mySql", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mySql", + "date": "2021-03-10T15:27:31.296Z" + } + ] + }, + { + "createdAt": "2021-03-10T16:14:50.455Z", + "updatedAt": "2021-03-10T16:27:08.802Z", + "id": "88", + "name": "Mautic API creds", + "data": "U2FsdGVkX18UfkxcMVMnyvulFh5v4MsHRBsbbQsB4MkkXXZMgjNNY2Z1yunbFWCzVUVcM7/7CVlTf3oRYbKw4siibl6lk0rwZuviddJinIlUw1UGAVAS/8pcQ9csUGxJlIU37EmvObSthOPlfDlDrQ==", + "type": "mauticApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mautic", + "date": "2021-03-10T16:14:50.450Z" + } + ] + }, + { + "createdAt": "2021-03-10T16:29:41.836Z", + "updatedAt": "2021-10-28T11:30:20.484Z", + "id": "89", + "name": "Mautic OAuth2 API creds", + "data": "U2FsdGVkX19dCfGo1uCKZje/1GRIdUxNmI3o5u+rE2xiejb9rSIE01A0kacwN5utBwgL/MLZvOfvHyioKuaqZ3RKnTg6JaKL9tEK7hdhr6HK9kuubqdoksfcjnP/bmKLJhwB52vSCCx8n3DEpb+09cYJI3tT5uRnl0BuAje8pYIYQd7nmM0hAQe/rgbcQLBvaI+IYIPodPMUxrVpXizxSoVC6N0SRRjC98jEH0xVdwvKmYkHMTrFJCUlL1qN5PJ9NI4fjFz+PdrOSCel/6C7f+8goMq8EqM/Q5RR1NdFN/sa/ta1nv/3ivSNQkI3NJSv8wjxlKPmAlp+dmbiz3e7hC4C9N7AOL7Ug7gerf7XEN2dDQgRjZBKaNm4aqjuMOIDnF2gkQe8qi//m/YSI7U0c006gIkxTnDgKPUKjilCcjtpGo9KkvoRX//cvrwlvYRqRc95hLkzaT75LljQqmIWgi1L3vufhsKQbDnwue2WFCR+DfoGY75/6HHifnD8U1Zctgx6962MUtJxjs5X4pwAlvEn7QuB/N/fiqW9OC4ePMGb+tCsWieN2S77nhiCr9tAVRhn0q2OYe2dg+4kz8OlN+7WRKTLjQfzUTJAjs38/QaxHxCTgPy63Rw9Mde4wF4D9x+fndaoxXJxKk5yxVidvuO8mwyIDwbwxJyqR4mKo4nohQ4MOR74t3dDs0315jqjAShBTytUiSnzD1nfmIPSOoEenMuzUMTPW1m4Z2RRnsVVjAKALlCP7I8xiJZoFwO+XC7Vzu/HQUZ1m25yPtY3lg5Qcl9FqmogdvNTjckw8JKRSGw2f8b0Kf0kO77Hbl6fDSgJkSDbn69anbJF1jraXc5azT+yqL2MNb+QeM8/1LE=", + "type": "mauticOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mautic", + "date": "2021-03-10T16:29:41.832Z" + } + ] + }, + { + "createdAt": "2021-03-11T09:10:39.937Z", + "updatedAt": "2021-03-12T11:30:31.155Z", + "id": "90", + "name": "MongoDB creds", + "data": "U2FsdGVkX19VdDhEFhUCeW1BZk7DkUFX6zvlRNRhxoY9puM/2xlvJt2EIu+np9RsNvpq9VrsBhi8ap1sC0uiSN6GQeDCnCCN8/IvlSlwWuiPDai0lzQ7eRLaRDAfhbx40FAQfK1KLW+bbVddeQVYvQ==", + "type": "mongoDb", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mongoDb", + "date": "2021-03-11T09:10:39.932Z" + } + ] + }, + { + "createdAt": "2021-03-11T12:08:10.123Z", + "updatedAt": "2021-03-11T12:08:10.123Z", + "id": "91", + "name": "QuestDB creds", + "data": "U2FsdGVkX1/N9OGwXIhnHPyDyqK6Y5ajkxZd1MlEBVJmdb+FZ9eheHQ+Cmi3/VC0sGW/aKRXEduxqA+Nh5ZMHIGJyK8kNej1yj7BD7BVHXwOHBzFgHLObH78pncsJc2f", + "type": "questDb", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.questDb", + "date": "2021-03-11T12:08:10.116Z" + } + ] + }, + { + "createdAt": "2021-03-11T13:11:20.456Z", + "updatedAt": "2021-03-11T13:21:28.295Z", + "id": "92", + "name": "Postgres creds", + "data": "U2FsdGVkX1+R4Frm5szecbkG6nOk91uePHlHRSowvgnUi7jxpTYoS/2gAMD2iBVatEzm+vrehhv5MQ9BbbtVJvsP7FyH53eZaLe+Y4CaisflkDWG3o2C5fcXlLSScKyP", + "type": "postgres", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.postgres", + "date": "2021-03-11T13:11:20.453Z" + } + ] + }, + { + "createdAt": "2021-03-11T13:59:22.856Z", + "updatedAt": "2021-03-18T10:26:59.786Z", + "id": "93", + "name": "Kafka creds", + "data": "U2FsdGVkX1+rWU9thAgHLGdI2UgdcVfSGCSAQkYRb9LWs6ASmyQcg0rNn9FL8+hZHffroK/VRVLrDqAuCRZKsDiUGDCGo9RZN5bi9qkVmxnzbLbDWhfhTCheBM4TEuITypYyHUnwwka56YjBgmdpjP7zEhDUKW9o6wsp0np3I7nZdlsllVEVrRNpb7d7C76DMJ9wNi+7C2Nr8cSywNKwuA==", + "type": "kafka", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.kafka", + "date": "2021-03-11T13:59:22.853Z" + } + ] + }, + { + "createdAt": "2021-03-11T15:11:08.706Z", + "updatedAt": "2021-10-28T10:25:18.167Z", + "id": "94", + "name": "Rundeck API creds", + "data": "U2FsdGVkX19MoytoZIpT2F4JLX+owySDLMvAiLJmLeiqGf2lxJ8jcBHvH789doN4L2+kJbc4fHur7DiknckfSYC9TCwk2dpe8y5MiI8/7v6JbInpy99IQ4xns5kIwg5y", + "type": "rundeckApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.rundeck", + "date": "2021-03-11T15:11:08.704Z" + } + ] + }, + { + "createdAt": "2021-03-11T17:17:14.643Z", + "updatedAt": "2021-03-11T17:18:39.467Z", + "id": "95", + "name": "Yourls API creds", + "data": "U2FsdGVkX1/YuUuye5uQXe3GNUqXhPtgJ4D7B8QBoFEt5lSLIMah+CtSBAhXgmcrXQDKfcDxz6WPifZOoWKigiuzbAROEcB637teGe8XLC8=", + "type": "yourlsApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.yourls", + "date": "2021-03-11T17:17:14.638Z" + } + ] + }, + { + "createdAt": "2021-03-12T09:09:03.077Z", + "updatedAt": "2021-10-28T11:30:24.515Z", + "id": "96", + "name": "NextCloud OAuth2 API creds", + "data": "U2FsdGVkX19QtT3IYsYHzTBMEyC2ptpKQ2BFukqLGXFDjyJHbyTq3yh8y1bIsosRedrvfCQuRWyG/yUFIv1dV63oZbLiWVcgtgypcpVyypXmvqrDpKMVbQlWCAPOumcfvJzOR/Nb+oFSu9O2TAonJNSUrRn254IaRSpylB+vJClRIyi4ycAv91W3JwfGAnS7N4EFOqbpjONN4K4rmx06XSxMgfUytE6XMBfj4URYsPkG181edV9c89hX2rkKpBU0YCWECEAzgO3m7cQlsXwxoALjUAoPgtwk6iq3LOIr1Ko06V7TNaexxCEWBszvGos033Eo/nTp06sJk4eJXzY/CkJLdtSWbFo23+MGcvrcFitaeooPAHvYQiRzvTyRIAP+6Zs8GswgjT2f/HhicK/X3Pwp+S39vjg1DcSbElVdd5mVaWTPaWdbI8M6GQ6TrrpBHwDQqlMK5uW47RFAFAVwbRby//ijhz95p2wqaieRRFJjNsn1ejleSdsw8UzEWP/Pwz221wgUryi0xTiye+4+3LINfBtJoLUTNOw9wgR5vOUYVOXl6mgYWp/hBdVdKeX2e68v+87qZR0anXuEFGCsdzdP9Roz9XnumKp4AxoxE+ZP9t11WiLp05DUxf8sVZ8tVeA5kYx2Xem1fpgRJi+zsA6wWxVp05w77heihZOBrWrPx7cHf7ozMRDn5gDgCphy7V3eM8sk1eRP+VbHA9fg+X2QObGTs4bFIc4h9KVj2aLHA4hLlflQp7ZEkGxZ4M5Ro8UyGwfqh2+rZJF/KwDG8DszlUb0E3HHtJTKqzw0EkS8LvuZF/LP86sbHg4gBDi2+r+FUiC2U2AytSkc2P/r1Flca/bLov4fNgpaPLCQCcbCRnL6vQCK9JcG6pGE72V0u6bhMEk29ugECqep0cYZXRbKD/mRMbpQz6JpmE07Cw6fmFbJnyzk9XaUOonHoZY3W+LrKL1v54JnfOLiarnXztG9eTZCofDrpBnsI37jhjM=", + "type": "nextCloudOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.nextCloud", + "date": "2021-03-12T09:09:03.070Z" + } + ] + }, + { + "createdAt": "2021-03-12T11:40:01.879Z", + "updatedAt": "2023-02-20T11:04:47.455Z", + "id": "97", + "name": "Wekan API creds", + "data": "U2FsdGVkX1/Qia18DYmlRSucqmePYvwmX4Z8WJDbQSCLZZZhjNE+e432Y96+of/LqxeHRKDK36YUvkOT4Zyvoxt8zwYk5gnXYEhA8VM4jpnmYLlEXvP2coH7+79beTQnFtSiblt9DY6kiQ9sZCPkHxlWpVVTwLiodlZ6M5mGlF3ibRAyfziFR8CQ6+HX3a6ESeZiS8XpAVvuIvIxttgFPQ==", + "type": "wekanApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.wekan", + "date": "2021-03-12T11:40:01.876Z" + } + ] + }, + { + "createdAt": "2021-03-12T13:11:46.131Z", + "updatedAt": "2021-03-25T15:23:50.434Z", + "id": "98", + "name": "Microsoft SQL", + "data": "U2FsdGVkX18OjvLpm+sUCUJogb+mrx4B1Fhu9ILn9v3eOFS6L1hW8b05Ocp2PMM181JqNeyuuU0LZ29domoAwZ08IrBSknLtPy4CfNvfRgs=", + "type": "microsoftSql", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftSql", + "date": "2021-03-12T13:11:46.129Z" + } + ] + }, + { + "createdAt": "2021-03-12T15:28:11.857Z", + "updatedAt": "2021-03-12T15:28:24.902Z", + "id": "99", + "name": "Line Notify OAuth2 API", + "data": "U2FsdGVkX1+xSNwjOdBqBUIXSvai4AJ/B0Xilj0ktq/QoH6TWBiztIDKcV7aYMdQRy8T81/7BQgyeRKecyXKRZOsxhNi1wN+RYqJYb8w/izJ8yKKWDgckR44RCmGnlh/hjW+sRaKxpP0uqe2GChrtTHcTSOOzyHCGe97mZNksHL8hwO0Xj2s7kK4M2P3vISgigQnZpQi07N1kRFVVJFEV56egA1KDzcQW2zFFAXZdd5CGt9b0rqD0dXuVe/Ma1Nd4tYwvbLcCkQUdBE11HwmJlNQVINqjIhog4L7yGofqE5Ye7uFYE+uM338dTD0GR1eujDhJV1WfaH5BBPrDUhg9A==", + "type": "lineNotifyOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.line", + "date": "2021-03-12T15:28:11.855Z" + } + ] + }, + { + "createdAt": "2021-03-12T15:50:41.447Z", + "updatedAt": "2021-03-12T15:50:41.447Z", + "id": "100", + "name": "Mandrill API creds", + "data": "U2FsdGVkX18wwkOLFQswsvPfxPV7EGPE8rz2BVZRmhiy5p0rj4/q8v+Pq/J+UA4JpHgpTwQSFoLJcxnbtCFHjQ==", + "type": "mandrillApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mandrill", + "date": "2021-03-12T15:50:41.446Z" + } + ] + }, + { + "createdAt": "2021-03-15T08:07:51.815Z", + "updatedAt": "2021-03-15T08:07:51.815Z", + "id": "101", + "name": "Twilio API creds", + "data": "U2FsdGVkX1/Hm6KToJ4wYYYp1RPiXzQnl8H7C6VGFTMLgjlg8bsI+Z3qKsZb6XmbNxsN8pZtxSk08819FDDERmVJtGDteE3PUbrSwX9ZBvted/SF93KyL0PrCtIxRtOeHd5tquC8QMVHy2HlTl1/KDCVZwG0zCK1cJnaACH0FOs=", + "type": "twilioApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.twilio", + "date": "2021-03-15T08:07:51.810Z" + } + ] + }, + { + "createdAt": "2021-03-15T08:50:20.567Z", + "updatedAt": "2021-03-15T08:50:20.567Z", + "id": "102", + "name": "Travis API", + "data": "U2FsdGVkX197DT7QsA2ASxrFzL+fJxEil+VzyuZvlZrQzTP+vzquYU/h6m80jBYrfXHyvGc74cxzdHjX/LZ7LQ==", + "type": "travisCiApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.travisCi", + "date": "2021-03-15T08:50:20.565Z" + } + ] + }, + { + "createdAt": "2021-03-15T10:40:08.581Z", + "updatedAt": "2021-05-10T10:08:44.134Z", + "id": "103", + "name": "Cortex API creds", + "data": "U2FsdGVkX1+BOc0IlJwZnb73ie9l4VzT0h52Urrsf6r09AMleCIsQNdCH+7hmC4hAM2AKbgcLPjPGwxTN7hMRWwlTKi7nh7BinHXheGeJtp91MKse93YE+VH3Rvp6JJ/plIDmiJTp1FoQFNPPDqbPw==", + "type": "cortexApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.cortex", + "date": "2021-03-15T10:40:08.579Z" + } + ] + }, + { + "createdAt": "2021-03-15T11:34:15.209Z", + "updatedAt": "2021-03-15T11:34:49.148Z", + "id": "104", + "name": "Pushbullet OAuth2 API creds", + "data": "U2FsdGVkX1/acNZEycwY2oYwzm/qKfppF3HlTQy/vC5TI7QDcPkrAvzzINbzJ866e0VmMz9ZHhNXV6ZAxm3Ofs7fa+xTRbyfsfjHApBvN0B/VcYPKnH6WRQ3rv9quVw9UBS8HJdS3M+HVYf/VvrKNVwhm0ebTuF3SJr+9/zHrey23gZuKsQNcw24jaYDGSYiJ64eLg+rsUh93QoMDOq8mmgiHb9z0KDudTKlB728rHPo1ELA/k+F6z6F4p+j839rAl+wsfLVmM5Z1MCiEyBkAw==", + "type": "pushbulletOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pushbullet", + "date": "2021-03-15T11:34:15.208Z" + } + ] + }, + { + "createdAt": "2021-03-15T13:09:48.087Z", + "updatedAt": "2021-05-25T14:27:49.598Z", + "id": "105", + "name": "Twitter OAuth API creds", + "data": "U2FsdGVkX18riumSapB5XXGF1EBh0TEEEVdxGzpWWM/KLB2RxO6eop1nQKUIcdF/tR92J9faZGVQa6vHsbpKdvBgK7AtceZlR+t3obChNOEhz3IdPnLuwDl4uDDCjmb8FN4TP7DgHV97MHdFf0okHw/Ds5pJheSkeL0OuXSc/1fa59vHan7pn11KZGtgwtIU", + "type": "twitterOAuth1Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.twitter", + "date": "2021-03-15T13:09:48.084Z" + } + ] + }, + { + "createdAt": "2021-03-15T13:50:05.544Z", + "updatedAt": "2021-03-15T13:50:05.544Z", + "id": "106", + "name": "FTP creds", + "data": "U2FsdGVkX19yEAmrQHFBDGmRxp+WnSpl/QjsGjk+TtgU4xYhPuOMkP0L9vQhT88LHML81VWXAEWg/KTV969Ndw==", + "type": "ftp", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.ftp", + "date": "2021-03-15T13:50:05.540Z" + } + ] + }, + { + "createdAt": "2021-03-16T15:12:24.122Z", + "updatedAt": "2021-05-21T09:17:05.551Z", + "id": "107", + "name": "The Hive API creds", + "data": "U2FsdGVkX1+sq7FgjnLT7wscZcPeewSYPCGmLSNFCHl5ARoZ4AhDoX+pJBdeZq5Wjt6ys2RYz2IArqslrrzpiUEtyVBA2jONuoID/rqAbpjkg7DQE/vPIGoddzk1cbe+Hij4Q2LgIdyi8vimHRYw1w==", + "type": "theHiveApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.theHive", + "date": "2021-03-16T15:12:24.117Z" + } + ] + }, + { + "createdAt": "2021-03-16T16:55:54.217Z", + "updatedAt": "2021-05-19T14:12:02.316Z", + "id": "108", + "name": "The Hive API creds (v1)", + "data": "U2FsdGVkX19jCmj6rCN79nEROh6h7iIjy6b+p4stO/NGN5SZJruViMOIVpTC2UBpbEbp0lpmurHRWHa0t7lhFQN0YNksUCa1Dvdq2gg0L+lUKZR2gX/uXEO2TkkmAht/siUB5DrwetudoSY1n5eNNbu2/5LCGME8H5oT0wh+5V4=", + "type": "theHiveApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.theHive", + "date": "2021-03-16T16:55:54.214Z" + } + ] + }, + { + "createdAt": "2021-03-19T09:08:45.915Z", + "updatedAt": "2021-03-19T09:08:45.915Z", + "id": "109", + "name": "Shopify API creds", + "data": "U2FsdGVkX18BbV4+zI7uK/CPIyEYKsbC2sfNU6LxGjBLFbQ2e0MpunF4VAfH+iCZ8uZEN0TJN0kQl54YWaSnADzhRpgbG9GKTvF6kz57XVACRtVW39StOmUhPTeZFCe8BOd1x7xXEsdtCKYfQmm4PyIiA7v3DfKRJWLJfDGaUYfKGXcDIvjN6e2INRhKMhecJM4QzJGCR5dgNGIt3+x4z2he3eXOZ47B1DpGfch53ojSDMNbbPVt4ErKWtpt2SDiN+Fa2QHQGOL6MMAMp9wGUA==", + "type": "shopifyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.shopify", + "date": "2021-03-19T09:08:45.910Z" + } + ] + }, + { + "createdAt": "2021-03-19T14:22:44.070Z", + "updatedAt": "2021-05-04T14:31:32.039Z", + "id": "110", + "name": "Microsoft Teams OAuth2 API creds", + "data": "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", + "type": "microsoftTeamsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftTeams", + "date": "2021-03-19T14:22:44.063Z" + } + ] + }, + { + "createdAt": "2021-03-19T18:17:05.697Z", + "updatedAt": "2021-03-26T13:23:15.730Z", + "id": "111", + "name": "Microsoft Teams OAuth2 1er account", + "data": "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", + "type": "microsoftTeamsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftTeams", + "date": "2021-03-19T18:17:05.692Z" + } + ] + }, + { + "createdAt": "2021-03-22T08:12:15.509Z", + "updatedAt": "2021-03-22T08:12:15.509Z", + "id": "112", + "name": "Orbit API creds", + "data": "U2FsdGVkX1/o7TfYGI4nCUKryXGq7lhyDEjT2FntS9xynzLCAikqxFA3p6Qt/w4TtDKB/0sqdtX43Ie2FSrW8A==", + "type": "orbitApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.orbit", + "date": "2021-03-22T08:12:15.501Z" + } + ] + }, + { + "createdAt": "2021-03-22T09:46:41.540Z", + "updatedAt": "2021-03-22T09:46:41.540Z", + "id": "113", + "name": "Monday.com API creds", + "data": "U2FsdGVkX1/RKU3VMsGxVQ92hJHN35dpJmqaGx6FHA/Q1ffPvjPJ4aLYcU1pJQ1ZxqFOS8g5rg+A6dPC5glz0g7FVBNAz1+Lz6CAWDLs/AJ7CnZEbQNg1E28pZXhEsTEVmvjtYijeTqZ3d798xrWLIbVVNUTe/NkWLaqMh3NA8t+qA1vdQRxdk9EQjIkVcFeMElCtTIV4KGW+rgJUxk+q3fqPcOziIg5UJUB3OL1ZuHqYjGb+fRJJ8NKsTbLC/zEhecmBYKx0e62pveWMlAKSrajkLzBMvzI34RYvLkGSVX7veFtdOQjYF/ket9gDEKcfduWzZE29K4BKhZVHJZQQw==", + "type": "mondayComApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mondayCom", + "date": "2021-03-22T09:46:41.538Z" + } + ] + }, + { + "createdAt": "2021-03-22T11:00:22.706Z", + "updatedAt": "2021-03-22T11:01:17.224Z", + "id": "114", + "name": "Clearbit API creds", + "data": "U2FsdGVkX18jQUzG/vWBSBLNWCv0XRtGjyoWCC1R9qAtgjcOKXrqXJfS1gjE3y5bT7F+7yoNd0Z/wO0+R/Grwg83EaqgmzKcmWHMEg8JpQY=", + "type": "clearbitApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.clearbit", + "date": "2021-03-22T11:00:22.704Z" + } + ] + }, + { + "createdAt": "2021-03-23T16:27:04.016Z", + "updatedAt": "2021-03-23T16:27:04.016Z", + "id": "115", + "name": "APITemplate.io API creds", + "data": "U2FsdGVkX1/T+TNJGO/e30THF/oTXD49Z8O3DqAyoTgkqXESzPpgtKWF8O+A38S+3nFWEnqitAui/Kg1XmGJhTfnDEOj4RJAuGc4cKa7XIU=", + "type": "apiTemplateIoApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.apiTemplateIo", + "date": "2021-03-23T16:27:04.008Z" + } + ] + }, + { + "createdAt": "2021-03-23T16:56:37.485Z", + "updatedAt": "2021-03-23T16:56:37.485Z", + "id": "116", + "name": "Peekalink API", + "data": "U2FsdGVkX1+amqKPT+su6WEQcvcNEN4JG8G5+//6gX/YU1+jf5CK/TeYa587Ic/R+qDJhrUSFDLFd+I9JlKvYUzFUWWYZel36akQnn2qrHQ=", + "type": "peekalinkApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.peekalink", + "date": "2021-03-23T16:56:37.482Z" + } + ] + }, + { + "createdAt": "2021-03-23T17:16:51.390Z", + "updatedAt": "2021-03-23T17:19:41.777Z", + "id": "117", + "name": "TimescaleDB creds", + "data": "U2FsdGVkX1/OG4Ms0I7b2c+6p5RfwLpDZfWBSe84eAlrmtuhog0SpjsaeZaLyDwN802lxA/6TRpGnF4v43rOUfxHAKYnloI7LiMgLdVJS7UNMBiYi22P71O46+UagWW+", + "type": "timescaleDb", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.timescaleDb", + "date": "2021-03-23T17:16:51.386Z" + } + ] + }, + { + "createdAt": "2021-03-24T08:41:57.197Z", + "updatedAt": "2023-03-06T11:47:25.441Z", + "id": "118", + "name": "Raindrop OAuth2 API creds", + "data": "U2FsdGVkX1/trFrXaFPYfQbSJPjaXjVpd4UVIUEzxmaXTiZ67ecDLPrnD3nVms3bvjo8KUPYYpHZP+21uZarECDahaMC+DFrH4JkjUsHDDdqtzhmfLJDhDdseJm9GCVdyU1JoljnI991rZyXpgggOic7SSxENP6fWpah7rdwjoFLPxoPE02fyLCuDJk/XZ/2t9/PZc39SY+ssBJXX501TKdL2014tYQbpSvbzJG3HWVqF01XSQjj31g8RS5TmcRoQfCnk2YX1ug6BNZpELpBXpEcPNoZTz0FP7vE4T6IxRz6jk8+ZXHplCMdwiJ5ZYY4q5Sak87pC8xNvLpixBh0Zpz4/3H7FWP9FnwUqLkNlRdgb09OQ9ftVZQEwvKeldjmvbmFA3YECHAsvqqmywiTTjWY/HRKunW2F0U4YzZb0U0ONVhIhQEfKImIwyoGjzRwElqor+/9gFPoDEGCVmYvzHLpCBXDeaW6EunsktSV8oBVQmty7zZBmas1n7sxM+LpNGP86qeKKuklUkn0slAYl8BCxJSiowfQLDeYCF/qa77oha5cu64ES7OwcbP+DDV3JdFU+OG4xEX3OKBYALPU6LnZW3tboIFjvHBB1pJY7j1RlOEXei/G7mRyxxkyZcoBXg8so/7gb4ybqfg2+qnTkxboQydBIMSB0V6xtwizkws=", + "type": "raindropOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.raindrop", + "date": "2021-03-24T08:41:57.191Z" + } + ] + }, + { + "createdAt": "2021-03-24T09:01:09.124Z", + "updatedAt": "2021-03-24T09:01:09.124Z", + "id": "119", + "name": "DeepL API creds", + "data": "U2FsdGVkX1+GlCRFP+uZ80Sf2efUOqr1NZRfWmKURwZ1ZUxZ+6hMALKGhNp+ALMZxH+WSgYhmynGpl2dRXnLfdt+2uC4ME3cigCFSE0W2vk=", + "type": "deepLApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.deepL", + "date": "2021-03-24T09:01:09.122Z" + } + ] + }, + { + "createdAt": "2021-03-24T10:06:14.748Z", + "updatedAt": "2021-11-12T13:12:41.830Z", + "id": "120", + "name": "Reddit OAuth2 API creds", + "data": "U2FsdGVkX1/0US4pkFlyhr+JeAVih9LYj9FCeuOCXka2W4E8s1yIzfgOMwuxAdP0mXUCVd48h+haGlZg3bjD9oy37E6ooQOp2BTs7TUUF7jJSLNq5hVkm0wzcq4YvI/hHVrD92CobCjCI0yY19u2weTVkUdyZbDlVRrWvyn0UJMUqtv/KI0f9g5CaNrkPI3dxODytpokrdnk9dl7SGHUOIQg8y2nYadjCl8Wdarjvv4CrrnYJyUFKKtIWH5cDHY0I0NL50QjgDeVQ7KsoT6yfoOoqvBbCyTMPVRQwAJuTDBiNmpiZNwGzZ6+4QBQgcJB9qyMt3N3LMKF6LqbKvaf2hyO0MCWe/hctHe6Mqa2c/Se8AROktUOBCD5gCNkVCoFmQkLW2ImeEdD5Ne7CB+1CTQgNwGUTOgLporM70kQu7jSmWM4bgMaX7m3hbqtl4uyTR0Rb624hXnfTPGC7LAV56SwUciuPEFEJfNeUToIe3yxrR0PwPALUJ0QrFJA2q/ssy1xUKBEd1MFJb7/0SiFC8VOUM3lyBEsAkYD7CpPNjZaATjfY5Cbf2pKmwnZxjEh7ME/PqAqcfVdk9kck5OexkM0NFjd01An4uAwPOohJR/EYgHD3nPkUdJK7WfIvYneEiPYRNMR+JO0EjFafLZpB13v/iKyiVLO2hHmcdqeJcOBWIrjCF6fhv818VfByfHSTkTJBF7KOmCmQnkhU/BhKFt4CDsC2xoNrBumIfxxnhIltVf7pMgTltDai8RE+jPhbNjqGdZDVcVBPhDtDl/IyQ==", + "type": "redditOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.reddit", + "date": "2021-03-24T10:06:14.733Z" + } + ] + }, + { + "createdAt": "2021-03-24T13:18:39.585Z", + "updatedAt": "2021-03-24T13:21:09.217Z", + "id": "121", + "name": "PostHog API", + "data": "U2FsdGVkX1+dxVkGdcLhw/iwAZ6ZhsE/B5fcd2vpZQ7D4fzJCDCTOa42QLamab0a+76Z+B7qWIYwjAmJ2esTX/XXzwcSf3pmLF3BgFktOezmzBHZ0Pg13R2aMcXsNTq1IlNUvYnsLw8hURREdBE0DQ==", + "type": "postHogApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.postHog", + "date": "2021-03-24T13:18:39.143Z" + } + ] + }, + { + "createdAt": "2021-03-24T14:40:12.371Z", + "updatedAt": "2021-03-24T14:40:12.371Z", + "id": "122", + "name": "Wise API creds", + "data": "U2FsdGVkX181H3w/pIF/pUShbLd5k3fIlJ+P1zcgGUzs9B/ShD57Tqt51M8KLZxqVH65s74UnMEYb4YHWYBYpazIRQPnpf16euX/WV/yz7Jn+U39z5oNT6aGrdON0ybt", + "type": "wiseApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.wise", + "date": "2021-03-24T14:40:12.367Z" + } + ] + }, + { + "createdAt": "2021-03-25T08:24:41.346Z", + "updatedAt": "2021-07-29T10:35:04.793Z", + "id": "123", + "name": "PagerDuty OAuth2 API creds", + "data": "U2FsdGVkX1/OnrXa5cdqsp6Gx8I+ZTOCZASl95XvWjDG6KcvYHq1fsfTpz/yj3iO+4PJ1C0VkHsLX9a+hpUz30J3ryvl4PgnqSBuFMYJq2ilJ4/RWKiTyEaDIQ4iLsexw23QJ5a7+Ac2Fy7wyxvQ1p9e5ibNbVyqEMeccJQNj1BC7iJHOwcZc3swcC3fxLy+IgfSpMAcfnVRc5j1Z8x3IK9J7/K4sClINHgOCm+XRiqGRcWzMIUyGgVXGTLVw5CITzp8mc2RvHgWiY7i77352wHqUmNLaXMM5MKJTjv1hFAkYC+qSeFy24CxixcWTxChKHDNtIrszJAGc/8Tztht91wd8xifgp57bVJf1msIx3LfmJE1FabWw5ibzjqdU3M1Rh92+EgTnDue9BgZ3p+f8lmO+W7RRc7zDWJPT+kF83KVcTsml8RR5cOKNJwzCEndmMpKIqiaSqEWyzMSi5/oW1J0EirvMRisWQPNIZo2jiwyp1QKxKMg8t/wxwciU5TUZYwvtOSYOfL1CuDo6VN/G2Sm/2mTqf0C1QcXUPSzzzMV+5EJNJgxhuYHdo/3O8KGLQZ64P0DMxWh/nzUcIz5NIyaTLbGa0vIjrbrs+LvrX0=", + "type": "pagerDutyOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pagerDuty", + "date": "2021-03-25T08:24:41.341Z" + } + ] + }, + { + "createdAt": "2021-03-25T09:20:09.900Z", + "updatedAt": "2021-04-27T09:05:17.449Z", + "id": "124", + "name": "AWS creds", + "data": "U2FsdGVkX18CrjtlfrVKO5aBIoQs97toMhis4Msz7ramicpQPg/7ADHR1a5KrYJwMaSesk+aep+ff8fKEbZ6uaH2kiIcCo4Bb/W70/YpXYXIfMlxeo29OolY9w2HlSQnoQT8gxGqza8L/ZQRgW9PaD8dj04GOGv6Dyp9jLQgXGA=", + "type": "aws", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.awsComprehend", + "date": "2021-03-25T09:20:09.898Z" + }, + { + "nodeType": "n8n-nodes-base.awsLambda", + "date": "2021-03-25T10:26:02.255Z" + }, + { + "nodeType": "n8n-nodes-base.awsRekognition", + "date": "2021-03-25T10:26:02.255Z" + }, + { + "nodeType": "n8n-nodes-base.awsS3", + "date": "2021-03-25T10:26:02.255Z" + } + ] + }, + { + "createdAt": "2021-03-25T16:17:53.698Z", + "updatedAt": "2021-03-25T16:17:53.698Z", + "id": "125", + "name": "Tapfiliate API creds", + "data": "U2FsdGVkX1/iIPUbQzFC5Idc51Ntpap/YY8Z3XUFYvy6tbuJi6vtZEdT7zS/UJfhdwAg16DFWZ9msD/qfB5xQ+hm+Sgfinm/cRu84fu3cxA=", + "type": "tapfiliateApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.tapfiliate", + "date": "2021-03-25T16:17:53.696Z" + } + ] + }, + { + "createdAt": "2021-03-26T08:42:20.556Z", + "updatedAt": "2021-03-26T08:42:41.657Z", + "id": "126", + "name": "Wordpress API creds", + "data": "U2FsdGVkX18sj4B2d0sk6ZjrvYjNNo/XAGODRSiifsu17PiCMzuCEV1JDLqWx7MT/xZLAyDfNyVcTYLffFoIvBZS+VZuhi7xyrQ+HLqi1d+PkS1Zcy7HZwsb/PDN1istKiMM6upOXhqITrHeNrVQZg==", + "type": "wordpressApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.wordpress", + "date": "2021-03-26T08:42:20.549Z" + } + ] + }, + { + "createdAt": "2021-03-26T09:23:43.013Z", + "updatedAt": "2021-03-26T10:04:56.190Z", + "id": "127", + "name": "WooCommerce API creds", + "data": "U2FsdGVkX1/PpZBiKFypBhk59ahnQrzs6DvXvq+yOJl434b6v7qRK+jU3pJWDXgRu9ekq2QJWCDPv62Wzi0AJP9cye+2//skLuJaoo2qcjHOyINNQsPx7McIgHrf+boea9Taf7uF/qPSdRTPh5PtlPdHjH7pFfi5JwMk9+GYJKPt5zq+oy3AD8hCu/11cuZjQ2i5wGp7d1I+jIgEXWwHrLCUwDTyrAzIorS38UHmH71Tmuy/65s+qeMN59wHsNRw", + "type": "wooCommerceApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.wooCommerce", + "date": "2021-03-26T09:23:43.010Z" + } + ] + }, + { + "createdAt": "2021-03-29T08:29:56.384Z", + "updatedAt": "2021-03-29T08:29:56.384Z", + "id": "128", + "name": "Vonage API creds", + "data": "U2FsdGVkX18WVXC8Ll749yKbkxqAqMbGn5a4OOBxojW53/A+mJNMqVRbJFV2z2ufNwfTqCH4JEZyyTQrutfqwr2SeSWMVooingKfRCPt5QI=", + "type": "vonageApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.vonage", + "date": "2021-03-29T08:29:56.377Z" + } + ] + }, + { + "createdAt": "2021-03-29T13:54:02.617Z", + "updatedAt": "2021-03-29T13:55:02.914Z", + "id": "129", + "name": "Drift OAuth2 API creds", + "data": "U2FsdGVkX18fFSioDqPTa+OHhYDqqWu7G45NcimDjrhwkLpKsZg/zDWYia85+CXZENYbOQjwd57C7qBwhaPxJtXFF528/FeScstHHNJoI4HKGDNxwn9/4zrQGrwB21gPXhq+eND+Si2mCZhP2Upu+BOgk5m0pfce+lLmwYwILFfTuM8Vz403A0P9grRLAk+vSxkErwdtqNqp4Ac3Cvxczw==", + "type": "driftOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.drift", + "date": "2021-03-29T13:54:02.614Z" + } + ] + }, + { + "createdAt": "2021-03-30T08:31:01.924Z", + "updatedAt": "2021-03-30T08:31:09.696Z", + "id": "130", + "name": "Sentry.io OAuth2 API creds", + "data": "U2FsdGVkX1/cXGLFr718WUrwP2FijYTb0QYRysCy9kj5Xen1gZJgDP3LfMl7lkeTdE/q2mCYKa8rq/pb32Xm3bzXbprORCqXLnZB0p93wZZKcz1+LzckY6yuifN/VEIMKhE3fSwXi1/PER8VmQ3K92hup3LSalVzuqhy/EX8K5oDkLEEmEI043hglgCbTSxplxrjgRJ65y73yTMxfOrLdHWTbZVjZEKB8knc/hRvg6M16nkSyfFclQALOZiKN6o9OLNTx3iQ0wLrhZSvDZuhfiysVqEzpcBEsM98232NzyIxcrQ74SR+uuhgZeN8IejYR5ApPJYUsrTTC+keCqW9la0KBSPdM+ckfTYIctJFLZnjvbvJMEZHjEMn2CjOgmcd5U0o8LLceh7aDCbLBJ4+1FsE5ZQankySwNriCSV6XsQ6b42Cev6nIpne0lwOLCtEryzlEAtr+e5bn8/BVrgFVY6IMnOq1qtW20UkF9/dBlQIXy/hcXNoeHHjKcn1480GvLtHAX68rWwOi4cAbF6jM1azNGpxUJPXJflT0QQWKo0QZKoS35rbvUtpF3GR1blAkcISaQXZi03fWY81i7m/ddPB0uN3A64EQ1MPsaGjuqfFWKvD+BcbJzHOdHf3NpUNBGBaNLRUzHNqB9PvR+lI4KKHve3gw/xygaE431v2OF57YRgJAdJKJMsXYSRR4rPWPqsZGLWQR+u9tjSgm5qo8NlrGTCisfZZuxitK1SHVneULlJe78ybNd7SaLbpcdPeUfRlg+UnRKXPpHmpwWjmCnrhgfL43Zn6MtPQ45FjLrWWgduf8ylg5wC+LBIEFfJ05bNDEAI82mo7fX/FAdgK76mzbs95moEbrqgDy+9rXECuWaTmOtXtnX/A/+pQ0uZ1", + "type": "sentryIoOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.sentryIo", + "date": "2021-03-30T08:31:01.918Z" + } + ] + }, + { + "createdAt": "2021-04-06T08:26:09.733Z", + "updatedAt": "2021-05-21T13:38:09.422Z", + "id": "131", + "name": "MQTT creds", + "data": "U2FsdGVkX1/m4oE9vOBa3hzo+X+T6tDwBY4YVzTXZnDcIEl3EZzNTlirYEuZIoakWhJwCqw1a/1MkLh1jUy97VpaZ3/DEZM9TMnznlRWz+cqawe/VrPHHOLHw4bFqCvvdvgD4IvVycxY57RsxFiL+w==", + "type": "mqtt", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mqttTrigger", + "date": "2021-04-06T08:26:09.724Z" + } + ] + }, + { + "createdAt": "2021-04-06T10:42:40.529Z", + "updatedAt": "2023-03-06T15:34:19.246Z", + "id": "132", + "name": "Google Slides OAuth2 API creds", + "data": "U2FsdGVkX19/PS9ckxDNT2HrxxHvkTgLNa/qdlRTq0hdxcddI2D3UDqpimeDw8cJMdIexszhk3oq6n+6f3mqLHaezPu6xZ8z7a/d5oEcx8fK5y60vmWODlFrsiqlBPDlbesIT01amc39JuFQZTbp+gHbpIxWj4fURrmGf5cLSW+HW82Jwm74OTO/GARTgklTrEwn+StkHayC2Nq0lUAt72ufXg+LThsg+c/v0pZSAvYr6xJcFKGQewNZJhTK7OaJRmM52l5Exk3cm4go9AzflcGt6aslIQ5d5RHdoloEgyxVjeNO9akQdqL3lJNy0WIphnyQsSM1Od8K1G7ONaHc4OsKABEvbkSll9EfuospiZTlpiwqnQsIFLsAC9cZTLFUhVqGOliF37firEZrwxu5CeMkuJRhNkPgGT64/+NLef9Wjxo7qFXEjkRH/yNiJ/MBiRe61oB6uohb/iDpnk3D1vFpjLS4V4h83SRLkOYSG7Yua5snfoXGWd3TdiEsIOdA2dI2FEUH9zQCT8prJKU/9H1n/ntdcOgO8clDMhrv5139UFyuWyFt48dxvqzVuAf4mD+EEmfyJL/PJkAMvUSrcHAPHyu5V7PGCT0zbjX5wBU66gvn6xPlDK2dvRzRt19MiH33HyBkjUtP73v7N8tN+2eXzDlgOMOrO2bH/Ail4yekJE32QEah/msJbiQlE7HCmkQeaWqeVG73wrxFnA2TVkKf0/pBLEUk5fhe9xZIhwmQh3AyavssJGk3aBq5/xi1MFYXPhARSE/cgMaEQ/3s9+wWKT7xk3wQr+J774RNiSLvbezrvxrJap2/P/4HFZijfB1vvLRUvjtoW/WvCgX3R2Kk+a3Y0epUah8ISgddmlTb1FLz0a4s2ciA5l1ClJaA7ICNzOiuX/ViB95/mrtfaE3ZUyzmlXX/VPhu/uYtki871EsyawsVa0CZOS+VUL0pWflxj8ZBk97mjpRw04+50m/qejCMS0b1FkeyMbGyiuUASB8Zz/CtY93OH4d7ZEcKAVxcxN6RFkiuIrMYXwPI7FzD4P+FCbLN/kC8GSpAdD/KIZj22kdvANovTr7nzqdd+l8EgpPiHsm6B2IOqjAsEJmb/4uzHGINchbij3KSj4gluczYBKilJx0HlHrgDZU9V0aHI4ljDLz94NdrQOh6TWUB7Mi31lMJYsBh6yTsAE3mrPGvQ/mRZmxbBmpAwkhrrspV6GrMXU1o2ncI8+N3oC5PAyk6oWWjVpSMmwfeTigKBRYu9WRGdYJUXy0NrU9N4iwVkFUDTInXgabiQUjDiB0ErltnaV9x12BWbwdw7UhMe9ZAyfhF5CGR1Tg/c6oVVolq9i/lgegO2t+Ckc45FrHuUKCXk0TZKy45wsUn5+0uq0cRrdbS1rcXVsEHC1RlNY/6QlcGPzDEAD3uogVUXNJdAIN8nXBA0v+OJbN8YV/PRiOC/5MUd4dXDOZG2jMeI+Q/cNlrjKDWbO6uV9LFoA==", + "type": "googleSlidesOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleSlides", + "date": "2021-04-06T10:42:40.526Z" + } + ] + }, + { + "createdAt": "2021-04-09T15:28:44.590Z", + "updatedAt": "2021-04-09T15:28:44.590Z", + "id": "133", + "name": "NextCloud API creds", + "data": "U2FsdGVkX18Nzxxsz9idMXFq+XbyidwNPqnC+idaMf7TnnDZK3A8+/uA97PCCJ0mKSJvRr0eAZyoAb2gnRY0HoemTUb6byZgJf/aQU/os641kNKcHZTSgeO2KMOB60UV7z7lnHk/TeO0m6JtIiJpiFoowYbYqej6cWnq6Mj1sTE=", + "type": "nextCloudApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.nextCloud", + "date": "2021-04-09T15:28:44.587Z" + } + ] + }, + { + "createdAt": "2021-04-09T17:52:02.689Z", + "updatedAt": "2021-04-09T17:52:15.721Z", + "id": "134", + "name": "Freshdesk API creds", + "data": "U2FsdGVkX18oaxZ5INmwYOUt7Ya0KjQv5ypLeMpwKcunmELwMmERRqD1WoTWs8UWgprV6yAX7L0NL2fgBT93mXQChIoHf1ZZoGXE6vYrQOsAR7sJsfnr3QARPc46VKff", + "type": "freshdeskApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.freshdesk", + "date": "2021-04-09T17:52:02.682Z" + } + ] + }, + { + "createdAt": "2021-04-14T13:04:06.289Z", + "updatedAt": "2021-04-14T13:04:06.289Z", + "id": "135", + "name": "Demio API creds", + "data": "U2FsdGVkX19k/lMkGTHyBCxQZ1d+uG+9bMMPm31UxGZBstePP71IUR1okte6Oz4WvNQIONYkt5aSMKKRAZukIAoVircgl9uAoDYE/sJAHfT3jwiRIhnC07FTmGV9+sx7", + "type": "demioApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.demio", + "date": "2021-04-14T13:04:06.280Z" + } + ] + }, + { + "createdAt": "2021-04-14T13:45:10.548Z", + "updatedAt": "2021-04-14T13:45:10.548Z", + "id": "136", + "name": "Emelia API creds", + "data": "U2FsdGVkX1+qPrASstL2tQks2/6kiNgfwJRpNdFOM+9drLY4CFL17SNSlGhHnIXu3WMcg/7PLvPbs8+C7ALIhYACrsnoPMWd7mWjd748N8s=", + "type": "emeliaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.emelia", + "date": "2021-04-14T13:45:10.542Z" + } + ] + }, + { + "createdAt": "2021-04-16T09:02:52.991Z", + "updatedAt": "2021-04-16T09:02:52.991Z", + "id": "137", + "name": "Intercom API creds", + "data": "U2FsdGVkX19Vssu2q10fPW/982PXhjejRzXqloNBNbiT1zlWoXl1tPgilsXs6gz67MJG+mtV3JWWS5yhYtYTp7q7omTykQkuiOoWDDVYrOWcLA/vJIK6ZB1NlCFSXBai", + "type": "intercomApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.intercom", + "date": "2021-04-16T09:02:52.985Z" + } + ] + }, + { + "createdAt": "2021-04-19T08:27:18.210Z", + "updatedAt": "2021-04-19T08:27:18.210Z", + "id": "138", + "name": "Mocean Api creds", + "data": "U2FsdGVkX1/oA3812/OCv0qqWa7+wDlwRdkyVKk/LGtTfRqSbyyqIIrWW9vWdkB0jfZARMPAH86FL5kD/58U3PaY4w/k4la3dE/jqjC+2GQ=", + "type": "moceanApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mocean", + "date": "2021-04-19T08:27:18.207Z" + } + ] + }, + { + "createdAt": "2021-04-19T08:43:47.245Z", + "updatedAt": "2021-07-12T14:19:41.820Z", + "id": "139", + "name": "Xero OAuth2 API creds", + "data": "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", + "type": "xeroOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.xero", + "date": "2021-04-19T08:43:47.238Z" + } + ] + }, + { + "createdAt": "2021-04-19T10:06:31.948Z", + "updatedAt": "2021-04-19T10:06:31.948Z", + "id": "140", + "name": "Stackby API creds", + "data": "U2FsdGVkX18YSUQweuj3R54MYldVyuyfIcUECTdY4k8eFC029LqS1/8pTYrm6+L7", + "type": "stackbyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.stackby", + "date": "2021-04-19T10:06:31.944Z" + } + ] + }, + { + "createdAt": "2021-04-19T12:54:51.234Z", + "updatedAt": "2021-04-19T12:54:51.234Z", + "id": "141", + "name": "PayPal API creds", + "data": "U2FsdGVkX18g+KnywgStKZsljAR3dqZvRZdgXGBuouUc0hj1Gb0BHHChnQugXSDkyY3MrhbSjxeWT6bEkMhatJhjGn5wVwgC4TdlA/Y4RtC4SKpfR2tBK/jkFUZwg0btHdWvqOmvwhWZiD+NYvHGrTCq0HNicuQjknMwmGxlOawWDdMcze42ZgWXxnNWdPn8e4bk1abVjlpFjGFJOxGFXk5CIaSmJzhqW5Skc2KJldOjjgseY4n1FZ0EO8kQbBmV/ByloLTwXzbIySp3b6U3oD7Kvz6Jgynq7t8d9ZhUyQs=", + "type": "payPalApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.payPal", + "date": "2021-04-19T12:54:51.218Z" + } + ] + }, + { + "createdAt": "2021-04-19T14:25:44.337Z", + "updatedAt": "2021-04-19T15:00:14.218Z", + "id": "142", + "name": "uProc API creds", + "data": "U2FsdGVkX19KF4H+kQokEweikHpaP0Prxirb4ouEZargEzvOebobUvkimtl8geJDm95pRY4fll4SDHz7l2L4njSwzuv6IQxHfeJho7R5lExqRhVDj+ZQ8jRCSrG5p+E5", + "type": "uprocApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.uproc", + "date": "2021-04-19T14:25:44.333Z" + } + ] + }, + { + "createdAt": "2021-04-20T08:01:26.495Z", + "updatedAt": "2021-04-20T08:01:26.495Z", + "id": "143", + "name": "GetResponse API creds", + "data": "U2FsdGVkX1/Fc7tymDGjDUPosf8p2aMy7/NUfcnxwrOM2hWkOx9bmBJVc9fRfTyl1bUO/3jyrsnKTfHghQPl8w==", + "type": "getResponseApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.getResponse", + "date": "2021-04-20T08:01:26.487Z" + } + ] + }, + { + "createdAt": "2021-04-20T08:18:06.168Z", + "updatedAt": "2021-04-20T08:18:06.169Z", + "id": "144", + "name": "Vero API creds", + "data": "U2FsdGVkX1+oCZoIiHT3SSDwdC99JjgwDMCIt23PeIqRoB4rpgM98nP8OQOQNSH9Df5b4bWa8p322REvxf9dLSlzFCOvKxquHB0FeoqJnux8UP8m5Jrp+Nxpw7qpbeBL3qRUfKbgoXszfk1pUmmvNUZh5YSO8/gH0zTuuFtANOyFCrPTyQvMPjdX6HAEzHPh", + "type": "veroApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.vero", + "date": "2021-04-20T08:18:06.162Z" + } + ] + }, + { + "createdAt": "2021-04-23T08:43:45.513Z", + "updatedAt": "2021-04-23T08:43:45.513Z", + "id": "147", + "name": "Webflow API creds", + "data": "U2FsdGVkX1/YeJuB/FidCg/1I1TIxB/cbbS4POvlDiLmRYUwYRgFYB8Et98LEHR+IGcrbeuoBsgzFvhdXll47u957EDSCeRAgOYRQTuGfLXJ7VD5ivlQ0m4bB8/xbO/6ici02pdWMflo/mw0DUyYYg==", + "type": "webflowApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.webflow", + "date": "2021-04-23T08:43:45.507Z" + } + ] + }, + { + "createdAt": "2021-04-23T09:35:22.641Z", + "updatedAt": "2021-04-23T09:37:52.374Z", + "id": "148", + "name": "Telegram API creds", + "data": "U2FsdGVkX19JZ124pG1f9r1orLPLlcPbl6wYcoTfUvs8ojNn+545HdL7dTSmisYsEDgg442gpxquvWAov9dpOqfB4MQ7oUWyhfUtCVYXbCtfljF/mNdk64aOWOmHsdot", + "type": "telegramApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.telegram", + "date": "2021-04-23T09:35:22.639Z" + } + ] + }, + { + "createdAt": "2021-04-26T11:53:04.438Z", + "updatedAt": "2023-03-06T15:37:54.377Z", + "id": "149", + "name": "Salesforce OAuth2 API creds", + "data": "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", + "type": "salesforceOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.salesforce", + "date": "2021-04-26T11:53:04.432Z" + } + ] + }, + { + "createdAt": "2021-04-29T07:05:40.497Z", + "updatedAt": "2021-04-29T07:53:55.208Z", + "id": "150", + "name": "Strapi API creds", + "data": "U2FsdGVkX1/WCBhlME0j52od0t4RYCtgoPvXWR+ffFtpzUDySvgPd+BoJRC3NrnSUNc5BCFfo76hpcdhLbx3Xz55xH2vH4t9iZBiR+oKZB1OTlnPXc4OsZvtSpxd3W+6mPxb7XUG7HRGCF+isKA6zum1Ksv3e8bu/fNEMeegFNI=", + "type": "strapiApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.strapi", + "date": "2021-04-29T07:05:40.491Z" + } + ] + }, + { + "createdAt": "2021-04-29T08:11:19.033Z", + "updatedAt": "2021-04-29T08:11:19.033Z", + "id": "151", + "name": "Uplead API creds", + "data": "U2FsdGVkX1+FFxby5MlGpjIyd9BO5rI142CioEUqAEf1RB15TsNOO4WkEBKy8mxwNCk9mEoMhAqBjthLxTTrrA==", + "type": "upleadApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.uplead", + "date": "2021-04-29T08:11:19.030Z" + } + ] + }, + { + "createdAt": "2021-04-29T08:49:17.282Z", + "updatedAt": "2021-04-29T08:49:17.282Z", + "id": "152", + "name": "Affinity API creds", + "data": "U2FsdGVkX187OO6F81DyFZw3QtY7mKRKTz/UDroZisna5MMy+QudQWu7auA1XrADEc5TpMjRRJ+8PMkWIKBerDjVVo+4hNMMQwU3fU6V0rE=", + "type": "affinityApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.affinity", + "date": "2021-04-29T08:49:17.277Z" + } + ] + }, + { + "createdAt": "2021-04-29T10:02:17.166Z", + "updatedAt": "2021-04-29T10:02:17.166Z", + "id": "153", + "name": "Discourse API", + "data": "U2FsdGVkX18bdMnFwv+YAYjbRcPl7x+2R1N8nV3EbsI0t0YGO4Mr9go6xmK5B9b63g9s+V1UFFobk5LlyeWNqkbiLDihH9wy+/V2VD5AtRE3YRvtuK4+BIoVj+xtzPrjn/U2od9jccxV++iHbwoV1D/2Fzb6pQP9cLKyykm38E2GkCMa9zkgoR4PPg+vMKmTGwJhf8b3f7jWpj2hQju3qw==", + "type": "discourseApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.discourse", + "date": "2021-04-29T10:02:17.164Z" + } + ] + }, + { + "createdAt": "2021-04-30T07:12:07.227Z", + "updatedAt": "2021-04-30T07:12:07.227Z", + "id": "154", + "name": "Mailer Lite API creds", + "data": "U2FsdGVkX1+19L50lgsCSy4Ck/5RRp6CXjjrXH8uct7/NlJ9ykhTqQtj/LmrDsyO5J9+HdKkRv/xLDK+jqhnfg==", + "type": "mailerLiteApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailerLite", + "date": "2021-04-30T07:12:07.220Z" + } + ] + }, + { + "createdAt": "2021-04-30T08:21:46.630Z", + "updatedAt": "2021-04-30T08:22:20.978Z", + "id": "155", + "name": "Mattermost API creds", + "data": "U2FsdGVkX180CNroiq7zE3GIzIwitHMqah9pL552nzdMqDpXDqJleyRLcFw48lWLT7zwgI9eGXdOuphVOylXRXtmG+a0dD1y5qJ5aEpssw8GYFyVe5YwpZOPQV3qcGBwbphhe0XYpxKf32dnPpOEdg==", + "type": "mattermostApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mattermost", + "date": "2021-04-30T08:21:46.627Z" + } + ] + }, + { + "createdAt": "2021-04-30T10:22:25.663Z", + "updatedAt": "2021-04-30T10:22:31.039Z", + "id": "156", + "name": "Chargebee API creds", + "data": "U2FsdGVkX1+uzSiaH7ecp2Y1RO6QUxLlXhsXGAjyPJXjyBtj0pX+Rdcq6/ieIYK9OnhbiEMn2N/yxvArK91p1Nl74p6YG9u1RHvLFLyB4h1/uY1Uz0s+8mbVvxQvfrn1", + "type": "chargebeeApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.chargebee", + "date": "2021-04-30T10:22:25.660Z" + } + ] + }, + { + "createdAt": "2021-04-30T10:50:16.724Z", + "updatedAt": "2021-04-30T10:50:16.724Z", + "id": "157", + "name": "Mailjet Email API creds", + "data": "U2FsdGVkX18jpZ9c4KNNhiSLG4xvQkMNRSw02aYpBDU3G96lKlKheejNN6uOgaZhYLRUhqE2O73M+RGH+D7za+8Frz04tHcgqj8TQbgjUHMnscyf4h5/geJOGnNLEzjJ803sXMaw5zHioeFxKvRRKQ==", + "type": "mailjetEmailApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailjet", + "date": "2021-04-30T10:50:16.722Z" + } + ] + }, + { + "createdAt": "2021-04-30T10:57:35.157Z", + "updatedAt": "2021-04-30T10:57:35.157Z", + "id": "158", + "name": "Mailjet SMS API creds", + "data": "U2FsdGVkX1+ZwlTYm6WgzkaNidpElcnI4nuvvczGPr1lWtXuaLnh5PccnLmVLW1wqzCCiNScG7CcJD+Ch+BCOA==", + "type": "mailjetSmsApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailjet", + "date": "2021-04-30T10:57:35.154Z" + } + ] + }, + { + "createdAt": "2021-05-03T07:29:32.307Z", + "updatedAt": "2021-05-03T07:29:32.307Z", + "id": "159", + "name": "Kitemaker API creds", + "data": "U2FsdGVkX1+t3XGAixnfonj+DKGY3E9e89cyuNIQ0HOJ7b+tRdw6oot4mR/E5Rs4DFvTmQ8fSVmmksz0eA/Jlj/lsZphI3c9OjmbZIimFSY=", + "type": "kitemakerApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.kitemaker", + "date": "2021-05-03T07:29:32.301Z" + } + ] + }, + { + "createdAt": "2021-05-03T14:31:02.284Z", + "updatedAt": "2021-11-12T13:13:11.267Z", + "id": "160", + "name": "QuickBooks OAuth2 API creds", + "data": "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", + "type": "quickBooksOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.quickbooks", + "date": "2021-05-03T14:31:02.276Z" + } + ] + }, + { + "createdAt": "2021-05-04T07:28:31.210Z", + "updatedAt": "2021-05-25T14:28:18.569Z", + "id": "161", + "name": "Twitter API", + "data": "U2FsdGVkX1/lNEaMgYF4KKEgurSWc0tgQmBaQowLsCduikuKYhkO+zZqveLoyp2PX1W/l6lsPCz5XgtFdSxd8KofwPoJXRlBwe3v5R98pcgcjKa6u18fyZFLsQu9/G6RtsSogdPTeltqH0dPJcGVdRvqZh6mB8PNflDFglBDswxgxBNXpBI0MrTqsUU+dOjmro1Tg9iRymwiQTjTVc/MAdR+iv+Bdg/ToUjKQeM4C/1hbsJ/l8vcLPBXv6BZfFSRYPt9vGIrfQ2WUj2IwyAO9KxPgxhwhUpGwXRXcHfW/yC6b53cvtM62GkgCONjlA7QFtDWucNqGOFbGi0va0b1nxKZOpVFbGAhD7UOOuEzUZDi9v7Np7/CUDhEf+nwEKeKqtEoO4rk5iZ2izLsoyE2PvtYgU/Xp+7F8+g0jAm0fL1ZWHW9XylT578k9Cc7rFguFN1eCKTf6P6+LHxFmzNd7g==", + "type": "twitterOAuth1Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.twitter", + "date": "2021-05-04T07:28:31.208Z" + } + ] + }, + { + "createdAt": "2021-05-04T15:26:06.759Z", + "updatedAt": "2021-05-04T15:26:06.759Z", + "id": "162", + "name": "Invalid api", + "data": "U2FsdGVkX1/WJF2fZFfajX7IsiVGSVZof3M94BzbuHizjuzvUeHFxAvSQUkHBQ50bmxFoNncCV/c47w1wrjVoA==", + "type": "vonageApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.vonage", + "date": "2021-05-04T15:26:06.754Z" + } + ] + }, + { + "createdAt": "2021-05-05T09:51:21.413Z", + "updatedAt": "2021-11-12T12:11:05.438Z", + "id": "163", + "name": "HelpScout OAuth2 API creds", + "data": "U2FsdGVkX18+4kpwPQqa0q0osZvootlzR4EgJ+MD6xDctnqFPigrupQLHdsK1zLEK4paIeHBXxLQ8Rv/6xCA+FdJ1L3XEiZNrI3PfA5oKmdw/BEAjDYBLF4+/rIhuZIene3GvLH9WeffpM8AxxNP4DAJzLQh+0OJqv6R/n5S2Q4p/6X087iQl0/iUhWdIhftxZ60SbrgMQ8kpmMXVORTNvgw8KNNgaFGF2iuL0bJklgmz3QgzuK3BXKxrOH3sDLGyeRzumNBQbDZO/laYwLVSUhf58b8LiKFbWu78kotgvIOBTp/g9Xt0uqINbzhHUjvanh65nOlWvonn16sspvsZ/JiXtJjn0lrfHPUcVosBzYmVSCl/iMUdPVkomYhPt8Frp7GXIuH4gYg0lLgzjXbKGLd6dL6tWOFA6pDkkvL6LpwKt+JgZjhbgZxVXb8NWZG41CkJUKkkaldxnel6DrZow7jBpIJR1yPwI/ZzfeYPlhcQ+mNVZIsRFcZOtwjYgdMoT7GcsRFxo0NXr1F5dxYZEwuLHmZcuehowPhfkdi4e6DJ1atoGoyJHH5wbp/zeV4WuIguSEMaV18agOSlmFF5KeSvuBcDRvWFzFVItiGnyyzMPoPTWZbGJ/Gz8qMAq1O", + "type": "helpScoutOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.helpScout", + "date": "2021-05-05T09:51:21.408Z" + } + ] + }, + { + "createdAt": "2021-05-06T10:27:13.780Z", + "updatedAt": "2021-05-06T10:27:13.780Z", + "id": "165", + "name": "Dali UptimeRobotApi creds", + "data": "U2FsdGVkX1+W2QfOypfTTcFZS4FxxaaTfwKo3gAxMpSQGt21/BD8DC6Za/7A4BJJt+U7wWsUNy4EFNK4rjO5yA==", + "type": "uptimeRobotApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.uptimeRobot", + "date": "2021-05-06T10:27:13.757Z" + } + ] + }, + { + "createdAt": "2021-05-07T13:47:53.290Z", + "updatedAt": "2023-03-06T15:34:19.060Z", + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds", + "data": "U2FsdGVkX1/mtUW0G2VISsFJ2G48bosvwmK/08RO4geDNmVKTatLG9IJGC02dx0HSQmWKZJb7QyBIx70Dk1obHKZrtYAf2hiLsOm3Vmhk/BQWUTmAhhSIaeY+HicX64hjHRdWtPjE78fY/DZev2yE8INiE8jIDKx6szxmlQDCpQYK8mnTkzJiHEVaa6U6UzhJvVQ75Yc20f+nnx0YUV2UvfIWOPyKcF+g8n/etPZ2b+GQuwy+lw4x1/+B0H3GCQVqFZ8/Tqd2m1pJ3aQxTLinMLSvZDEeSXr8XlmSXBCQr2UgfK4XnIguFjNphtBtQcf7wRDp4q+biTOeuOxD5FawILyh+k8r1pof7yt+7fNxUUjw2dXLe3/BAou+hm4P570fvpYzgXT8CANDiqf4X61Eyufa71/K/uPyCskNXNv5ROo7pk33YS23fhfSlX4TBBwXODMtX1yOU4rErQjz14J9qdtK3rFzqJYMi6KG6PQO+moa6jN+5hFljam09Zg7A1t+26wlB0PX0UZDXNpJvXlCBaixH4l7ouoQqqYZKdob5n1zEaxfymy9l8n+UG+DFQQ0zkT5XX28wzTv5WxlIoxclPzhpgjQOZHjuXctMsDi1RqE4BP2iRcappWtbaMS2hlruhZVIO6OblnaaqCTEqs6IiA7XnhpcKlafzeUPW7CB7n1XwQZgMEmtz3VeagLGBMVAw7aI0WBo23ubd3h/HzgodVef0Dlf7QCWoEXekVZNEcSIXSdV/kxGAPt2UpFboYbWkOsjVUVKxC6ujOzSUR/Qx6W2L4KLBuboT8OF969MRKAUc5Z7WQrVRykdA8PbaOgboh9g3zKVqO4CN7ZVBgfPqx2Zv3oNeZrKeElUs/5avadyWj9iKaa5sO9wfE+D4++6P3J4oL6cnucGXnEhbFUbeL2TyKdc1s+o2iG1aO/m32nH/pLEI7h2fK+voKHjenP4akoGvvxldrrTtT86pFDajFwno3I9/8qnRs4ju5dbcOnw2pcrut5xeTAKCLiCpxja+z3m8MphfbttRZbK0vQzCIe5sVJRLJDQLVWWzlU4l8/4narG3+Pu09Z0O60z01bQ3WlGGmDkuYZLUoMV6AqPagQcERgj4XzGgJLf+xGy8fBBKBPXrRlLqVDDlfyYhTcuJHTtt+9nnLf62/twpWfhKVsyrGzBhGGfTIKLR2c7jcgldNID+UObQycxvxEx7jGU0dm9dFyICN2T32I1yf/o/UdO4pEzCm72upQ3IPWK4tvPGkP6pMFiI2qDg86aIUae260f1xHksAJK7ftWsgZ4GWVU/egFQsJi/9SmHqeYWmyT6XIF7wsFWB6ov///+h3AkDFEpGhMPuRylVH3iKwf35HlSKvyWWd4nJ6Po88hPEzE6d82ByALDN1u7bsNtPNIP4Lf3M7e7FLHmlmQmizNxk4WIopubB8y8GK7WB3HgeJ59WCyEixDIL7qZUsR24", + "type": "googleFirebaseCloudFirestoreOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleFirebaseCloudFirestore", + "date": "2021-05-07T13:47:53.255Z" + } + ] + }, + { + "createdAt": "2021-05-07T14:55:52.263Z", + "updatedAt": "2023-03-06T11:42:47.100Z", + "id": "168", + "name": "Google Firebase Realtime Database OAuth2 API creds", + "data": "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", + "type": "googleFirebaseRealtimeDatabaseOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleFirebaseRealtimeDatabase", + "date": "2021-05-07T14:55:52.046Z" + } + ] + }, + { + "createdAt": "2021-05-10T13:16:33.985Z", + "updatedAt": "2021-05-10T13:16:33.985Z", + "id": "169", + "name": "Mailcheck API creds", + "data": "U2FsdGVkX1+WLeu6sqlw4024fkM5XdyMKrG9CmdpQYV1CD/nRL4GMPDrG+1jzWr2RZAHRzy6kd2fl1MZoOjpod/3BrWOoCrDchk83J6BOhbuRJO4fI8w1a1vsmGuyBTxcukGfo4tSlpFyrksrX5i5mrhYLbXz9Lo76U94PhRGUd02424YRs4via6wPlay02aUWhSKIp4ZKDW7XNUHxAWpq4F+VtXSJj8y9Q3qQcf5cWlEdsSJ3I48uvOYHV4Xonm5D+CMAuso6xSwhDjQ5MqsMKo4HiVtlMk5wd6UCmR9a6zrmFd9RiknyUwmww8P6pzF0Msro8eXnuUXlL4o/0lJ1hnX5i/yKZtAN4zMjozmNeZ6lmxXHEghRLCv8eaEt3I6p5EnvM63AATN7K5BSXZXAfqssYmKVAhtjp118zCUPk48w16mb8Tqn0Y86Cz/j+oOggEDMdYUpkLn3CR79M2O57zZnlzZMqGsv14wWb2zvkecPkNpOu4rIKyiAjY/Nftz1b3MghpJnPqCAz5PhskxSCkQcwH2FvzeTkK3NN7pf8tBnZyvBmHf6oTcQN9b+LPmm1orqgvUL87BHRCj3yVp4Nl0HcYN2pihR8xdYnOt7ms1qpMHeQLECmxgzbIOrUTb4Whu7mnWYbvC/d3GjU74P5kdZvPD8T7GNszhGdlvGP9svo3Uq3H8J5COB/nmfSsbfw4vZiwxM4IsNaPFcp9TygTwIIxjsBLoEHlS8UzV6XKJiUQTrozzrS71Pc2lg3voJGQtkYM1DBFKXkQZvVfasz0+vI0euYVbmcXaQ0lPCht0ssgZkZJISSKxq6QCbMkCYjLbOPKMoJeRo2qD/ENU2xzj978P8ROsT11i/uPHOkT8xMAKYx/tu2cyeRHZu2kU5LoJRDFjOZo8cU9IiQq7g==", + "type": "mailcheckApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mailcheck", + "date": "2021-05-10T13:16:33.976Z" + } + ] + }, + { + "createdAt": "2021-05-10T15:39:16.380Z", + "updatedAt": "2021-05-28T20:43:59.278Z", + "id": "170", + "name": "zoho-creds", + "data": "U2FsdGVkX18b2vpX62qVckXUxaI7NoDMwZycOtRKB0jkRTxdAWKqj0hUN7ef9noq2487OjIjwyKguRxEfBsgDiVcsZHFFOyvXNw0dyvRtsq/GFRQ8vFIqbkMgjRclvxLCUC3ljk1aXa35+9MzF4L2jWVl1LZ3+1Afaldo3hLUg9jVIIF2r6G0f3y5NI0wgT8GkLbisk31+rYFo251hYBGy5YKqmTHzxgKrem8RpEUqCF/62zYTMhtz9VcBsfcoODazeFb/utkQlwMHUUbK3sj3Nju8mHLw+XoK7CoPrNEPuNVqnfYegKkhzfnoa0GoryyNyS9HAlq6lx+KJ/DEX4adgGBttHG10Hv9Kw9HQemyPi7Oz6YgWfbBf/3hUaPdHKvUrF6qXYWyK6+TsnAYgkvtFTS/sfNOHbW7FCtzPyLR91OlA63d0OIUzdknpv7IjUeVmG8TCwtAzth0HPLCqGIAI0Nw+zxItkYGJLMRegTPrJ5IifvKuEZ8rAjmMxzhr32dlPTZPRrBfVcPWriwCQUTBBhWpGWaEj+VzwZ3frNqNFwnZhfZDwpkFstnUYziDhYwW2mXRqDZJdce4Rdx9S9xrlnnpAAiaFmdv94MkjXD8l9mDO1JJt6Lt03QOwtRkk+Piwww8nbBFyHT5tmAG3Xw==", + "type": "zohoOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.zoho", + "date": "2021-05-10T15:39:16.377Z" + } + ] + }, + { + "createdAt": "2021-05-11T07:31:14.708Z", + "updatedAt": "2021-05-11T07:31:14.708Z", + "id": "171", + "name": "Pipedrive API creds", + "data": "U2FsdGVkX1/i5SvT4DYHROcecqD+fOfNaeUkpDTXSmT7FcYgX+h/+uo4HNnd+KRdiTzGiyWEzFvctcBM2H5M1KA6baQHXc2Z8LgptfYFUUg=", + "type": "pipedriveApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pipedrive", + "date": "2021-05-11T07:31:14.702Z" + } + ] + }, + { + "createdAt": "2021-05-11T11:25:24.871Z", + "updatedAt": "2023-03-06T11:43:06.535Z", + "id": "172", + "name": "Google Docs OAuth2 API creds", + "data": "U2FsdGVkX18SCW6jsqljoAMOOy3C97ewD4+qZuFjchnBqCMKip7MeI6cfV2xegtZTTL+eFmtcrkf9NN96gdR4ClAk1HuNs4XK29yzVGb2LtB9F2rTH/jYTlSYlX0O72C1ML/EqfyX/4qnqCc3yXZeeoAWkHLH7rgMcl9DXFHjRjhD5eJBsVEkNfKOucgmhA2vEvabJtrPcEgnYef0aH1bSap2S7Q1ntJMOygh69VSlZusK0KocPJbWypG7VVGNbfIJQlz+GikmLQW/eoIfma4rRqVm5y2uKPxbJ7XGvlOMv9T0rkVHGdw2T+vQKkJAFWsBiIaEnrUvpzt2NAVJXr/w/1DJ3/zV4ep8KHOKYHWGS9H/ujWx6TdE3iOvLSjtEEz8l6YWaEvRthodlR/bJLqxySUqGvHIz2U3KfhP/3QrzELbiDZD1yFyZc/B3mLqKexdptSft0KFdZINbv8ZbZ1J4t1zEwfHKG6WAgsNtrYvI3UC5tRbxmxDgT2C0+KRu7Kc43VeFdR8ck8ITqHA5orJ0ZMi1IcJkrFSw9KIubOh7t8gEoO1D+r//KC+f7KGq4XN5L23yOgx+rXXhdrxNI1DVUpAqzDDuvHBENYTkpt5FVbuTPca8gb8DKv3AOvq3uxpkcCa+Y2FdRzxB69YHM8uL/LKP0JlcgsWEQxBmETjlDCQu1NN8v5F6hjBkY1V9fg707tzg96M6EF9baZgD+8JEOOuUpk6+7o0agJ38pzAp2uZl2zjtCCr2DMh4RWYn08KKBrNbpLWNZDxSNvJStIGl7c/D9Bq58PekrxYA3UJoUk3xpDcpwmdT00B72/roerT+5ftGbo0MAp1mSAEqa05roy02CThzH56dqDLUNT7rO0XA+SsgjeQWckvgPl2wM5E3aMzSguTUq6PcSNCkA23AL27D70S6Yk/52WnL9DPasDhBoIm4xTEdislHhK0nAkmMYzofZT7xQrLjqUVzXuX8kRtgWoDKKHIgBnQ0SogA2xw8QgFO/2obT7PwoQyzk2g2iwLljX0XT1DjzXPa0zqz3pjtAOf4g61QK5chatbu+cA7opSAz1d0BDWrPYYzGy7WugeERYD3kSH5/0SY9vfUKd8iv76e228gvBL+xBq4=", + "type": "googleDocsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleDocs", + "date": "2021-05-11T11:25:24.864Z" + } + ] + }, + { + "createdAt": "2021-05-12T07:04:35.309Z", + "updatedAt": "2021-05-12T07:22:49.204Z", + "id": "173", + "name": "Paddle API sandbox creds", + "data": "U2FsdGVkX1+rZN6JDd2DbWAbiBgbAtT1vMW4p/mzboubKGSXSfpBYao4xG2gAfpHXTI8H/Sldj6bxnH/bvJ7t0mxIJSrmYuHejom6BWr0NDChDZ0Y9QMf2bbsLygJNKVF1j7Jd0u5DljqQrj8g7tYz/rJlbCJLrY4tpfmBc6qTQ=", + "type": "paddleApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.paddle", + "date": "2021-05-12T07:04:35.303Z" + } + ] + }, + { + "createdAt": "2021-05-12T08:27:43.980Z", + "updatedAt": "2021-05-12T08:27:43.980Z", + "id": "174", + "name": "Iterable API creds", + "data": "U2FsdGVkX1+p128UOZNFPiKgBT+0ym+XIQHKsJGkQU2pka0lG3p2i1RFnnuScB03Z7ootwh1owE0l1Dt3eLe+g==", + "type": "iterableApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.iterable", + "date": "2021-05-12T08:27:43.977Z" + } + ] + }, + { + "createdAt": "2021-05-12T08:42:03.059Z", + "updatedAt": "2021-05-12T08:42:03.059Z", + "id": "175", + "name": "Beeminder API creds", + "data": "U2FsdGVkX18vLPz0OwOKJ6aK94NjCU6bGe3ZXP1H/7kw8wfcA/BG2NXVJhpTaDLb8qzmN1ijjHQ91fDgyN/U42j2oYvjQX4uIGqb2q5wR2I=", + "type": "beeminderApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.beeminder", + "date": "2021-05-12T08:42:03.056Z" + } + ] + }, + { + "createdAt": "2021-05-14T09:39:49.819Z", + "updatedAt": "2021-05-14T09:41:10.735Z", + "id": "177", + "name": "Pushover API creds", + "data": "U2FsdGVkX19Vcl9xOMo0dfpIcNBa0y4wEHeGB4Iq0acfEyNYVK76PMLSBn4DKyp5ZzdmIjIyqKik9lxdP+wPDg==", + "type": "pushoverApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.pushover", + "date": "2021-05-14T09:39:49.816Z" + } + ] + }, + { + "createdAt": "2021-05-14T09:53:58.647Z", + "updatedAt": "2021-11-12T12:11:06.896Z", + "id": "178", + "name": "Keap OAuth2 API creds", + "data": "U2FsdGVkX1+NkVLasVH/iMl98lMmeEg/Q0W6kGd92IvPjWjgHPju4aRg8OarC2AuPMzE6sep/kOm7UN4oFr8n/WOLNWRP5Ddnedh7oHaEp0o8dthM7ujNGDNVm9xPWXMpauP2njVksnZu6sPfcLMixE4JwbqpO77qgeM0TMwhSe1PjQ6cbAFftprDgg3XrLaq48P6HX054BZS0pq6zEKOi0LRazhpz2E0zUQujC44CQpwI8GJ5DuXIyxAmnZDa5miadQouMemcE41uLYQhO1hhhzo/FxB4OY6FKNfoIJ04vVhv7vgj4oQvUTNDr9AwMMuzsGoWW5eplS/0r5RbFMN0pymu1fuTemEiW/dz2EPXloU8laFKC8LQfzdTngmTzNo2OHCmAuraSpauMdzQyEfulL5mrKE9ZYnrJ6hVfyhJKFP5wLOUiIOfxuT5AF5bLD+erQ8AqwcmGLBKcib/Z7PoTFan43h9lor5q9Wlzc00lRBFLKmlpAN+jNlI9CUOT0/qC7Iv+pl8uU4EKguC9pQWtfCkkdQi1oyONfxn4bYytOEBBtv638YILEXCZSmOCdjpSksA++WYHw8vXLDQVR1CtjhPbptky79syXxDPJP5slSHl+Ug9cEfHU3i5+cVK3ei1FrQfvfVl9mXiWdvtMEM8qM+siaIpnIaLrPAhme2lGyPw6dABtPIVrsQcvoJcvT4nvwfu4pnYkhbluS74drw==", + "type": "keapOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.keap", + "date": "2021-05-14T09:53:58.645Z" + } + ] + }, + { + "createdAt": "2021-05-14T11:04:21.533Z", + "updatedAt": "2021-05-14T11:10:33.718Z", + "id": "179", + "name": "Header Auth SentryIO", + "data": "U2FsdGVkX19tQuwU/H6CAXmD5MBtBA3MUnCvQGXDMyOCv1wQs/dPKOAml8oa429Di8wjPZNQkN6t9pbprWbmuiUruy76PDIRQBVOcuTj8VlopGRHtx0l3aquHFYVifqLjcwiMh0mQRTwpCRR03MQ8Qys1rYhvrPlrSRwui6RQUg=", + "type": "httpHeaderAuth", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.httpRequest", + "date": "2021-05-14T11:04:21.531Z" + } + ] + }, + { + "createdAt": "2021-05-14T16:24:46.971Z", + "updatedAt": "2021-05-14T16:24:46.971Z", + "id": "180", + "name": "Notion test creds", + "data": "U2FsdGVkX1/T6vi5pJxnkc964CrMX8moS1c4VBMwhtElX6cMgfNa+qCjs8ANhO6fM3DWQIMlR7xm5xKDOwJVi5WyBIhL06mF6FI3Y6O0BWU=", + "type": "notionApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.notion", + "date": "2021-05-14T16:24:46.962Z" + } + ] + }, + { + "createdAt": "2021-05-20T15:41:04.169Z", + "updatedAt": "2021-05-20T15:41:04.169Z", + "id": "183", + "name": "Deepl Free API creds", + "data": "U2FsdGVkX18xDcu7uWvmrhsM6E154fcUJt2sUvitsqGkmIU0/9MHLkQ7vlfPIazmcZ8fTsXgEtgggvWKfox0jOWcBEWtN/9mh+NPVdomHujrFdjuWv3rU3etEdhoZJLb", + "type": "deepLApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.deepL", + "date": "2021-05-20T15:41:04.166Z" + } + ] + }, + { + "createdAt": "2021-05-26T13:08:47.620Z", + "updatedAt": "2021-05-26T13:08:47.620Z", + "id": "184", + "name": "Rocket API creds", + "data": "U2FsdGVkX19lFQGVlDNhMUVmJ75DaD25RiS3AZ/GMAPTMeEeyP0DY2C9WrTmyqPojz/W6tbAAXDOQjJjX1+vJOO2bdStS8is6YWU28uwgy7om4Ah/BBdAsFmG5GcdgnRABnzKOKa911BfpVS0FTMx8UErbSmK8ri/lZH1N7+ZyaKLZBP/aaLgXjAx6Tab3MA", + "type": "rocketchatApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.rocketchat", + "date": "2021-05-26T13:08:47.616Z" + } + ] + }, + { + "createdAt": "2021-05-27T15:04:49.079Z", + "updatedAt": "2021-05-27T15:04:49.079Z", + "id": "185", + "name": "Home Assistant Api creds", + "data": "U2FsdGVkX19SRTFRfGXIbmNPr/231/ZflbW4U24b9PNR/sRnZJrvC/tYT7Y6/NaEjAPEG34tNfI6Er05iEn5HSdV8fURYF2YfV2x+Bi/PCk2G8SmjGNhvAAfn7FLEXa/P5SyfdNVhhYMw93hV2l0HM6ulpaqi3kvdCHVc9WqYmKDT+jfqfiB2QDCRhFEpnHa5DOjpdCo0uA8JjhkMYn7uslT2s2DyGSbqrDOs+MwtFL1yL5PVo2JxaGwbBtjiRg0AEkWGur/3zix5zTAsin+ohzP/t0XBQzuRK7FRfWD6HlXNV7DD5wFr8dJKjcwxxnqrx+h4D/9qyBfqdk4H/zdUg==", + "type": "homeAssistantApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.homeAssistant", + "date": "2021-05-27T15:04:49.072Z" + } + ] + }, + { + "createdAt": "2021-05-31T08:49:12.155Z", + "updatedAt": "2021-05-31T08:49:12.155Z", + "id": "186", + "name": "Uptime Robot API creds", + "data": "U2FsdGVkX1+PwKjMMm2u0e2DI0H14X5nof/91ip7CjYdvk3XZnh/jz7ba2/aG93Jm23BvvkbF90ai3knsj49gg==", + "type": "uptimeRobotApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.uptimeRobot", + "date": "2021-05-31T08:49:12.149Z" + } + ] + }, + { + "createdAt": "2021-05-31T09:22:28.271Z", + "updatedAt": "2021-06-15T15:59:53.419Z", + "id": "187", + "name": "SSH creds", + "data": "U2FsdGVkX1/lBuNcR39kXxNKDkrIC83g0wueSK9p1TudrXGxPitzJ0cx+arrA6SQbnxqOQ8agV/2tImy0NkOorQa2JzZLqULN0l4+rA0fVprv0QjVMLHKuzdLkoQrrLufJ+Ec24L+Dto23QKHrWfeA==", + "type": "sshPassword", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.ssh", + "date": "2021-05-31T09:22:28.265Z" + } + ] + }, + { + "createdAt": "2021-06-02T13:44:52.204Z", + "updatedAt": "2021-06-04T20:52:03.921Z", + "id": "190", + "name": "Microsoft Todo OAuth2 API creds", + "data": "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", + "type": "microsoftTodoOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftTodo", + "date": "2021-06-02T13:44:52.183Z" + } + ] + }, + { + "createdAt": "2021-06-07T07:58:21.050Z", + "updatedAt": "2021-07-12T14:21:08.641Z", + "id": "192", + "name": "Microsoft To Do OAuth2 API creds", + "data": "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", + "type": "microsoftToDoOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.microsoftToDo", + "date": "2021-06-07T07:58:21.028Z" + } + ] + }, + { + "createdAt": "2021-06-07T09:28:51.874Z", + "updatedAt": "2021-06-07T09:28:51.874Z", + "id": "193", + "name": "Git creds", + "data": "U2FsdGVkX1/IIVWsCYtoZ7p4mtRUcAsonMpXURC3t/1X0QXVuHDFO/G213Y22rbgDrpW4lHErYa2qGGN9udgc5HBNoNcH6jWBZ+504s9HF8=", + "type": "gitPassword", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.git", + "date": "2021-06-07T09:28:51.858Z" + } + ] + }, + { + "createdAt": "2021-06-07T14:45:16.621Z", + "updatedAt": "2021-06-07T14:45:16.621Z", + "id": "194", + "name": "MQTT SSL creds", + "data": "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", + "type": "mqtt", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.mqtt", + "date": "2021-06-07T14:45:16.591Z" + } + ] + }, + { + "createdAt": "2021-06-09T08:29:47.063Z", + "updatedAt": "2023-03-06T11:42:50.922Z", + "id": "195", + "name": "Oauth google", + "data": "U2FsdGVkX1/Mc0X3JTx9ez/2SbPS2BGxL4JwA8TgOuHlOjvjQQdgOOhg3pkNsaIA+CGAREXyIpbz5yyCT/ov0Tf45L9G7AAMLNqyDDmd60guHvBTX1qQdOeP1q5YDghzCm5+7PqTfPIoBl/0eGvlsC0HWNhigSxRhVfce2LH0iyxhIZUYB7Yck8mztHusijc60d0BNuA6/b7hazJL/yqFRcCQCbh/qGW6HpyUc+xiyS/Yt7Vssvaq01A4sF7F2u5", + "type": "googleDocsOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleDocs", + "date": "2021-06-09T08:29:47.048Z" + } + ] + }, + { + "createdAt": "2021-06-10T09:30:02.562Z", + "updatedAt": "2021-06-10T09:57:05.941Z", + "id": "196", + "name": "Google API creds", + "data": "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", + "type": "googleApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleDrive", + "date": "2021-06-10T09:30:02.546Z" + }, + { + "nodeType": "n8n-nodes-base.googleBooks", + "date": "2021-06-10T09:36:33.967Z" + }, + { + "nodeType": "n8n-nodes-base.googleSheets", + "date": "2021-06-10T09:36:33.967Z" + }, + { + "nodeType": "n8n-nodes-base.googleSlides", + "date": "2021-06-10T09:36:33.967Z" + }, + { + "nodeType": "n8n-nodes-base.googleTranslate", + "date": "2021-06-10T09:36:33.967Z" + }, + { + "nodeType": "n8n-nodes-base.googleDocs", + "date": "2021-06-10T09:36:33.967Z" + }, + { + "nodeType": "n8n-nodes-base.gmail", + "date": "2021-06-10T09:36:33.967Z" + } + ] + }, + { + "createdAt": "2021-06-10T11:13:54.703Z", + "updatedAt": "2021-06-10T11:13:54.703Z", + "id": "197", + "name": "Wazzup creds", + "data": "U2FsdGVkX1/V+lYhVIpxJKAdbtjAbgUWxRDA21RqHYIZQA2X0vWyQ7gLvuaTInDChmdKKTU6oz8CQYiovBvAws3Kdks5GVPpaGvJnj0N4a8=", + "type": "wazzupApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.wazzup", + "date": "2021-06-10T11:13:54.654Z" + } + ] + }, + { + "createdAt": "2021-06-16T14:50:59.312Z", + "updatedAt": "2021-07-07T15:22:11.746Z", + "id": "198", + "name": "Service Now OAuth2 API", + "data": "U2FsdGVkX18A1rFV+ipWYsfGfllKG2J76l/5EBlzh/9wFdEVWYGEnrwlNwmivXblDY3TaeLDZQ7jn9cWBhEOz23n6c9lbRi23mxBiwTPt6TBz8ujyaRtjNolow4/P6BFppafb2ayEknxRrkpGB37G89acR+ddbMWMa2K7vIuzsdCPpn6crRFJoils0eRXDJnzj0IRlNatksGlI8LhmRFFXtxCrzNEcZiO4cj2IH3vZbzXTE+2CHo8/+IPDohplkp0VM6to0jVW5EvpGGISJAuuOogmYwzIRUoWjCspXqt7eyDVH2YoCRTVWDVgxztHwGgHCHnnbJO/ksS3ElgCUZd/P118h7zGAVEhKu9+D1KKzULRMnd9llYq8dh93a/jRXksXSiCV9Kx8foOXjpRveWuTx+iAcGy8mdrnZVkYjvid6iuTbbrAtToa57IzonzFsHXWcs0S0WRhmzDt5KC7FnQRVcYO2J9qabKFaOgH4ObqM34TNeQTH3rI18bVDwgzWKIL7PGW5dn9ZQ28bf9kQU8JoJtlBUxr+sCS7uiR6M/Hsw0qBwnfyc1Ho/besVrmtv8bffbeYvbQCS2nTuXPxqJkX8oKX93MZvj2ybXI6N/343eWUisvegW7SxPKdxQkPJI2J8vsbG8QWZd3I+Ubi1clX4uARulfeuzXLvCs5KTShvssJgbagP9Sf1Dd9vK19GAUUNzSQ79e+EXec6QJfLQ==", + "type": "serviceNowOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.serviceNow", + "date": "2021-06-16T14:50:59.280Z" + } + ] + }, + { + "createdAt": "2021-06-25T11:10:45.303Z", + "updatedAt": "2021-06-25T11:10:45.303Z", + "id": "201", + "name": "Github HTTPreq creds", + "data": "U2FsdGVkX19Q/HZbu0Xv2aO4XK5Oll/0GPHCxm4fG15rmTB0ULY05HVx7Jvx5okarKKH35cpGoC1aPtb+fSPXCNa6zUZpYbH0TrIs654+BbSp7HKYRFioah/4EUmxSQP8XlBClrgz/bB55EptXwekg==", + "type": "httpHeaderAuth", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.httpRequest", + "date": "2021-06-25T11:10:45.298Z" + } + ] + }, + { + "createdAt": "2021-06-28T13:18:15.532Z", + "updatedAt": "2021-06-28T13:18:15.532Z", + "id": "204", + "name": "Facebook Graph API creds", + "data": "U2FsdGVkX1/WG8FR/tKdm1BVowImxVfuOFxk5Fgb/40AfVh9o73NOgUbruEdXTq8Hnpv/9vGngPOPksmN40/zqrjMAo9vHdU1MTU1LE36ose16QAFlfDulQMRlwzakuw+wpvwjfrzDVYIHhwJP9Hr4hZtIVOz1uesbVWKdh3mx+BqnNFY3KZ0MDdcITrOwQO1mS9IJ3sWi9AjqRKG25/MMaYUEoKmOZ56Cdhhn9WuJDTg+46ZjVU67gfWmbJA4adi1oulaksMlw4UKoWLBovXxy12CrJ2xE5Nlxuz4rK0lbjB3GGCNX6VL/BLfJftO5iqyRClhwtFtjf6qwHKiDbjg==", + "type": "facebookGraphApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.facebookGraphApi", + "date": "2021-06-28T13:18:15.519Z" + } + ] + }, + { + "createdAt": "2021-07-06T11:02:01.098Z", + "updatedAt": "2021-07-08T13:08:48.371Z", + "id": "208", + "name": "Twake API creds", + "data": "U2FsdGVkX18fJ1Lxo94Z8X4fgXyEr3BAX28NaqpdFK0czUM1u0V6LYXdd6rqFE7PGWPrex+qy/u611mBJPMpjryqTkhw5dpS6c7vrRlNP+m40UllwH+UyPMJ4oJvkzV2ZxVJh6jwX4V6r5XmFpOCg8+6U4JHp39ThXlwU4iecu9ydQATOs0hNftYjmDPEaoe4hNqgB0PspxoVJT4REXAcg==", + "type": "twakeCloudApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.twake", + "date": "2021-07-06T11:02:01.088Z" + } + ] + }, + { + "createdAt": "2021-07-06T13:56:38.704Z", + "updatedAt": "2023-03-06T11:43:42.917Z", + "id": "209", + "name": "Google BigQuery OAuth2 API creds", + "data": "U2FsdGVkX1/kMPFA6N8Qd2dHVP3Hc84dX/wYIWkMRR6R0xeEMAe3PEcnzFRn9bzQIByvsHVMhcaem47LjECpiQIkV5Ee8Jd2LbZD73Qufzp3tKdsBwieP6WlP0UL/Qrkz0dws7/LlE0BsVLO4XzlwvMS2qCP/v3NQtNqbvpbvpz5qDMED8FkwKtfPYzs1x5WRiAhhCHac66e+U9BTcxbQHi9s6qzZZkHvO9wnubjNH54vc+ZtFAdmzxJrfFHxlkguF0m9C743E9044Vj+v2dMrW5N82MGQBCUe5h3MJH7IoyY4hji0txJknLuqOJ5QUK+ULQM86F2znYypgDtNsS9WaSARSX/E6Fs0rUipzaubuZo2X/T/nbz+jn0I4IbYM0lY63ntaulZUyyEEqDrw60qv3AEwhA+Jtk5WhuBi6MmTaeFMx6vAIKTgFLyPckqq3Z6kYo39owdYMkdoEAHdhUlMDX2WaxAeXMTrZS8nmnN/zkDYQWEX4DVj6CdURKD9aOwlgZgdB7+rMvr6DPvqhUWhFBQbzAxQT75vKOTaRWKhxykKzFOu+p4T9nsUNGEFgRDsuXgB4O6ufjdiUuiaEdKF6OSzokwhP4fTz5HkSi00I1WV3YC3yzll0tGGfGGaZUdJkt0dn+Ko+h8lLfuHYbj0Adp4TNQ/D23Gwvz+n1OBttnjaT9wcrrVG6tZoyX/S4LQZv/yQHqp6pCQjAAxvybiLKNgvXncYQZdIz/IQ7idp4cvP+d7TbhZMCoGmro/dK+Vx/T+pM2NgCQX/XSNfDq7fx/1Q74hz2Z1qdTNnHOxE5AZhmMJtW0Cn87ZcAZdLxjw+likWq4+opb8RV47k+fGc93gGVYQgbgDKfjPY1GeyzGy2CFlZoajaEd4uUOY45Sw8QtsnN9Yv1L02eqYmAw==", + "type": "googleBigQueryOAuth2Api", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.googleBigQuery", + "date": "2021-07-06T13:56:38.700Z" + } + ] + }, + { + "createdAt": "2021-07-08T14:04:04.717Z", + "updatedAt": "2021-07-08T14:04:04.717Z", + "id": "211", + "name": "Bannerbear API creds", + "data": "U2FsdGVkX19DUobOgTiZB2BNRYe9XfE4cRRrm0jJeH4vpdAIA6Xn1yWx1Srof9jTwVuDwQgygu86BpsDpAikOA==", + "type": "bannerbearApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.bannerbear", + "date": "2021-07-08T14:04:04.713Z" + } + ] + }, + { + "createdAt": "2021-07-08T15:03:50.597Z", + "updatedAt": "2021-07-08T15:03:50.597Z", + "id": "212", + "name": "Automizy API creds", + "data": "U2FsdGVkX1+a4YF8ERm2wQpmFF9zuWqVqcoRxHitUPNwbj04yGayD0/BUAF7C4UF049E9a+vkWKCCU+wPzMNupy+v6T50/t04J5T9X0lk7U=", + "type": "automizyApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.automizy", + "date": "2021-07-08T15:03:50.578Z" + } + ] + }, + { + "createdAt": "2021-07-08T15:56:27.335Z", + "updatedAt": "2021-07-08T15:56:27.335Z", + "id": "213", + "name": "Autopilot API creds", + "data": "U2FsdGVkX1990Zz0289mfOk1s3M8GpfiHEy9YKoQwnShYRqiYSMWnJEu5LFGr7IMciUvkztaubmR0CV6u2Iktw==", + "type": "autopilotApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.autopilot", + "date": "2021-07-08T15:56:27.305Z" + } + ] + }, + { + "createdAt": "2021-07-09T09:25:37.158Z", + "updatedAt": "2021-07-09T09:25:37.158Z", + "id": "214", + "name": "Copper API creds", + "data": "U2FsdGVkX18l89dBvUw37IdZgI4DoqM5IrZELrJN19yyuFJVOJulYwWC3pdJYs+mu5ZQHakW2plT0JPMN5aI0+oI8C1aEOkiwbpxdJYQE0HBU9WYhcxEHauUR8VZsFSr", + "type": "copperApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.copper", + "date": "2021-07-09T09:25:37.137Z" + } + ] + }, + { + "createdAt": "2021-07-09T10:42:39.852Z", + "updatedAt": "2021-07-09T10:42:39.852Z", + "id": "215", + "name": "Lemlist API creds", + "data": "U2FsdGVkX19YK3ou2PHqwk9RvmTvq8SW+IuQUPU9elxpcL1+v7VSCtXCabTO+REWz0AtAzO0Wf+KX3/NHph0GQ==", + "type": "lemlistApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.lemlist", + "date": "2021-07-09T10:42:39.834Z" + } + ] + }, + { + "createdAt": "2021-07-09T11:07:29.231Z", + "updatedAt": "2021-07-09T11:07:29.231Z", + "id": "216", + "name": "LingvaNex API creds", + "data": "U2FsdGVkX18mh/bww6zfE0KPaki4toOG5g2TnxjJziEUuVnYpj+ObrcXE+P2q7+2iSvLhCM21pZpq6/xsfdOOT2MOvxcIUnYnWDupJOv1PRafpZOL3DrOFiRoMUdMTwrgxk9rDT0Pv2kn63IHheCcw==", + "type": "lingvaNexApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.lingvaNex", + "date": "2021-07-09T11:07:29.221Z" + } + ] + }, + { + "createdAt": "2021-07-09T12:21:19.612Z", + "updatedAt": "2021-07-09T12:21:19.612Z", + "id": "217", + "name": "Quick Base API creds", + "data": "U2FsdGVkX1/bmFNHmFEKuJOOrdCy4gBcs41FiU0KeSIZwYcwtTyPH4KjLKqweO0QfuNDv2K41BKrDM7Q9oAs3Tv5Ko/P4l2QtZBYpq8XAwrVP7wUzSkGwwT+7OCbKlnhBo3WBLxfngAj9beW+c90yg==", + "type": "quickbaseApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.quickbase", + "date": "2021-07-09T12:21:19.609Z" + } + ] + }, + { + "createdAt": "2021-07-09T12:55:33.370Z", + "updatedAt": "2021-07-09T12:55:33.370Z", + "id": "218", + "name": "Salesmate API creds", + "data": "U2FsdGVkX1+6pfuX5hgu5NnZwv66rRj2UWXLmjFk4okMMGKTS0Zq5v4KEEuepftiE3NDFtbjAknhWrYiFvKZmGOzD9H/Jqkp9YVul9MIeuT5FPTHFWRw0NP9/ucm0p2W26k1seEXBzw5v5NgiaxvGQ==", + "type": "salesmateApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.salesmate", + "date": "2021-07-09T12:55:33.366Z" + } + ] + }, + { + "createdAt": "2021-07-09T13:37:45.136Z", + "updatedAt": "2021-07-09T13:37:45.136Z", + "id": "219", + "name": "Unleashed API creds", + "data": "U2FsdGVkX1/UWTTmjW5+dEZHIF+vI+/8Z1z6yrVsts5aNRyaAR6zF/jmjTJo5dxXl1Scl0ItuRFq52ZkFpwSS8onxWlh899d/ksRPsuXyUj0g1vZoNhRAlPUAk4uHTKG7CdLbIbR1AnLx7RBZ7BX5CXEaei/260WGBt/k0Apf62O7sR+6aLGEkMJ3HdVodIPbx3xA9vRHvft5DWwPnAeblMuWMNYnPZdm201+pjdqrc=", + "type": "unleashedSoftwareApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.unleashedSoftware", + "date": "2021-07-09T13:37:45.126Z" + } + ] + }, + { + "createdAt": "2021-07-09T13:56:17.513Z", + "updatedAt": "2021-07-09T13:56:17.513Z", + "id": "220", + "name": "Flow API creds", + "data": "U2FsdGVkX1+s012n9S/Ccpyeyjpguajol8ndKHq2fk8+BkMbixDXi+8lijoBFaw+jU9NEigXKBPoyvIvg0xILHYEPN5g4URfbcNkospCZlYCzd5lRvXXrkmdUY+1ldjtzjYFGcFZbQAjzGmHx3Kr+nmDom+9+MZROgJJq2On9oI=", + "type": "flowApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.flow", + "date": "2021-07-09T13:56:17.501Z" + } + ] + }, + { + "createdAt": "2021-07-15T13:53:23.185Z", + "updatedAt": "2021-07-15T13:53:23.185Z", + "id": "221", + "name": "taigaApi", + "data": "U2FsdGVkX194voBZRbkQtyAV6D4Xt5l91TONcpGY2UmJllyCtDzFntUo2jODSyeHjtIHNBh9D4uknbeHfYaGgyFSpuiqNly8hI6s09AZGL8=", + "type": "taigaApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.taiga", + "date": "2021-07-15T13:53:23.176Z" + } + ] + }, + { + "createdAt": "2021-07-29T15:07:56.696Z", + "updatedAt": "2024-01-30T15:16:53.177Z", + "id": "223", + "name": "Spotify OAuth2 creds", + "data": "U2FsdGVkX184CipdIAhmdBl5m+xl1UgWlNQPsCPRgb7EcihBkDWoc5gsRnellNxJUCWhYn0nnIITcr3Dr7V9we5IOhDFKmptRTs5e+DQ6Gn64v+rr2fT7ww9PnjTGL9pAm/mYYyAwazE6FhT6ea4Ne2/K2ISicwx1aBggzHsoe/pTv9kR4iVMznWJzJAQO8KJ3gxxADMTvIYlDhmCO7h9MhbqBXPNrkLre7vEoOhp6ZzhrDqwtFeqEy1lSytV7XQmXgjAC/bpP5+i/YNZBSfKqWCWn3m4Log8LSlpP4C5lW40meo0RRskcZJYAoF52A1ac4Cm5t/I+fbxjsAzPSSIqfSs1C6i8iVmI9FLdaM3d8K4nWh3q0T/7xBgcun08A925ECqF2KvNxqZQJLusrIUoEwjxuCupgGakxMbhXZPXRYzZj/9xOQuQeNeRXkEeZ3qG6WvJlnEfPRAfMjVjNIN5GLORwF1O1advW71UrEffPMSWeN1iPa6vrKErZCMBmU7GY6jSpQXyVSCdB5W0hUkFRDRkP1X4+JmJE6RH4c90pIyaNGdgiDapK/LRs8i/dDReVt+Pb/0XOYcvn9AfGvEnxKjKnj2m0gxiHRu7FiCWrehaYrXtoYhygxLAHG1JlGNQ+vCKLSreplrszOjD6Sik2ltsJVPwrW3Luw8WcdSuGUA+J+NqiNSchm49mXGvTvea/DAgssBQD8xSUbab4SXfIAlOjyFT66UgtRKKP4WHGkXvhQuhI1l+4cx04E3kWO+a/VLUCtBECGGjKGeLcDLLQoyw3hHanYS8fAqeBZQRiOfALQucOWUwDhSp8rtmf+FXBdeqrPGMNVt1qTha23xk0uhKf1looNXocOFrlAtm7pazu66pQrk9gOxLjATieYQvoRpnOURn8e/O2vk6s0X3asHRVtIhVR6kmP0yXK4cfesn1j39J/Fyb+dT//N7RrpAcF5tzcaovZ8jP5FUTUCaKJiKCutEuzhU6uXVnS6tH9UP1FilYn6HKFk/hryyrBmaeBog6XhV1ncVMogXMJFNMsW/RPPzbaJU2qEO9sIPmi1pHKuV/4wCYLtNCwi5+LyeZeND+WmHU8LjqqLvqvNVihbQlDQQ1a22R6rWDqo98PS+nOTyl1hhxcgYwo1kBaza3UlRUBF2PDelWu3HZSWGZpd1ojQpcmK6Y54Wd793rc9TRyLRRDpipkh4Yvm2XJexr/EZ/nLdfbCj9dWaZEKf0apgAQ6aN68/uRSvvfT9jSaic+/AExw86kxtMShH1TBPT1J0KZgAxE3CL8VNoanze9RMmnEy/AjCL7D4IPILZ5OYcsRf37O0um8e6gKXqOo9z/LMPNpz1GEzilH8U1Mwk5QFChK7h8fobLYqYdRliSc43wC7IzaBrSjrNNpYckjvlVIf2cb1eBniG3P+7gBuevtXwX+v405PuCBZoiwSz7w1iOQvZa+5YiejMCySjOhAxe+7o2e69w2IVj3Ua4MRsEIUbIvQmU3d0vzBftcYyCGS3TUcllSBfZXxdkIYs/3r8Jf+8peyQ21LprnZZmPQnHYIDSa9ORb/KqL2Yw+lAUC0wSEof6k6IdlM/GyUupdowSjARTC+9z9ZTyXBA+z8COSJwgDlcoy3lXjXEcIHRKqZyqv8Ogb7kcKr2KtSTfeEDedm06/bEx8EWn/MGwdk784HiYjwCYFIwA9eq/OUbvDyAoIZFmNeVCzedCHa5cvzVVjiU5f+7U/n7W0oLdkdRwXtp8ney3oY9iK0i/tw6duUUOE1+VrFjeGRQLzu284Dz2N7s/J7pM7a+XmMu++A==", + "type": "spotifyOAuth2Api", + "nodesAccess": [] + }, + { + "createdAt": "2023-11-14T14:06:37.142Z", + "updatedAt": "2023-11-14T14:06:37.135Z", + "id": "q80wx3kiggmjWdY9", + "name": "VirusTotal account", + "data": "U2FsdGVkX19YzDZdkttgnMSwQaHslQJ/df+UymDyoElout2KYb4Ze5Mr8W8vyWA9oM3jSc110zApTlvOaCe4H883SXgDBvugTvyHCclweEevR78xACzsoGHhS0t0YRcqKiag3BteYgeG9KspdBeVCA==", + "type": "virusTotalApi", + "nodesAccess": [] + }, + { + "createdAt": "2024-03-04T15:51:12.065Z", + "updatedAt": "2024-03-04T15:51:12.056Z", + "id": "wd646B2kD0zzQHC3", + "name": "CohereApi account", + "data": "U2FsdGVkX1+e/SwD3hZJTTggN8oHic/eaqs0GnrjpVoisY4MilixmCGSBvWHESRgvOKXCmpsohpPqEeyJ6ioY42jm9c72rjaLM2oiMoHTCY=", + "type": "cohereApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.embeddingsCohere", + "date": "2024-03-04T15:51:12.055Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.lmCohere", + "date": "2024-03-04T15:51:12.055Z" + } + ] + }, + { + "createdAt": "2024-03-04T16:05:06.082Z", + "updatedAt": "2024-03-04T16:05:06.080Z", + "id": "RNAgogiex4JxTr44", + "name": "Azure Open AI account", + "data": "U2FsdGVkX19Q3gtwA9Nt1YBIdkH5c+OI7X/A2iWsNJXYnagrLOooC/UZI0ZCBpPlYDHHa49T5xbWraJ/kwpVy7E0+OZWwb7sZ7xcKa+618BMLdaJQyn4fqTmz+CfXRFB", + "type": "azureOpenAiApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi", + "date": "2024-03-04T16:05:06.080Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi", + "date": "2024-03-04T16:05:06.080Z" + } + ] + }, + { + "createdAt": "2024-03-04T16:13:11.535Z", + "updatedAt": "2024-03-04T16:13:11.533Z", + "id": "Rl7R5orXMm9FvxZS", + "name": "Mistral Cloud account", + "data": "U2FsdGVkX18K/8KeCsjvuxU95AF9Cyy2yaOFG0JW6hvZB3YUfVQ1bOEro8sNAFGo7h3brCwBDCfz/JLmXNWs9A==", + "type": "mistralCloudApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.embeddingsMistralCloud", + "date": "2024-03-04T16:13:11.533Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.lmChatMistralCloud", + "date": "2024-03-04T16:13:11.533Z" + } + ] + }, + { + "createdAt": "2024-03-04T16:13:58.488Z", + "updatedAt": "2024-03-04T16:13:58.486Z", + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account", + "data": "U2FsdGVkX195mafxGwDW3DcL8Kkn5ME4KGNGUU34IbAdBul7UJ+XXh2bVkZzD+cCvnX6Mbh1qNhP1TynynqgCrfzhn0mDHdRyJ5koVBdJaOsOQ72ItjBbS08JDmAExSR", + "type": "openAiApi", + "nodesAccess": [ + { + "nodeType": "n8n-nodes-base.openAi", + "date": "2024-03-04T16:13:58.485Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.openAi", + "date": "2024-03-04T16:13:58.485Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.openAiAssistant", + "date": "2024-03-04T16:13:58.485Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "date": "2024-03-04T16:13:58.485Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "date": "2024-03-04T16:13:58.485Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.lmOpenAi", + "date": "2024-03-04T16:13:58.485Z" + } + ] + }, + { + "createdAt": "2024-03-04T16:54:42.832Z", + "updatedAt": "2024-03-04T16:54:42.825Z", + "id": "Ohl5AdteUC94gDYj", + "name": "QdrantApi account", + "data": "U2FsdGVkX1+FU6GWIVYq7ZrHXIwHRkf+0tRLQBoPbEfjpaPmbKq6mFH8g4qOh9kYvmO/LijqrYmxTcW+RL1UV5NJgtAMAU50POrgUcC1Gk50gzXoO+DFS3kt6FQLb+a82ovGtB+UBqYj6xplZNLXJl6sS2MKt+zJ7ehgjt3TPlxLbCjwA2ByS68k86rOhCFRfpIyvX3lkaAfw/CtIpSUD32CgIY3bTbABO40aZqDEzE=", + "type": "qdrantApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", + "date": "2024-03-04T16:54:42.824Z" + } + ] + }, + { + "createdAt": "2024-03-04T16:58:05.121Z", + "updatedAt": "2024-03-04T16:58:05.119Z", + "id": "IoeAsZR3eD1OS0oY", + "name": "PineconeApi account", + "data": "U2FsdGVkX19cylSnz+B0slgUyHRFO8DR/XbCXcs7O2lSTJd9sXSt2KWwTtWJni0xdJUlH2ii2jk3MyxKWuY+ltZw2/oCdFIT3qy8EGI2ujHgaC3JGJPr344LGa19LiUE", + "type": "pineconeApi", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePinecone", + "date": "2024-03-04T16:58:05.119Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePineconeInsert", + "date": "2024-03-04T16:58:05.119Z" + }, + { + "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePineconeLoad", + "date": "2024-03-04T16:58:05.119Z" + } + ] + }, + { + "createdAt": "2024-08-29T09:12:15.992Z", + "updatedAt": "2024-08-29T09:12:15.988Z", + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account", + "data": "U2FsdGVkX1+e3a7wKZrdar8jkTor3wRQjSfAGyd8i2yoXHRvcGUhx+dIzZDPfNXHbSUUi0lcYIdIicMPJfDdZ2UXpeqjm2qQAyE86jAeTqgUE/KFUxHH3ULtAGqEbxM5WZ0K1qL1HJUuIaTRK0/NrA==", + "type": "postgres", + "nodesAccess": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "date": "2024-08-29T11:26:05.119Z" + } + ] + } +] diff --git a/packages/testing/playwright/test-workflows/setup-workflow-tests.ts b/packages/testing/playwright/test-workflows/setup-workflow-tests.ts new file mode 100644 index 0000000000..57893394ee --- /dev/null +++ b/packages/testing/playwright/test-workflows/setup-workflow-tests.ts @@ -0,0 +1,114 @@ +import { execFile } from 'child_process'; +import { promises as fsPromises } from 'fs'; +import path from 'path'; +import { promisify } from 'util'; + +// Only run the file once, so we don't run it multiple times +const execFileAsync = promisify(execFile); + +const CREDENTIALS_FILE_NAME = 'credentials.json'; +const WORKFLOWS_DIR_NAME = 'workflows'; + +const ASSETS_SOURCE_PATH = path.join(__dirname, '../../../../assets'); +const PDF_SOURCE_DIR = path.join(__dirname, 'testData', 'pdfs'); + +const BASE_TMP_DIR = '/tmp'; +const TMP_PDF_DEST_DIR = path.join(BASE_TMP_DIR, 'testData', 'pdfs'); + +/** + * Executes an n8n CLI command, providing robust error handling and logging. + * @param command The n8n CLI subcommand (e.g., 'import:credentials'). + * @param args Arguments specific to the subcommand. + * @param options Options for `child_process.execFile`. `cwd` is typically required. + * @returns A promise that resolves with the stdout of the command, or rejects on error. + */ +async function runN8nCliCommand(command: string, args: string[], options: { cwd: string }) { + const n8nExecutablePath = '../../../cli/bin/n8n'; + console.log(`Executing n8n command: n8n ${command} ${args.join(' ')}`); + await execFileAsync(n8nExecutablePath, [command, ...args], options); +} + +/** + * Recursively copies files and directories from a source path to a destination path. + * If the source is a directory, it creates the destination directory and copies its contents. + * If the source is a file, it copies the file. + * Handles cases where the source path does not exist gracefully. + * @param sourcePath The path to the source file or directory. + * @param destinationPath The path where the file(s) or directory should be copied. + */ +async function copyAsset(sourcePath: string, destinationPath: string): Promise { + try { + const stats = await fsPromises.stat(sourcePath); + + if (stats.isDirectory()) { + await fsPromises.mkdir(destinationPath, { recursive: true }); + const items = await fsPromises.readdir(sourcePath); + await Promise.all( + items.map((item) => + copyAsset(path.join(sourcePath, item), path.join(destinationPath, item)), + ), + ); + console.log(`📁 Directory copied: ${sourcePath} to ${destinationPath}`); + } else if (stats.isFile()) { + await fsPromises.copyFile(sourcePath, destinationPath); + console.log(`📄 File copied: ${sourcePath} to ${destinationPath}`); + } + } catch (error: unknown) { + if (error instanceof Error && 'code' in error && error.code === 'ENOENT') { + console.warn(`⚠️ Warning: Source asset not found at ${sourcePath}. Skipping copy.`); + } else { + console.error( + `❌ Error copying asset from ${sourcePath} to ${destinationPath}: ${error instanceof Error ? error.message : String(error)}`, + ); + throw error; + } + } +} + +/** + * Sets up the n8n test environment by importing credentials and workflows, + * and copying necessary test data/assets. + * This function is designed to be used as a global setup hook in testing frameworks. + */ +export async function globalWorkflowSetup(): Promise { + console.log('\n--- 🚀 Starting n8n workflow test environment setup ---\n'); + + try { + console.log('📥 Importing test credentials...'); + await runN8nCliCommand('import:credentials', ['--input', CREDENTIALS_FILE_NAME], { + cwd: __dirname, + }); + + console.log('📥 Importing test workflows...'); + await runN8nCliCommand('import:workflow', ['--separate', '--input', WORKFLOWS_DIR_NAME], { + cwd: __dirname, + }); + + console.log('📁 Copying test assets...'); + + await fsPromises.mkdir(BASE_TMP_DIR, { recursive: true }); + + await copyAsset( + path.join(ASSETS_SOURCE_PATH, 'n8n-logo.png'), + path.join(BASE_TMP_DIR, 'n8n-logo.png'), + ); + await copyAsset( + path.join(ASSETS_SOURCE_PATH, 'n8n-screenshot.png'), + path.join(BASE_TMP_DIR, 'n8n-screenshot.png'), + ); + + await copyAsset(PDF_SOURCE_DIR, TMP_PDF_DEST_DIR); + + console.log('\n--- ✅ n8n workflow test environment setup complete! ---\n'); + } catch (error: unknown) { + console.error('\n--- ❌ n8n workflow test environment setup failed! ---\n', error); + process.exit(1); + } +} + +if (require.main === module) { + globalWorkflowSetup().catch((error) => { + console.error('Setup failed:', error); + process.exit(1); + }); +} diff --git a/test-workflows/testData/pdfs/04-valid.pdf b/packages/testing/playwright/test-workflows/testData/pdfs/04-valid.pdf similarity index 100% rename from test-workflows/testData/pdfs/04-valid.pdf rename to packages/testing/playwright/test-workflows/testData/pdfs/04-valid.pdf diff --git a/test-workflows/testData/pdfs/05-versions-space.pdf b/packages/testing/playwright/test-workflows/testData/pdfs/05-versions-space.pdf similarity index 100% rename from test-workflows/testData/pdfs/05-versions-space.pdf rename to packages/testing/playwright/test-workflows/testData/pdfs/05-versions-space.pdf diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts new file mode 100644 index 0000000000..3e5cb2599f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts @@ -0,0 +1,142 @@ +/* eslint-disable playwright/no-conditional-expect */ +/* eslint-disable playwright/no-conditional-in-test */ +import { test, expect } from '@playwright/test'; +import { execSync } from 'child_process'; +import * as fs from 'fs'; +// @ts-expect-error - 'generate-schema' is not typed, so we ignore the TS error. +import GenerateSchema from 'generate-schema'; +import * as path from 'path'; + +// --- Configuration --- +const IGNORE_SKIPLIST = process.env.IGNORE_SKIPLIST === 'true'; +const SCHEMA_MODE = process.env.SCHEMA === 'true'; +const WORKFLOWS_DIR = path.join(__dirname, '../test-workflows/workflows'); +const WORKFLOW_CONFIG_PATH = path.join(__dirname, 'workflowConfig.json'); + +interface Workflow { + id: string; + name: string; + status: 'SKIPPED' | 'ACTIVE'; + enableSchemaValidation: boolean; +} + +interface WorkflowConfigItem { + workflowId: string; + status: 'SKIPPED' | 'ACTIVE'; + enableSchemaValidation?: boolean; +} + +interface ExecutionResult { + success: boolean; + data: unknown; + error?: string; +} + +// --- Helper Functions --- + +/** + * Loads and merges workflow files with their configurations from `workflowConfig.json`. + * @returns An array of workflow objects ready for testing. + */ +function loadWorkflows(): Workflow[] { + if (!fs.existsSync(WORKFLOWS_DIR)) return []; + + const configs = new Map(); + if (fs.existsSync(WORKFLOW_CONFIG_PATH)) { + const rawConfigs: WorkflowConfigItem[] = JSON.parse( + fs.readFileSync(WORKFLOW_CONFIG_PATH, 'utf-8'), + ); + rawConfigs.forEach((c) => configs.set(c.workflowId, c)); + } + + return fs + .readdirSync(WORKFLOWS_DIR) + .filter((file) => file.endsWith('.json')) + .map((file) => { + const id = path.basename(file, '.json'); + const content = JSON.parse(fs.readFileSync(path.join(WORKFLOWS_DIR, file), 'utf-8')); + const config = configs.get(id); + + return { + id, + name: content.name ?? `Workflow ${id}`, + status: config?.status ?? 'ACTIVE', + enableSchemaValidation: config?.enableSchemaValidation ?? true, + }; + }); +} + +/** + * Executes a workflow via the CLI and captures the structured output or error. + * @param workflowId - The ID of the workflow to execute. + * @returns An object containing the execution status, data, and any errors. + */ +function executeWorkflow(workflowId: string): ExecutionResult { + const command = `../../cli/bin/n8n execute --id="${workflowId}"`; + const options = { + encoding: 'utf-8' as const, + maxBuffer: 10 * 1024 * 1024, + env: { ...process.env, SKIP_STATISTICS_EVENTS: 'true' }, + }; + const divider = '===================================='; + + try { + const stdout = execSync(command, options); + const dividerIndex = stdout.indexOf(divider); + + if (dividerIndex === -1) { + // Handles cases where execution finishes but may not produce structured JSON output. + return { success: stdout.includes('Execution was successful'), data: null }; + } + + const jsonData = stdout.substring(dividerIndex + divider.length); + return { success: true, data: JSON.parse(jsonData) }; + } catch (error: unknown) { + let stdout = ''; + + if (error && typeof error === 'object' && 'stdout' in error) { + stdout = (error as { stdout?: string }).stdout ?? ''; + } + const dividerIndex = stdout.indexOf(divider); + + // Try to parse specific error details from stdout if the divider is present. + if (dividerIndex !== -1) { + const errorDetails = stdout.substring(dividerIndex + divider.length).trim(); + return { success: false, data: null, error: errorDetails }; + } + + // Fallback to the generic error message from the caught exception. + return { success: false, data: null, error: stdout }; + } +} + +// --- Test Suite --- +test.describe('Workflow Tests', () => { + const workflows = loadWorkflows(); + + for (const workflow of workflows) { + test(`${workflow.name} (ID: ${workflow.id})`, ({}, testInfo) => { + // Conditionally skip the test based on its status in the config file. + // This can be overridden by setting the IGNORE_SKIPLIST environment variable. + // eslint-disable-next-line playwright/no-skipped-test + test.skip( + workflow.status === 'SKIPPED' && !IGNORE_SKIPLIST, + 'Workflow is marked as SKIPPED in workflowConfig.json', + ); + // Standardize snapshot names to be consistent across different operating systems. + testInfo.snapshotSuffix = ''; + + const result = executeWorkflow(workflow.id); + + expect(result.success, `Workflow execution failed: ${result.error}`).toBe(true); + + // Optionally, validate the output against a JSON schema snapshot if enabled. + if (SCHEMA_MODE && result.data && workflow.enableSchemaValidation) { + const schema = GenerateSchema.json(result.data); + expect(JSON.stringify(schema, null, 2)).toMatchSnapshot( + `workflow-${workflow.id}-schema.snap`, + ); + } + }); + } +}); diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap new file mode 100644 index 0000000000..be908fdf00 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Rename Keys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap new file mode 100644 index 0000000000..58ef1a1141 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Execute Command": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Read Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Execute Command1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap new file mode 100644 index 0000000000..037a1547f1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Write Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Read Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap new file mode 100644 index 0000000000..f457dd4147 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap @@ -0,0 +1,1796 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap new file mode 100644 index 0000000000..5d4fe9557e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap @@ -0,0 +1,521 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "CustomerIo4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap new file mode 100644 index 0000000000..b383fb1813 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap @@ -0,0 +1,705 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailchimp11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap new file mode 100644 index 0000000000..11fc242842 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "GraphQL": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap new file mode 100644 index 0000000000..477b1ee82b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spreadsheet File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spreadsheet File1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap new file mode 100644 index 0000000000..532814aec2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap @@ -0,0 +1,938 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Monday.com3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap new file mode 100644 index 0000000000..61f8d3c860 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mandrill": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mandrill1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap new file mode 100644 index 0000000000..1a27ba3279 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twilio": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap new file mode 100644 index 0000000000..31120fd3e2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap @@ -0,0 +1,567 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Shopify4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap new file mode 100644 index 0000000000..38b78f7a52 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mailgun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap new file mode 100644 index 0000000000..ecc403f73d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "APITemplate.io": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "APITemplate.io1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "APITemplate.io2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap new file mode 100644 index 0000000000..1880a3e674 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap @@ -0,0 +1,705 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Raindrop5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap new file mode 100644 index 0000000000..d501e44a61 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "DeepL": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap new file mode 100644 index 0000000000..b1fe5448f9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap @@ -0,0 +1,935 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Read Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 seconds4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Dropbox11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap new file mode 100644 index 0000000000..a23de96546 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PostHog": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PostHog1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PostHog2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PostHog3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PostHog4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap new file mode 100644 index 0000000000..d24d5313c8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Comprehend": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Comprehend1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Comprehend2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap new file mode 100644 index 0000000000..febd9fb15c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Lambda": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Lambda1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap new file mode 100644 index 0000000000..6c20554ee0 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Rekognition": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap new file mode 100644 index 0000000000..75f2a75109 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap @@ -0,0 +1,797 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS S31": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap new file mode 100644 index 0000000000..55d8a860f8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS SNS": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap new file mode 100644 index 0000000000..b0d41bafcb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenWeatherMap": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenWeatherMap1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap new file mode 100644 index 0000000000..6379a1cf74 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vonage": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap new file mode 100644 index 0000000000..60acc1c9ce --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS SQS1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS SQS": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap new file mode 100644 index 0000000000..2e09265229 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap @@ -0,0 +1,1303 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.8 second8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ClickUp13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap new file mode 100644 index 0000000000..d20a68ae75 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap @@ -0,0 +1,797 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Intercom4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap new file mode 100644 index 0000000000..a10c0d990d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenThesaurus": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap new file mode 100644 index 0000000000..2b410cc35a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PayPal": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PayPal1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PayPal2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "PayPal3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap new file mode 100644 index 0000000000..792e5a0f28 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap @@ -0,0 +1,521 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set id & email": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vero6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap new file mode 100644 index 0000000000..a471e85376 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Webflow": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Webflow1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Webflow2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Webflow3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Webflow4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap new file mode 100644 index 0000000000..3275c0f372 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap @@ -0,0 +1,1487 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Move Binary Data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap new file mode 100644 index 0000000000..d9df35b472 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap @@ -0,0 +1,1533 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce20": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce21": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce22": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap new file mode 100644 index 0000000000..da9a102e5c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap @@ -0,0 +1,1027 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 0.5 second2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Salesforce6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap new file mode 100644 index 0000000000..ea100326de --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap @@ -0,0 +1,981 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io22": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io20": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io21": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sentry.io23": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-195-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-195-schema-mode-workflows.snap new file mode 100644 index 0000000000..d33ca68880 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-195-schema-mode-workflows.snap @@ -0,0 +1,429 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Kitemaker6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap new file mode 100644 index 0000000000..ad0bd1ebe8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Beeminder": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Beeminder1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Beeminder2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Beeminder4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Beeminder3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap new file mode 100644 index 0000000000..1ccf18a533 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap @@ -0,0 +1,475 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Paddle7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap new file mode 100644 index 0000000000..04c8ac70d2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap @@ -0,0 +1,153 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Pushover": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap new file mode 100644 index 0000000000..e76af66221 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap @@ -0,0 +1,383 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set job name": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Transcribe": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Transcribe1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Transcribe2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Sleep 30 seconds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Transcribe3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap new file mode 100644 index 0000000000..546efb9cad --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap @@ -0,0 +1,843 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Delete existing dir": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Add file to dir": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Git13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap new file mode 100644 index 0000000000..1359e63a26 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Handle JSON data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Handle Binary data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Handle Static data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap new file mode 100644 index 0000000000..5df82b127c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap @@ -0,0 +1,1027 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap new file mode 100644 index 0000000000..ea460eb0bb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap @@ -0,0 +1,163 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Execute Workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "VirusTotal HTTP Request": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap new file mode 100644 index 0000000000..daf1177f17 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap @@ -0,0 +1,294 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Invalid Host header": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Internal SSL Error?": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Success": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeOutput": { + "type": "number" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Cross Domain Redirect": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap new file mode 100644 index 0000000000..1987ad60c8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Mistral Cloud Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Mistral Cloud Chat": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Mistral Cloud Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap new file mode 100644 index 0000000000..690d0e1759 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap @@ -0,0 +1,496 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Article": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Summary - Simple - Map": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Evaluate to Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap new file mode 100644 index 0000000000..a9ae7b6d90 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap @@ -0,0 +1,567 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Article": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Convert to File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Summary - Simple - Map - Binary": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Evaluate to Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap new file mode 100644 index 0000000000..09db7a064c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Azure OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Azure OpenAI Chat": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Azure OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap new file mode 100644 index 0000000000..19135a42bc --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Open AI Instruct": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap new file mode 100644 index 0000000000..3fdd44f8c8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap @@ -0,0 +1,398 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Calculator3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "AI Agent3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Calculator3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap new file mode 100644 index 0000000000..7958a04a02 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap @@ -0,0 +1,521 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Article": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Summary - Simple - Refine": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Evaluate to Baseline4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap new file mode 100644 index 0000000000..05e2999e20 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap @@ -0,0 +1,419 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Calculator": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Calculator": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap new file mode 100644 index 0000000000..3de0c555d9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap @@ -0,0 +1,348 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Open AI Chat - Output Parsing": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap new file mode 100644 index 0000000000..506fae0c25 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap @@ -0,0 +1,419 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Calculator2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Calculator2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap new file mode 100644 index 0000000000..adad09ea01 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap @@ -0,0 +1,538 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap new file mode 100644 index 0000000000..a58f24c1a1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AWS Bedrock Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AWS Bedrock Chat": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "AWS Bedrock Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap new file mode 100644 index 0000000000..d40b68a2ec --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Open AI Chat": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap new file mode 100644 index 0000000000..9ed93c2029 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap @@ -0,0 +1,593 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Article": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Token Splitter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Summary - Advanced": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Evaluate to Baseline3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Token Splitter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap new file mode 100644 index 0000000000..3155a0f0a8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap @@ -0,0 +1,1262 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Code": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Default Data Loader2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Token Splitter2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Embeddings OpenAI6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "In-Memory Vector Store": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Check Vector Store Populated2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Wait": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Embeddings OpenAI8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "In-Memory Vector Store1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Check Vector Store Retrieval2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vector Store Retriever2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_retriever": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_retriever": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "In-Memory Vector Store2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Embeddings OpenAI7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Question and Answer Chain2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Token Splitter2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Default Data Loader2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "In-Memory Vector Store2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Vector Store Retriever2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap new file mode 100644 index 0000000000..a14c2a0137 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap @@ -0,0 +1,496 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set Article": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Summary - Simple - Stuff": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Evaluate to Baseline": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap new file mode 100644 index 0000000000..adc8f7c91f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap @@ -0,0 +1,736 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Code": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Default Data Loader": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Token Splitter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Embeddings OpenAI": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Pinecone Vector Store": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Check Vector Store Populated": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Wait": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Embeddings OpenAI10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Pinecone Vector Store1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Token Splitter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Default Data Loader": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap new file mode 100644 index 0000000000..c7fefdec2c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap @@ -0,0 +1,373 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Calculator1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Calculator1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap new file mode 100644 index 0000000000..bda6a10cba --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap @@ -0,0 +1,2108 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Window Buffer Memory1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "OpenAI Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "AI Agent5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AI Agent3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "HTTP Request": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Code Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Search Wiki": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Window Buffer Memory1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "HTTP Request": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Code Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Search Wiki": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap new file mode 100644 index 0000000000..d87896fe81 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap @@ -0,0 +1,2083 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Window Buffer Memory1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Anthropic Chat Model5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "AI Agent5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AI Agent3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Anthropic Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "HTTP Request": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Anthropic Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Code Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Anthropic Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Search Wiki": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Anthropic Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subExecution": { + "type": "object", + "properties": { + "executionId": { + "type": "string" + }, + "workflowId": { + "type": "string" + } + } + }, + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Window Buffer Memory1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Anthropic Chat Model5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Structured Output Parser1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Anthropic Chat Model4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "HTTP Request": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Anthropic Chat Model3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Code Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Anthropic Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Search Wiki": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Anthropic Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Get Weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Get Events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap new file mode 100644 index 0000000000..0bc2e6dad4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap @@ -0,0 +1,272 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking ‘Test workflow’": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "context": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "Basic LLM Chain": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap new file mode 100644 index 0000000000..e234458b42 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap @@ -0,0 +1,706 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking ‘Test workflow’": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Vector Store Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_tool": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "context": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "In-Memory Vector Store": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Embeddings OpenAI": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "context": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Embeddings OpenAI": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "In-Memory Vector Store": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Vector Store Tool": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap new file mode 100644 index 0000000000..b3b47f800c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap @@ -0,0 +1,688 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Simple Memory": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Anthropic Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Auto-fixing Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AI Agent1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Simple Memory": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Anthropic Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Auto-fixing Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap new file mode 100644 index 0000000000..951471644e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap @@ -0,0 +1,810 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Simple Memory": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_memory": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Auto-fixing Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_outputParser": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + }, + "error": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "context": { + "type": "object", + "properties": { + "outputParserFailReason": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "AI Agent": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "AI Agent1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Simple Memory": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Structured Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Auto-fixing Output Parser": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap new file mode 100644 index 0000000000..3dc6cd702c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap @@ -0,0 +1,1268 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "When clicking \"Test workflow\"": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Code": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "location": { + "type": "string" + } + } + } + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Default Data Loader2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_document": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Token Splitter2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_textSplitter": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "Embeddings OpenAI6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + } + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "In-Memory Vector Store": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Check Vector Store Populated2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Vector Store Retriever2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_retriever": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_retriever": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "In-Memory Vector Store2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_vectorStore": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Embeddings OpenAI7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_embedding": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + }, + "previousNodeRun": { + "type": "number" + } + }, + "required": [ + "previousNode", + "previousNodeRun" + ] + } + }, + "data": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "inputOverride": { + "type": "object", + "properties": { + "ai_languageModel": { + "type": "array", + "items": { + "type": "array" + } + } + } + }, + "metadata": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + } + } + }, + "required": [ + "startTime", + "executionTime", + "executionIndex", + "executionStatus", + "source", + "data", + "inputOverride", + "metadata" + ] + } + }, + "Question and Answer Chain 1.3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Question and Answer Chain 1.4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Question and Answer Chain 1.5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Edit Fields2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": { + "Token Splitter2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Default Data Loader2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + } + } + } + } + } + }, + "Embeddings OpenAI7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "In-Memory Vector Store2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "Vector Store Retriever2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + }, + "OpenAI Chat Model2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subRun": { + "type": "array", + "items": { + "type": "object", + "properties": { + "node": { + "type": "string" + }, + "runIndex": { + "type": "number" + } + }, + "required": [ + "node", + "runIndex" + ] + } + } + }, + "required": [ + "subRun" + ] + } + } + } + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap new file mode 100644 index 0000000000..469762f66f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Drift ": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Drift 1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Drift 2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Drift 3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap new file mode 100644 index 0000000000..d19c6f1deb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap @@ -0,0 +1,429 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Strava2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap new file mode 100644 index 0000000000..c0d73ec413 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap @@ -0,0 +1,659 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack24": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack25": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack20": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap new file mode 100644 index 0000000000..e09698cc92 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap @@ -0,0 +1,1073 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack24": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack21": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack22": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack23": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Slack1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap new file mode 100644 index 0000000000..e2a3d88a1f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap @@ -0,0 +1,705 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Gitlab12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap new file mode 100644 index 0000000000..e6b9e4486b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap @@ -0,0 +1,613 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Google Drive9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap new file mode 100644 index 0000000000..6313615116 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap @@ -0,0 +1,935 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Asana7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap new file mode 100644 index 0000000000..e2f85de902 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Bitly": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Bitly1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Bitly2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap new file mode 100644 index 0000000000..aea61811a6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hacker News": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hacker News1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hacker News2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap new file mode 100644 index 0000000000..d552781a02 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Brandfetch": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Brandfetch1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Brandfetch2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Brandfetch4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Brandfetch3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap new file mode 100644 index 0000000000..364d80f605 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap @@ -0,0 +1,935 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Coda9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap new file mode 100644 index 0000000000..5a1aa77bfc --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap @@ -0,0 +1,659 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ConvertKit6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap new file mode 100644 index 0000000000..cbc8034fb8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hunter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hunter1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Hunter2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap new file mode 100644 index 0000000000..974be736be --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap @@ -0,0 +1,383 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Todoist4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap new file mode 100644 index 0000000000..604677e775 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Write Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap new file mode 100644 index 0000000000..85d193aac8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap @@ -0,0 +1,337 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Taiga": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Taiga1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Taiga2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Taiga3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Taiga4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap new file mode 100644 index 0000000000..ffa22880aa --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap @@ -0,0 +1,889 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Spotify7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap new file mode 100644 index 0000000000..e1534cdc9f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ProfitWell": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ProfitWell1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "ProfitWell2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap new file mode 100644 index 0000000000..8909af0eba --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Segment": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Segment1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Segment3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Segment2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap new file mode 100644 index 0000000000..7379a4905c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap @@ -0,0 +1,1165 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist18": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist19": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist20": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist21": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist22": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist17": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Twist8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap new file mode 100644 index 0000000000..ed2f1ceb0e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap @@ -0,0 +1,429 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap new file mode 100644 index 0000000000..6b92b97e24 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap @@ -0,0 +1,429 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Contentful3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap new file mode 100644 index 0000000000..8cfc572bb4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap @@ -0,0 +1,935 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Read Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Zulip5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap new file mode 100644 index 0000000000..2f6da2b09b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Phantombuster": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Phantombuster1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Phantombuster2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Phantombuster3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap new file mode 100644 index 0000000000..05d05d0554 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "RSS Feed Read": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap new file mode 100644 index 0000000000..8ad088b968 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap @@ -0,0 +1,662 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Read Binary File": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix8": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix9": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Merge": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + }, + "required": [ + "previousNode" + ] + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Matrix4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap new file mode 100644 index 0000000000..743ce1971e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap @@ -0,0 +1,429 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Date & Time5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap new file mode 100644 index 0000000000..ba3de47923 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap @@ -0,0 +1,383 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "FunctionItem": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "HTML Extract": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Move Binary Data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "HTML Extract1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap new file mode 100644 index 0000000000..dbecdf725f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "FunctionItem": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Move Binary Data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Move Binary Data1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap new file mode 100644 index 0000000000..37d2cf2077 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Set": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap new file mode 100644 index 0000000000..d645531a4d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap @@ -0,0 +1,199 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "MessageBird": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "MessageBird1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap new file mode 100644 index 0000000000..e1b349e4c3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap @@ -0,0 +1,935 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto0": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto4": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto10": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto5": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto11": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto6": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto12": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto7": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto13": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto14": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto15": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Crypto16": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Function2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap new file mode 100644 index 0000000000..9db9b580ce --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap @@ -0,0 +1,291 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "startData": { + "type": "object", + "properties": {} + }, + "resultData": { + "type": "object", + "properties": { + "runData": { + "type": "object", + "properties": { + "Start": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": {} + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Disqus": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Disqus1": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Disqus2": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + }, + "Disqus3": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startTime": { + "type": "number" + }, + "executionIndex": { + "type": "number" + }, + "source": { + "type": "array", + "items": { + "type": "object", + "properties": { + "previousNode": { + "type": "string" + } + } + } + }, + "hints": { + "type": "array", + "items": {} + }, + "executionTime": { + "type": "number" + }, + "executionStatus": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "main": { + "type": "array", + "items": { + "type": "array" + } + } + } + } + } + } + } + } + }, + "lastNodeExecuted": { + "type": "string" + } + } + }, + "executionData": { + "type": "object", + "properties": { + "contextData": { + "type": "object", + "properties": {} + }, + "nodeExecutionStack": { + "type": "array", + "items": {} + }, + "metadata": { + "type": "object", + "properties": {} + }, + "waitingExecution": { + "type": "object", + "properties": {} + }, + "waitingExecutionSource": { + "type": "object", + "properties": {} + } + } + } + } + }, + "mode": { + "type": "string" + }, + "startedAt": { + "type": "string" + }, + "stoppedAt": { + "type": "string" + }, + "status": { + "type": "string" + }, + "finished": { + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/packages/testing/playwright/test-workflows/workflowConfig.json b/packages/testing/playwright/test-workflows/workflowConfig.json new file mode 100644 index 0000000000..52f6918f5d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflowConfig.json @@ -0,0 +1,580 @@ +[ + { + "workflowId": "1", + "status": "SKIPPED" + }, + { + "workflowId": "4", + "status": "SKIPPED" + }, + { + "workflowId": "10", + "status": "SKIPPED" + }, + { + "workflowId": "20", + "status": "SKIPPED" + }, + { + "workflowId": "21", + "status": "SKIPPED" + }, + { + "workflowId": "22", + "status": "SKIPPED" + }, + { + "workflowId": "26", + "status": "SKIPPED" + }, + { + "workflowId": "27", + "status": "SKIPPED" + }, + { + "workflowId": "28", + "status": "SKIPPED" + }, + { + "workflowId": "29", + "status": "SKIPPED" + }, + { + "workflowId": "30", + "status": "SKIPPED" + }, + { + "workflowId": "31", + "status": "SKIPPED" + }, + { + "workflowId": "33", + "status": "SKIPPED" + }, + { + "workflowId": "38", + "status": "SKIPPED" + }, + { + "workflowId": "39", + "status": "SKIPPED" + }, + { + "workflowId": "40", + "status": "SKIPPED" + }, + { + "workflowId": "41", + "status": "SKIPPED" + }, + { + "workflowId": "42", + "status": "SKIPPED" + }, + { + "workflowId": "43", + "status": "SKIPPED" + }, + { + "workflowId": "45", + "status": "SKIPPED" + }, + { + "workflowId": "46", + "status": "SKIPPED" + }, + { + "workflowId": "47", + "status": "SKIPPED" + }, + { + "workflowId": "50", + "status": "SKIPPED", + "skipReason": "We seem to hit their rate limit a lot." + }, + { + "workflowId": "51", + "status": "SKIPPED" + }, + { + "workflowId": "54", + "status": "SKIPPED" + }, + { + "workflowId": "56", + "status": "SKIPPED" + }, + { + "workflowId": "57", + "status": "SKIPPED" + }, + { + "workflowId": "59", + "status": "SKIPPED" + }, + { + "workflowId": "64", + "status": "SKIPPED" + }, + { + "workflowId": "65", + "status": "SKIPPED" + }, + { + "workflowId": "66", + "status": "SKIPPED" + }, + { + "workflowId": "68", + "status": "SKIPPED" + }, + { + "workflowId": "69", + "status": "SKIPPED" + }, + { + "workflowId": "73", + "status": "SKIPPED" + }, + { + "workflowId": "74", + "status": "SKIPPED" + }, + { + "workflowId": "75", + "status": "SKIPPED" + }, + { + "workflowId": "76", + "status": "SKIPPED" + }, + { + "workflowId": "77", + "status": "SKIPPED" + }, + { + "workflowId": "78", + "status": "SKIPPED" + }, + { + "workflowId": "79", + "status": "SKIPPED" + }, + { + "workflowId": "80", + "status": "SKIPPED" + }, + { + "workflowId": "82", + "status": "SKIPPED" + }, + { + "workflowId": "85", + "status": "SKIPPED" + }, + { + "workflowId": "86", + "status": "SKIPPED", + "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", + "ticketReference": "CAT-790" + }, + { + "workflowId": "87", + "status": "SKIPPED", + "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", + "ticketReference": "CAT-790" + }, + { + "workflowId": "88", + "status": "SKIPPED", + "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", + "ticketReference": "CAT-790" + }, + { + "workflowId": "89", + "status": "SKIPPED" + }, + { + "workflowId": "92", + "status": "SKIPPED" + }, + { + "workflowId": "94", + "status": "SKIPPED" + }, + { + "workflowId": "102", + "status": "SKIPPED" + }, + { + "workflowId": "104", + "status": "SKIPPED", + "skipReason": "This node is deprecated and has been replaced by the Extract From File node. Also it didn't interact with any live services, it could have been an integation test." + }, + { + "workflowId": "106", + "status": "SKIPPED" + }, + { + "workflowId": "112", + "status": "SKIPPED" + }, + { + "workflowId": "113", + "status": "SKIPPED" + }, + { + "workflowId": "115", + "status": "SKIPPED" + }, + { + "workflowId": "116", + "status": "SKIPPED" + }, + { + "workflowId": "117", + "status": "SKIPPED" + }, + { + "workflowId": "118", + "status": "SKIPPED" + }, + { + "workflowId": "119", + "status": "SKIPPED" + }, + { + "workflowId": "120", + "status": "SKIPPED" + }, + { + "workflowId": "121", + "status": "SKIPPED" + }, + { + "workflowId": "122", + "status": "SKIPPED" + }, + { + "workflowId": "123", + "status": "SKIPPED" + }, + { + "workflowId": "124", + "status": "SKIPPED" + }, + { + "workflowId": "125", + "status": "SKIPPED" + }, + { + "workflowId": "126", + "status": "SKIPPED" + }, + { + "workflowId": "127", + "status": "SKIPPED" + }, + { + "workflowId": "128", + "status": "SKIPPED" + }, + { + "workflowId": "129", + "status": "SKIPPED" + }, + { + "workflowId": "130", + "status": "SKIPPED" + }, + { + "workflowId": "131", + "status": "SKIPPED", + "skipReason": "This API service has been discontinued. For more details, please check here: https://notify-bot.line.me/closing-announce on node Line" + }, + { + "workflowId": "134", + "status": "SKIPPED" + }, + { + "workflowId": "135", + "status": "SKIPPED" + }, + { + "workflowId": "136", + "status": "SKIPPED" + }, + { + "workflowId": "137", + "status": "SKIPPED" + }, + { + "workflowId": "138", + "status": "SKIPPED" + }, + { + "workflowId": "141", + "status": "SKIPPED" + }, + { + "workflowId": "142", + "status": "SKIPPED" + }, + { + "workflowId": "143", + "status": "SKIPPED", + "skipReason": "Invalid API key for Clearbit." + }, + { + "workflowId": "145", + "status": "SKIPPED" + }, + { + "workflowId": "146", + "status": "SKIPPED" + }, + { + "workflowId": "149", + "status": "SKIPPED" + }, + { + "workflowId": "151", + "status": "SKIPPED" + }, + { + "workflowId": "157", + "status": "SKIPPED" + }, + { + "workflowId": "158", + "status": "SKIPPED" + }, + { + "workflowId": "159", + "status": "SKIPPED" + }, + { + "workflowId": "160", + "status": "SKIPPED" + }, + { + "workflowId": "163", + "status": "SKIPPED" + }, + { + "workflowId": "165", + "status": "SKIPPED" + }, + { + "workflowId": "167", + "status": "SKIPPED" + }, + { + "workflowId": "168", + "status": "SKIPPED" + }, + { + "workflowId": "169", + "status": "SKIPPED" + }, + { + "workflowId": "170", + "status": "SKIPPED" + }, + { + "workflowId": "171", + "status": "SKIPPED" + }, + { + "workflowId": "173", + "status": "SKIPPED" + }, + { + "workflowId": "176", + "status": "SKIPPED" + }, + { + "workflowId": "177", + "status": "SKIPPED" + }, + { + "workflowId": "179", + "status": "SKIPPED" + }, + { + "workflowId": "180", + "status": "SKIPPED" + }, + { + "workflowId": "183", + "status": "SKIPPED" + }, + { + "workflowId": "187", + "status": "SKIPPED" + }, + { + "workflowId": "188", + "status": "SKIPPED" + }, + { + "workflowId": "189", + "status": "SKIPPED" + }, + { + "workflowId": "190", + "status": "SKIPPED" + }, + { + "workflowId": "191", + "status": "SKIPPED" + }, + { + "workflowId": "192", + "status": "SKIPPED" + }, + { + "workflowId": "193", + "status": "SKIPPED" + }, + { + "workflowId": "194", + "status": "SKIPPED" + }, + { + "workflowId": "196", + "status": "SKIPPED" + }, + { + "workflowId": "197", + "status": "SKIPPED" + }, + { + "workflowId": "198", + "status": "SKIPPED" + }, + { + "workflowId": "199", + "status": "SKIPPED" + }, + { + "workflowId": "200", + "status": "SKIPPED" + }, + { + "workflowId": "201", + "status": "SKIPPED" + }, + { + "workflowId": "204", + "status": "SKIPPED" + }, + { + "workflowId": "206", + "status": "SKIPPED" + }, + { + "workflowId": "207", + "status": "SKIPPED" + }, + { + "workflowId": "208", + "status": "SKIPPED" + }, + { + "workflowId": "214", + "status": "SKIPPED" + }, + { + "workflowId": "215", + "status": "SKIPPED" + }, + { + "workflowId": "217", + "status": "SKIPPED" + }, + { + "workflowId": "218", + "status": "SKIPPED" + }, + { + "workflowId": "219", + "status": "SKIPPED" + }, + { + "workflowId": "220", + "status": "SKIPPED" + }, + { + "workflowId": "221", + "status": "SKIPPED" + }, + { + "workflowId": "222", + "status": "SKIPPED" + }, + { + "workflowId": "223", + "status": "SKIPPED", + "skipReason": "You can not complete this operation. Please check your balance on node LingvaNex" + }, + { + "workflowId": "224", + "status": "SKIPPED" + }, + { + "workflowId": "225", + "status": "SKIPPED" + }, + { + "workflowId": "226", + "status": "SKIPPED" + }, + { + "workflowId": "227", + "status": "SKIPPED" + }, + { + "workflowId": "233", + "status": "SKIPPED", + "skipReason": "Not Found on node Qdrant Vector Store. Could be a timing issue." + }, + { + "workflowId": "243", + "status": "ACTIVE", + "enableSchemaValidation": false + }, + { + "workflowId": "252", + "status": "SKIPPED" + }, + { + "workflowId": "253", + "enableSchemaValidation": false, + "skipReason": "Seems to return a different schema each time. Not sure why, based on which tools it uses/calls?", + "status": "ACTIVE" + }, + { + "workflowId": "254", + "status": "ACTIVE", + "enableSchemaValidation": false, + "skipReason": "Seems to return a different schema each time. Not sure why, based on which tools it uses/calls?" + }, + { + "workflowId": "257", + "status": "SKIPPED", + "enableSchemaValidation": false, + "skipReason": "Will occasionaly return TypeError: text.trim is not a function" + }, + { + "workflowId": "258", + "status": "ACTIVE", + "enableSchemaValidation": false, + "skipReason": "Seems to return a different schema each time. Not sure why, based on which tools it uses/calls?" + }, + { + "workflowId": "259", + "status": "ACTIVE", + "skipReason": "Please return an array of objects, one for each item you would like to output. on node Code" + } +] diff --git a/packages/testing/playwright/test-workflows/workflows/1.json b/packages/testing/playwright/test-workflows/workflows/1.json new file mode 100644 index 0000000000..7ad4c59e4b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/1.json @@ -0,0 +1,165 @@ +{ + "createdAt": "2021-01-21T10:32:07.628Z", + "updatedAt": "2021-06-04T10:25:41.024Z", + "id": "1", + "name": "Twitter:tweet:create:create like retweet delete search", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0d0e09b1-87e5-4c64-acf5-9a7da0718775" + }, + { + "parameters": { + "text": "=Hello from n8n testing framework {{$evaluateExpression(Math.random())}}", + "additionalFields": {} + }, + "name": "Twitter", + "type": "n8n-nodes-base.twitter", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "twitterOAuth1Api": { + "id": "161", + "name": "Twitter API" + } + }, + "id": "e3e833e8-c567-492d-b5e9-6233e0a3890d" + }, + { + "parameters": { + "operation": "like", + "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}", + "additionalFields": {} + }, + "name": "Twitter1", + "type": "n8n-nodes-base.twitter", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "twitterOAuth1Api": { + "id": "161", + "name": "Twitter API" + } + }, + "id": "904c5a06-bd36-4edc-abbc-d3cfd946a9f2" + }, + { + "parameters": { + "operation": "retweet", + "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}", + "additionalFields": {} + }, + "name": "Twitter2", + "type": "n8n-nodes-base.twitter", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "twitterOAuth1Api": { + "id": "161", + "name": "Twitter API" + } + }, + "id": "fdd7b0de-c279-452e-b6be-acebea480071" + }, + { + "parameters": { + "operation": "delete", + "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}" + }, + "name": "Twitter3", + "type": "n8n-nodes-base.twitter", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "twitterOAuth1Api": { + "id": "161", + "name": "Twitter API" + } + }, + "id": "6dff7ba3-ba03-4cdb-9305-d80eb02d4b83" + }, + { + "parameters": { + "operation": "search", + "searchText": "@n8n_io", + "limit": 1, + "additionalFields": {} + }, + "name": "Twitter4", + "type": "n8n-nodes-base.twitter", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "twitterOAuth1Api": { + "id": "161", + "name": "Twitter API" + } + }, + "notes": "IGNORED_PROPERTIES=extended_entities,retweeted_status,quoted_status_id,quoted_status_id_str,quoted_status,possibly_sensitive", + "id": "205bf8c9-afed-4a6a-b538-bb572ef14287" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Twitter", + "type": "main", + "index": 0 + }, + { + "node": "Twitter4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twitter": { + "main": [ + [ + { + "node": "Twitter1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twitter1": { + "main": [ + [ + { + "node": "Twitter2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twitter2": { + "main": [ + [ + { + "node": "Twitter3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/10.json b/packages/testing/playwright/test-workflows/workflows/10.json new file mode 100644 index 0000000000..d50491df7e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/10.json @@ -0,0 +1,292 @@ +{ + "createdAt": "2021-02-15T13:56:59.611Z", + "updatedAt": "2021-06-04T14:37:01.395Z", + "id": "10", + "name": "PagerDuty:incident:create get update getAll:incidentNote:create getAll:User:get:LogEntry:getAll get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [240, 260], + "id": "91f3c321-72a4-4c04-8e51-ec3a7c775462" + }, + { + "parameters": { + "authentication": "oAuth2", + "title": "Test", + "serviceId": "PO5XHDI", + "email": "nodeqa@n8n.io", + "additionalFields": {} + }, + "name": "PagerDuty", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [400, 260], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "92f2a4d8-4860-4edf-92e4-ea14671bad92" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "get", + "incidentId": "={{$json[\"id\"]}}" + }, + "name": "PagerDuty1", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [550, 260], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "0af4d8fa-8392-46ce-8d04-cfcb0fcff52b" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "update", + "incidentId": "={{$json[\"id\"]}}", + "email": "nodeqa@n8n.io", + "updateFields": { + "status": "acknowledged" + } + }, + "name": "PagerDuty2", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [870, 260], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "843cc5d1-4302-4d75-b78e-14479b2a5dc7" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "PagerDuty3", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [1030, 260], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "903bd6db-f3ab-45d8-bd05-0f387a5e08bd" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "incidentNote", + "incidentId": "={{$json[\"id\"]}}", + "content": "Simple note for an incident", + "email": "nodeqa@n8n.io" + }, + "name": "PagerDuty4", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [720, 350], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "37deab31-9ff9-4dd4-9f21-edcdaa13532c" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "incidentNote", + "operation": "getAll", + "incidentId": "={{$json[\"id\"]}}", + "limit": 1 + }, + "name": "PagerDuty5", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [720, 160], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "e3df7b5a-1abc-4af9-b5a8-725d1339b127" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "userId": "PT0VVWO" + }, + "name": "PagerDuty6", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [400, 110], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "25539887-c45a-4859-bc73-6173ef47e07e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "logEntry", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "PagerDuty7", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [400, 540], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "notes": "IGNORED_PROPERTIES=event_details,assignees", + "id": "7f565cd4-e409-4d23-8914-6f887457d14a" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "logEntry", + "logEntryId": "={{$node[\"PagerDuty\"].json[\"first_trigger_log_entry\"][\"id\"]}}" + }, + "name": "PagerDuty8", + "type": "n8n-nodes-base.pagerDuty", + "typeVersion": 1, + "position": [730, 540], + "credentials": { + "pagerDutyOAuth2Api": { + "id": "123", + "name": "PagerDuty OAuth2 API creds" + } + }, + "id": "9bfda961-967d-43dd-8089-a3af7d26084a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [560, 540], + "typeVersion": 1, + "id": "f3501dee-890b-46c6-9306-6ebb1cc7d21f" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "PagerDuty", + "type": "main", + "index": 0 + }, + { + "node": "PagerDuty7", + "type": "main", + "index": 0 + }, + { + "node": "PagerDuty6", + "type": "main", + "index": 0 + } + ] + ] + }, + "PagerDuty": { + "main": [ + [ + { + "node": "PagerDuty1", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "PagerDuty1": { + "main": [ + [ + { + "node": "PagerDuty4", + "type": "main", + "index": 0 + }, + { + "node": "PagerDuty5", + "type": "main", + "index": 0 + }, + { + "node": "PagerDuty2", + "type": "main", + "index": 0 + } + ] + ] + }, + "PagerDuty2": { + "main": [ + [ + { + "node": "PagerDuty3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "PagerDuty8", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/101.json b/packages/testing/playwright/test-workflows/workflows/101.json new file mode 100644 index 0000000000..c7f0651319 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/101.json @@ -0,0 +1,108 @@ +{ + "createdAt": "2021-03-04T09:49:58.859Z", + "updatedAt": "2021-03-04T09:49:58.859Z", + "id": "101", + "name": "RenameKeys", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "38b2e8c3-ddfe-4ef3-85d0-ddab8e8732db" + }, + { + "parameters": { + "keys": { + "key": [ + { + "currentKey": "toBeRenamed", + "newKey": "Renamed" + } + ] + } + }, + "name": "Rename Keys", + "type": "n8n-nodes-base.renameKeys", + "typeVersion": 1, + "position": [650, 300], + "id": "d4b5cdcd-3bd7-46aa-ab34-f986411cfc43" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "test" + }, + { + "name": "toBeRenamed", + "value": "name" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "0c816bc3-19b1-41f2-ac7a-ea5f2448bac2" + }, + { + "parameters": { + "functionCode": "testData = JSON.stringify(\n{\nname: \"test\",\nRenamed: \"name\"\n}\n)\nif(JSON.stringify($node['Rename Keys'].json) !== testData){\n throw new Error('Error in rename keys node');\n}\n\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [850, 300], + "id": "95ab4a10-c3f3-4bad-8792-4a8dab012672" + } + ], + "connections": { + "Rename Keys": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Rename Keys", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/102.json b/packages/testing/playwright/test-workflows/workflows/102.json new file mode 100644 index 0000000000..c148b9f57b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/102.json @@ -0,0 +1,72 @@ +{ + "createdAt": "2021-03-04T10:41:43.011Z", + "updatedAt": "2021-03-04T10:41:43.011Z", + "id": "102", + "name": "ReadBinaryFile", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "516a8267-1d35-4ec7-977b-87d0f961fe53" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [500, 300], + "notesInFlow": true, + "notes": "Read the assets/n8n-logo.png", + "id": "839c17af-2415-41c4-bf13-8815df27ca4e" + }, + { + "parameters": { + "functionCode": "testData='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';\nif(items[0].binary.data.data !== testData){\n throw new Error('Error in Read Binary File node');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [650, 300], + "notesInFlow": true, + "notes": "assert the base64 value", + "id": "409eca37-f7a2-4ddc-9ae9-c4a9daeef481" + } + ], + "connections": { + "Read Binary File": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/103.json b/packages/testing/playwright/test-workflows/workflows/103.json new file mode 100644 index 0000000000..502414f934 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/103.json @@ -0,0 +1,149 @@ +{ + "createdAt": "2021-03-04T11:22:05.930Z", + "updatedAt": "2021-03-04T11:24:54.336Z", + "id": "103", + "name": "ExecuteCommand", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "596a5418-e61d-41ab-84eb-64e07630b23e" + }, + { + "parameters": { + "command": "=echo 'test' > /tmp/{{$node[\"Set\"].json[\"filename\"]}}" + }, + "name": "Execute Command", + "type": "n8n-nodes-base.executeCommand", + "typeVersion": 1, + "position": [660, 300], + "notesInFlow": true, + "notes": "write file to /tmp", + "id": "9c118fb2-edad-441a-b8a8-f1c843a37bd5" + }, + { + "parameters": { + "filePath": "=/tmp/{{$node[\"Set\"].json[\"filename\"]}}" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [860, 300], + "notesInFlow": true, + "notes": "read file", + "id": "af6e6941-e34e-4b5d-a236-3bccd5bd4cfd" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "filename", + "value": "=filename{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "notesInFlow": true, + "notes": "generate filename", + "id": "8864d17b-8310-4460-810c-d43da4e967ff" + }, + { + "parameters": { + "functionCode": "testData= 'dGVzdAo='\nif($node['Execute Command'].json['exitCode']!==0 || items[0].binary.data.data !== testData){\n throw new Error('Error Execute Command in node');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1050, 300], + "notesInFlow": true, + "notes": "verify file content", + "id": "0a60312c-4030-496b-ad24-3acebff5eca1" + }, + { + "parameters": { + "command": "=rm /tmp/{{$node[\"Set\"].json[\"filename\"]}}" + }, + "name": "Execute Command1", + "type": "n8n-nodes-base.executeCommand", + "typeVersion": 1, + "position": [1250, 300], + "notesInFlow": true, + "notes": "remove file from /tmp", + "id": "ede3e595-c571-4155-85bd-14e39fe78049" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Execute Command": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Execute Command", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Execute Command1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/104.json b/packages/testing/playwright/test-workflows/workflows/104.json new file mode 100644 index 0000000000..6b34e02cf6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/104.json @@ -0,0 +1,71 @@ +{ + "createdAt": "2021-03-04T13:14:37.236Z", + "updatedAt": "2021-06-15T14:39:01.449Z", + "id": "104", + "name": "ReadPDF", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "084e6fae-bd3c-4887-98a4-5ef671a9202c" + }, + { + "parameters": {}, + "name": "Read PDF", + "type": "n8n-nodes-base.readPDF", + "typeVersion": 1, + "position": [650, 300], + "notesInFlow": true, + "notes": "Parse PDF", + "id": "c9c1692b-3979-4334-94f3-a6ba1aeb1705" + }, + { + "parameters": { + "filePath": "/tmp/04-valid.pdf" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [450, 300], + "alwaysOutputData": false, + "notesInFlow": true, + "notes": "Read static pdf file from node_modules", + "id": "f725a50d-5941-4370-9925-474306645ed5" + } + ], + "connections": { + "Read Binary File": { + "main": [ + [ + { + "node": "Read PDF", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/105.json b/packages/testing/playwright/test-workflows/workflows/105.json new file mode 100644 index 0000000000..fcfb3580a8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/105.json @@ -0,0 +1,118 @@ +{ + "createdAt": "2021-03-04T13:31:56.288Z", + "updatedAt": "2021-03-04T13:31:56.288Z", + "id": "105", + "name": "WriteBinaryFile", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "6ad9a76c-8bd9-4a23-98ad-12e9f913fb9d" + }, + { + "parameters": { + "fileName": "/tmp/test_write_binary_file.txt" + }, + "name": "Write Binary File", + "type": "n8n-nodes-base.writeBinaryFile", + "typeVersion": 1, + "position": [650, 300], + "notesInFlow": true, + "notes": "Write binary file in /tmp directory", + "id": "c323f3c4-c1ca-4c7c-acbd-0387e14966ca" + }, + { + "parameters": { + "filePath": "/tmp/test_write_binary_file.txt" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [850, 300], + "notesInFlow": true, + "notes": "Read file data", + "id": "19df8a14-6a25-4c6d-a891-095562ce311a" + }, + { + "parameters": { + "functionCode": "items = [\n{\njson:{},\nbinary: {\n\tdata: {\n\t\tdata: 'VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl',\n\t\tfileExtension: 'txt', \n\t\tfileName: 'file.txt', \n\t}\n}\n}\n\n];\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [460, 300], + "notesInFlow": true, + "notes": "Prepare file data", + "id": "0a14fc91-53a3-4c8a-b1cb-eef0734f016a" + }, + { + "parameters": { + "functionCode": "testData ='VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl';\n\nif(items[0].binary.data.data !== testData){\n throw new Error('Error in Write Binary File node');\n}\nreturn items;" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1020, 300], + "notesInFlow": true, + "notes": "Verify file data", + "id": "fe251599-60cf-45df-a1fc-4c0f5b019b50" + } + ], + "connections": { + "Write Binary File": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Write Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/106.json b/packages/testing/playwright/test-workflows/workflows/106.json new file mode 100644 index 0000000000..c570be553a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/106.json @@ -0,0 +1,373 @@ +{ + "createdAt": "2021-03-04T14:19:59.064Z", + "updatedAt": "2021-03-09T08:07:08.936Z", + "id": "106", + "name": "Box:Folder:create search get delete:File:upload get download copy search delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "3379cd25-f1fb-4810-84eb-1fe522062d5e" + }, + { + "parameters": { + "resource": "folder", + "name": "=Folder{{Date.now()}}", + "options": {} + }, + "name": "Box", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "61a2d115-f5ad-4d90-b2c4-98b637c72a05" + }, + { + "parameters": { + "resource": "folder", + "operation": "search", + "query": "folder", + "limit": 1, + "additionalFields": {} + }, + "name": "Box1", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1850, 300], + "alwaysOutputData": true, + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "38f2209f-5ba9-47c1-9e37-47561b96a816" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "folderId": "={{$node[\"Box\"].json[\"id\"]}}" + }, + "name": "Box2", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [2140, 300], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "59b546b6-5bca-4154-b635-1416f756d75b" + }, + { + "parameters": { + "fileName": "=logo{{Date.now()}}.png", + "binaryData": true, + "parentId": "={{$node[\"Box\"].json[\"id\"]}}" + }, + "name": "Box3", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [800, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "1b9d07ed-78e2-4436-9034-a3c4930d182f" + }, + { + "parameters": { + "filePath": "/tmp/n8n-screenshot.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [650, 400], + "id": "a2ddf065-8352-4de3-826b-1577e54a6166" + }, + { + "parameters": { + "operation": "get", + "fileId": "={{$node[\"Box3\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Box4", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [950, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "aabe943e-f257-4db2-896f-1bc5ddf9f0cd" + }, + { + "parameters": { + "operation": "download", + "fileId": "={{$node[\"Box3\"].json[\"id\"]}}" + }, + "name": "Box5", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1100, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "fb9625be-a0c9-421e-acfb-fa4451e6c0c4" + }, + { + "parameters": { + "operation": "copy", + "fileId": "={{$node[\"Box3\"].json[\"id\"]}}", + "parentId": "={{$node[\"Box\"].json[\"id\"]}}", + "additionalFields": { + "name": "=Copied-logo{{Date.now()}}.png" + } + }, + "name": "Box6", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "e9e7997b-1eab-4244-9e52-9ea6f00dac63" + }, + { + "parameters": { + "operation": "search", + "query": "logo", + "limit": 1, + "additionalFields": { + "file_extensions": "png" + } + }, + "name": "Box7", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1400, 400], + "alwaysOutputData": true, + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "6ed0e975-cc74-4c57-813a-39e0c954097d" + }, + { + "parameters": { + "operation": "delete", + "fileId": "={{$node[\"Box3\"].json[\"id\"]}}" + }, + "name": "Box8", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1550, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "2cf28778-50dc-46ae-8347-6d74cca97d6e" + }, + { + "parameters": { + "operation": "delete", + "fileId": "={{$node[\"Box6\"].json[\"id\"]}}" + }, + "name": "Box10", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [1700, 400], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "2f0e8ab1-2ad9-4613-b813-7f8d1fcbd7a0" + }, + { + "parameters": { + "resource": "folder", + "operation": "get", + "folderId": "={{$node[\"Box\"].json[\"id\"]}}" + }, + "name": "Box9", + "type": "n8n-nodes-base.box", + "typeVersion": 1, + "position": [2000, 300], + "credentials": { + "boxOAuth2Api": { + "id": "77", + "name": "Box OAuth2 creds" + } + }, + "id": "fbba5280-62da-4344-a8b3-faec86d38a3a" + } + ], + "connections": { + "Box": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box1": { + "main": [ + [ + { + "node": "Box9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box3": { + "main": [ + [ + { + "node": "Box4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Box3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box4": { + "main": [ + [ + { + "node": "Box5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box5": { + "main": [ + [ + { + "node": "Box6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box6": { + "main": [ + [ + { + "node": "Box7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box7": { + "main": [ + [ + { + "node": "Box8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box8": { + "main": [ + [ + { + "node": "Box10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box10": { + "main": [ + [ + { + "node": "Box1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Box", + "type": "main", + "index": 0 + } + ] + ] + }, + "Box9": { + "main": [ + [ + { + "node": "Box2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/108.json b/packages/testing/playwright/test-workflows/workflows/108.json new file mode 100644 index 0000000000..4ad51091ff --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/108.json @@ -0,0 +1,969 @@ +{ + "createdAt": "2021-03-04T16:23:06.210Z", + "updatedAt": "2021-03-04T17:33:16.605Z", + "id": "108", + "name": "Merge:append keepKeyMatches mergeByIndex(leftjoin,innerjoin,outerjoin) mergeByKey(ifBlank,always,ifMissing) Multiplex passThrough removeKeyMatches", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [120, 1510], + "id": "05049327-2f4e-4009-94d1-13c946fdf5ba" + }, + { + "parameters": {}, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 300], + "id": "21ee0629-efde-4030-9a2e-6ffe5d135aab" + }, + { + "parameters": { + "values": { + "boolean": [ + { + "name": "value1", + "value": true + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 220], + "id": "76be9855-6e08-4898-a92f-a715ccd2d9f6" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "value2", + "value": 5 + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 370], + "id": "49c669ce-c9d0-44ff-aabe-fc8c43b6fa5b" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify([{value1:true},{value2:5}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : append');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [780, 300], + "notesInFlow": true, + "notes": "Verify merge operation", + "id": "ee84e437-1a43-46e2-8d28-49af7bd7050b" + }, + { + "parameters": { + "mode": "keepKeyMatches", + "propertyName1": "prop3", + "propertyName2": "prop4" + }, + "name": "Merge1", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 580], + "id": "76c2f8bd-920e-46d5-8ccd-c1abb9f9b107" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop1", + "value": 1 + }, + { + "name": "prop3", + "value": -1 + } + ] + }, + "options": {} + }, + "name": "Set2", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 500], + "id": "80630a5a-6b50-4a96-8860-4ee0a44eb6d7" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop2", + "value": 2 + }, + { + "name": "prop4", + "value": -1 + } + ] + }, + "options": {} + }, + "name": "Set3", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 650], + "id": "c711f26f-fa32-4d45-96df-64a94bda847f" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [780, 580], + "notesInFlow": true, + "notes": "Verify merge operation", + "id": "f14b2693-ef6c-452e-8e9a-bbb0a9854108" + }, + { + "parameters": { + "mode": "mergeByIndex", + "join": "inner" + }, + "name": "Merge2", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [600, 900], + "id": "fabcb606-0623-4637-aea2-02348c9f8395" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: innerjoin');\n}\nreturn items;" + }, + "name": "Function2", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 900], + "notesInFlow": true, + "notes": "Verify mergeByIndex operation", + "id": "52c35538-f039-4a65-9ee0-0f8b19783e39" + }, + { + "parameters": { + "mode": "mergeByIndex" + }, + "name": "Merge3", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [600, 750], + "id": "a027b711-4a82-4d5c-b181-ef9c9a8f4c96" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: leftjoin');\n}\nreturn items;" + }, + "name": "Function3", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 750], + "notesInFlow": true, + "notes": "Verify mergeByIndex operation", + "id": "637ec6e5-0166-4a3a-8590-3ba8c2772e43" + }, + { + "parameters": { + "mode": "mergeByIndex", + "join": "outer" + }, + "name": "Merge4", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [600, 1050], + "notesInFlow": false, + "notes": "outerjoin", + "id": "efc5cc37-9d27-4271-b767-fd9351aadaf4" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'},{title:'Input2item4'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: outerjoin');\n}\nreturn items;" + }, + "name": "Function4", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 1050], + "notesInFlow": true, + "notes": "Verify mergeByIndex operation", + "id": "00e11687-bdb1-4569-95ed-f90b199b0337" + }, + { + "parameters": { + "mode": "mergeByKey", + "propertyName1": "prop3", + "propertyName2": "prop4" + }, + "name": "Merge5", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 1380], + "id": "87c14aaa-fd17-4d7b-8c05-337033d054b0" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop2", + "value": 2 + }, + { + "name": "prop3", + "value": -2 + }, + { + "name": "prop4", + "value": -3 + } + ] + }, + "options": {} + }, + "name": "Set6", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 1440], + "id": "06f1417b-2461-4aa6-92fb-46749dbf07be" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" + }, + "name": "Function5", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 1380], + "notesInFlow": true, + "notes": "Verify mergeByKey operation", + "id": "440e0084-64d7-48cd-8418-5ea1b0f2c4d8" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop1", + "value": 1 + }, + { + "name": "prop3", + "value": -1 + } + ], + "string": [] + }, + "options": {} + }, + "name": "Set7", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 1290], + "id": "d44ca83d-c757-49c1-b35a-1f95306c796e" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" + }, + "name": "Function6", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 1230], + "notesInFlow": true, + "notes": "Verify mergeByKey operation", + "id": "4f20aaa3-7f0d-4dd4-a863-6c0bb2209b36" + }, + { + "parameters": { + "mode": "mergeByKey", + "propertyName1": "prop3", + "propertyName2": "prop4", + "overwrite": "blank" + }, + "name": "Merge6", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 1230], + "id": "ebf52dbc-51cb-4abf-a4ee-480e2c0f546c" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" + }, + "name": "Function7", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 1530], + "notesInFlow": true, + "notes": "Verify mergeByKey operation", + "id": "02adb59e-bbfe-442b-a185-2addbe1d1464" + }, + { + "parameters": { + "mode": "mergeByKey", + "propertyName1": "prop3", + "propertyName2": "prop4", + "overwrite": "undefined" + }, + "name": "Merge7", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 1530], + "id": "75a59075-beab-4a75-98b5-b6b267d3a096" + }, + { + "parameters": { + "mode": "multiplex" + }, + "name": "Merge8", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [580, 1780], + "id": "690e5bee-e4cc-4179-bdf6-f38ffbcd271d" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop3", + "value": 2 + }, + { + "name": "prop4", + "value": -4 + } + ] + }, + "options": {} + }, + "name": "Set8", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 1850], + "id": "65fb39a2-10c6-4ad1-866a-a7771ac9c1af" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1,prop3: 2,prop4: -4});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : multiplex');\n}\nreturn items;" + }, + "name": "Function8", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [780, 1780], + "notesInFlow": true, + "notes": "Verify multiplex operation", + "id": "fa2cc83d-1223-47cf-a7f8-a272a95014ab" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop1", + "value": 1 + }, + { + "name": "prop2", + "value": -1 + } + ] + }, + "options": {} + }, + "name": "Set9", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 1700], + "id": "66c41d0d-cfb4-4422-94d6-3f2cf87eb5ae" + }, + { + "parameters": { + "mode": "passThrough" + }, + "name": "Merge9", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [590, 2080], + "id": "449087b4-8aac-4294-a01a-af6475eb48c1" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop3", + "value": 2 + }, + { + "name": "prop4", + "value": -4 + } + ] + }, + "options": {} + }, + "name": "Set10", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [440, 2150], + "id": "fe7a92b3-8f2a-408b-90df-e1b5fe647027" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : passThrough');\n}\nreturn items;" + }, + "name": "Function9", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [790, 2080], + "notesInFlow": true, + "notes": "Verify passThrough operation", + "id": "c3faf934-98ee-4bad-9326-567ad3aca34b" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop1", + "value": 1 + }, + { + "name": "prop2", + "value": -1 + } + ] + }, + "options": {} + }, + "name": "Set11", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [440, 2000], + "id": "48d50540-eb21-470a-9a32-5a57093ebf54" + }, + { + "parameters": { + "mode": "removeKeyMatches", + "propertyName1": "prop1", + "propertyName2": "prop3" + }, + "name": "Merge10", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [600, 2380], + "id": "8fa6f5b0-9f8f-4ff4-b15e-feaef0f92c61" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop3", + "value": 2 + }, + { + "name": "prop4", + "value": -4 + } + ] + }, + "options": {} + }, + "name": "Set12", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 2450], + "id": "acf521b5-df53-43ff-a046-80f656dbe90b" + }, + { + "parameters": { + "values": { + "boolean": [], + "number": [ + { + "name": "prop1", + "value": 1 + }, + { + "name": "prop2", + "value": -1 + } + ] + }, + "options": {} + }, + "name": "Set13", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 2300], + "id": "0310f05a-f0e6-4383-aa2a-1602dc8979e2" + }, + { + "parameters": { + "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : removeKeyMatches');\n}\nreturn items;" + }, + "name": "Function10", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [800, 2380], + "notesInFlow": true, + "notes": "Verify removeKeyMatches operation", + "id": "e56612ad-6b5a-4f1e-9d5c-feacc7960269" + }, + { + "parameters": { + "functionCode": "items = [{\n json:{\n title:'Input1item1'\n }\n},{\n json:{\n title:'Input1item2'\n }\n},{\n json:{\n title:'Input1item3'\n }\n}]\nreturn items;" + }, + "name": "Function11", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [430, 810], + "notesInFlow": true, + "notes": "Input 1", + "id": "96b68b9c-10fd-4d22-8836-0babe8295c53" + }, + { + "parameters": { + "functionCode": "items = [{\n json:{\n title:'Input2item1'\n }\n},{\n json:{\n title:'Input2item2'\n }\n},{\n json:{\n title:'Input2item3'\n }\n},{\n json:{\n title:'Input2item4'\n }\n}]\nreturn items;" + }, + "name": "Function12", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [430, 960], + "notesInFlow": true, + "notes": "Input 2", + "id": "b1382fe4-f188-44da-aeec-cfebab259efe" + } + ], + "connections": { + "Merge": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge1": { + "main": [ + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set2": { + "main": [ + [ + { + "node": "Merge1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set3": { + "main": [ + [ + { + "node": "Merge1", + "type": "main", + "index": 1 + } + ] + ] + }, + "Merge2": { + "main": [ + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge3": { + "main": [ + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge4": { + "main": [ + [ + { + "node": "Function4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge5": { + "main": [ + [ + { + "node": "Function5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set6": { + "main": [ + [ + { + "node": "Merge5", + "type": "main", + "index": 1 + }, + { + "node": "Merge6", + "type": "main", + "index": 1 + }, + { + "node": "Merge7", + "type": "main", + "index": 1 + } + ] + ] + }, + "Set7": { + "main": [ + [ + { + "node": "Merge5", + "type": "main", + "index": 0 + }, + { + "node": "Merge6", + "type": "main", + "index": 0 + }, + { + "node": "Merge7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge6": { + "main": [ + [ + { + "node": "Function6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge7": { + "main": [ + [ + { + "node": "Function7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge8": { + "main": [ + [ + { + "node": "Function8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set8": { + "main": [ + [ + { + "node": "Merge8", + "type": "main", + "index": 1 + } + ] + ] + }, + "Set9": { + "main": [ + [ + { + "node": "Merge8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge9": { + "main": [ + [ + { + "node": "Function9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set10": { + "main": [ + [ + { + "node": "Merge9", + "type": "main", + "index": 1 + } + ] + ] + }, + "Set11": { + "main": [ + [ + { + "node": "Merge9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge10": { + "main": [ + [ + { + "node": "Function10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set12": { + "main": [ + [ + { + "node": "Merge10", + "type": "main", + "index": 1 + } + ] + ] + }, + "Set13": { + "main": [ + [ + { + "node": "Merge10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Set1", + "type": "main", + "index": 0 + }, + { + "node": "Set2", + "type": "main", + "index": 0 + }, + { + "node": "Set3", + "type": "main", + "index": 0 + }, + { + "node": "Set7", + "type": "main", + "index": 0 + }, + { + "node": "Set6", + "type": "main", + "index": 0 + }, + { + "node": "Set9", + "type": "main", + "index": 0 + }, + { + "node": "Set8", + "type": "main", + "index": 0 + }, + { + "node": "Set11", + "type": "main", + "index": 0 + }, + { + "node": "Set10", + "type": "main", + "index": 0 + }, + { + "node": "Set13", + "type": "main", + "index": 0 + }, + { + "node": "Set12", + "type": "main", + "index": 0 + }, + { + "node": "Function11", + "type": "main", + "index": 0 + }, + { + "node": "Function12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function11": { + "main": [ + [ + { + "node": "Merge3", + "type": "main", + "index": 0 + }, + { + "node": "Merge2", + "type": "main", + "index": 0 + }, + { + "node": "Merge4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function12": { + "main": [ + [ + { + "node": "Merge3", + "type": "main", + "index": 1 + }, + { + "node": "Merge2", + "type": "main", + "index": 1 + }, + { + "node": "Merge4", + "type": "main", + "index": 1 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/109.json b/packages/testing/playwright/test-workflows/workflows/109.json new file mode 100644 index 0000000000..abf846e9f2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/109.json @@ -0,0 +1,280 @@ +{ + "createdAt": "2021-03-09T08:21:50.403Z", + "updatedAt": "2021-07-14T13:48:45.782Z", + "id": "109", + "name": "Customerio:Campaign:get getMettrics geAll:Customer:upsert delete:Event:track trackAnonymous:Segment:add remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "61b889fc-0c5f-4bfc-b477-a22d4f8ad97e" + }, + { + "parameters": { + "resource": "campaign", + "campaignId": 1 + }, + "name": "CustomerIo", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [450, 200], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "notes": "IGNORED_PROPERTIES=trigger_segment_ids", + "id": "2a946a7a-e22f-4ec4-af11-ff6213d5244a" + }, + { + "parameters": { + "resource": "campaign", + "operation": "getMetrics", + "campaignId": 1, + "period": "months", + "additionalFields": {} + }, + "name": "CustomerIo1", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [600, 200], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "0c8e6559-217d-4e55-a13f-2cf3ecf9559c" + }, + { + "parameters": { + "resource": "campaign", + "operation": "getAll" + }, + "name": "CustomerIo2", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [750, 200], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "notes": "IGNORED_PROPERTIES=trigger_segment_ids", + "id": "b704d6b5-e1ac-4cee-ba74-cab476884a9b" + }, + { + "parameters": { + "id": "=customer{{Date.now()}}", + "additionalFields": { + "email": "=fakeemail{{Date.now()}}@gmail.com" + } + }, + "name": "CustomerIo3", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "2be9fc9b-a1c2-4ddb-ac93-a8cfd3a9d80c" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" + }, + "name": "CustomerIo4", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [950, 450], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "d285c006-5edc-40c7-a932-3e648bd899ba" + }, + { + "parameters": { + "resource": "event", + "customerId": "={{$node[\"CustomerIo3\"].json[\"id\"]}}", + "eventName": "Click", + "additionalFields": {} + }, + "name": "CustomerIo5", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [600, 550], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "05605b9b-d0a9-48df-bab5-a6b2794333e1" + }, + { + "parameters": { + "resource": "event", + "operation": "trackAnonymous", + "eventName": "Click", + "additionalFields": {} + }, + "name": "CustomerIo6", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [750, 550], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "505b79eb-bd8c-4951-b0fd-72b9d2a02449" + }, + { + "parameters": { + "resource": "segment", + "segmentId": 10, + "customerIds": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" + }, + "name": "CustomerIo7", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [600, 400], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "81151093-ae55-43fe-88da-db9ac4655406" + }, + { + "parameters": { + "resource": "segment", + "operation": "remove", + "segmentId": 10, + "customerIds": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" + }, + "name": "CustomerIo8", + "type": "n8n-nodes-base.customerIo", + "typeVersion": 1, + "position": [750, 400], + "credentials": { + "customerIoApi": { + "id": "78", + "name": "Customer.io creds" + } + }, + "id": "13d89387-b408-41f3-b22c-8dccb11134ea" + } + ], + "connections": { + "CustomerIo": { + "main": [ + [ + { + "node": "CustomerIo1", + "type": "main", + "index": 0 + } + ] + ] + }, + "CustomerIo1": { + "main": [ + [ + { + "node": "CustomerIo2", + "type": "main", + "index": 0 + } + ] + ] + }, + "CustomerIo3": { + "main": [ + [ + { + "node": "CustomerIo5", + "type": "main", + "index": 0 + }, + { + "node": "CustomerIo7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "CustomerIo", + "type": "main", + "index": 0 + }, + { + "node": "CustomerIo3", + "type": "main", + "index": 0 + } + ] + ] + }, + "CustomerIo5": { + "main": [ + [ + { + "node": "CustomerIo6", + "type": "main", + "index": 0 + } + ] + ] + }, + "CustomerIo7": { + "main": [ + [ + { + "node": "CustomerIo8", + "type": "main", + "index": 0 + } + ] + ] + }, + "CustomerIo8": { + "main": [ + [ + { + "node": "CustomerIo4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/11.json b/packages/testing/playwright/test-workflows/workflows/11.json new file mode 100644 index 0000000000..5cf29614c4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/11.json @@ -0,0 +1,387 @@ +{ + "createdAt": "2021-02-15T16:15:47.074Z", + "updatedAt": "2021-06-04T14:24:35.242Z", + "id": "11", + "name": "Mailchimp:Member:getall get create update delete:Member Tag:create delete:ListGroup:getAll:Campaign:getAll get replicate delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [160, 300], + "id": "d8d987a3-cc5c-4ec0-b011-7bc16e31ca08" + }, + { + "parameters": { + "operation": "getAll", + "list": "eb9ad4be19", + "limit": 1, + "options": {} + }, + "name": "Mailchimp1", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [430, 300], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "320b1a49-4754-426d-92ea-e01b24a9f4c6" + }, + { + "parameters": { + "operation": "get", + "list": "eb9ad4be19", + "email": "nodeqa@n8n.io", + "options": {} + }, + "name": "Mailchimp", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [590, 300], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "1abaa505-82e8-47c0-89f1-b66c9f9f3d22" + }, + { + "parameters": { + "operation": "update", + "list": "eb9ad4be19", + "email": "={{$json[\"email_address\"]}}", + "updateFields": { + "emailType": "html" + } + }, + "name": "Mailchimp2", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [780, 300], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "54452790-7916-4f94-9e9a-91e0e87a5267" + }, + { + "parameters": { + "resource": "memberTag", + "list": "eb9ad4be19", + "email": "nodeqa@n8n.io", + "tags": ["n8n"], + "options": {} + }, + "name": "Mailchimp4", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [790, 140], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "f6b3215e-4628-4118-b994-e3f568f0dd61" + }, + { + "parameters": { + "resource": "memberTag", + "operation": "delete", + "list": "eb9ad4be19", + "email": "nodeqa@n8n.io", + "tags": ["n8n"], + "options": {} + }, + "name": "Mailchimp5", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [970, 140], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "9e1dafb8-8afd-4b0d-9623-65b5fb6c1322" + }, + { + "parameters": { + "list": "eb9ad4be19", + "email": "={{$json[\"email\"]}}", + "status": "subscribed", + "options": {} + }, + "name": "Mailchimp3", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [570, 450], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "197d2f33-acf1-433f-bf88-c44e076539c5" + }, + { + "parameters": { + "functionCode": "items = [{\n json:{\n email: `test${Date.now().toString().substr(5)}@gmail.com`\n }\n}\n]\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [430, 450], + "notesInFlow": true, + "notes": "Generate fake email", + "id": "9173b153-2d71-41c5-88d3-34a73d187e1b" + }, + { + "parameters": { + "operation": "delete", + "list": "eb9ad4be19", + "email": "={{$json[\"email_address\"]}}" + }, + "name": "Mailchimp6", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [730, 450], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "60e1eb5b-1725-4b11-a22f-27317dcbee60" + }, + { + "parameters": { + "resource": "listGroup", + "list": "eb9ad4be19", + "groupCategory": "2adbc0d543", + "limit": 1 + }, + "name": "Mailchimp7", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [430, 140], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "57698c39-732e-43ab-b29b-abc24eeab04b" + }, + { + "parameters": { + "resource": "campaign", + "limit": 1, + "options": {} + }, + "name": "Mailchimp8", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [430, 610], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "b24cf3d7-b5bf-4386-af74-f1b20fec54f0" + }, + { + "parameters": { + "resource": "campaign", + "operation": "get", + "campaignId": "={{$node[\"Mailchimp8\"].json[\"id\"]}}" + }, + "name": "Mailchimp9", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [580, 610], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "3a7e9e1a-f070-4c89-9f27-77e9338afca5" + }, + { + "parameters": { + "resource": "campaign", + "operation": "replicate", + "campaignId": "={{$node[\"Mailchimp8\"].json[\"id\"]}}" + }, + "name": "Mailchimp10", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [720, 610], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "3c7ab34b-7762-4c36-aeb1-2c51e9a27c88" + }, + { + "parameters": { + "resource": "campaign", + "operation": "delete", + "campaignId": "={{$node[\"Mailchimp10\"].json[\"id\"]}}" + }, + "name": "Mailchimp11", + "type": "n8n-nodes-base.mailchimp", + "typeVersion": 1, + "position": [870, 610], + "credentials": { + "mailchimpApi": { + "id": "29", + "name": "Mailchimp creds" + } + }, + "id": "34e5824a-841b-4890-b5d9-7d72faa17bfc" + } + ], + "connections": { + "Mailchimp1": { + "main": [ + [ + { + "node": "Mailchimp", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp": { + "main": [ + [ + { + "node": "Mailchimp2", + "type": "main", + "index": 0 + }, + { + "node": "Mailchimp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Mailchimp1", + "type": "main", + "index": 0 + }, + { + "node": "Function", + "type": "main", + "index": 0 + }, + { + "node": "Mailchimp7", + "type": "main", + "index": 0 + }, + { + "node": "Mailchimp8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp4": { + "main": [ + [ + { + "node": "Mailchimp5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Mailchimp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp3": { + "main": [ + [ + { + "node": "Mailchimp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp8": { + "main": [ + [ + { + "node": "Mailchimp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp9": { + "main": [ + [ + { + "node": "Mailchimp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mailchimp10": { + "main": [ + [ + { + "node": "Mailchimp11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/110.json b/packages/testing/playwright/test-workflows/workflows/110.json new file mode 100644 index 0000000000..b0545cb5cc --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/110.json @@ -0,0 +1,70 @@ +{ + "createdAt": "2021-03-09T09:32:25.259Z", + "updatedAt": "2021-03-09T09:32:25.259Z", + "id": "110", + "name": "GraphQL", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9d428026-3835-4357-a2a2-07ec644a11fa" + }, + { + "parameters": { + "requestMethod": "GET", + "endpoint": "https://countries.trevorblades.com/", + "query": "query{\n country(code:\"DE\"){\n name,code,capital,currency\n }\n}" + }, + "name": "GraphQL", + "type": "n8n-nodes-base.graphql", + "typeVersion": 1, + "position": [450, 300], + "id": "f74bf4cd-1dcf-4103-bd16-ac5e8c9eaa4a" + }, + { + "parameters": { + "functionCode": "testData = JSON.stringify({ country: { name: \"Germany\", code: \"DE\", capital: \"Berlin\", currency: \"EUR\" } })\n\nif(JSON.stringify($node['GraphQL'].json.data) !== testData){\n throw new Error('Error in GraphQL node');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [650, 300], + "id": "238509ad-714e-420a-a521-5b2e9d973c38" + } + ], + "connections": { + "GraphQL": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "GraphQL", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/111.json b/packages/testing/playwright/test-workflows/workflows/111.json new file mode 100644 index 0000000000..c3e7427eb5 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/111.json @@ -0,0 +1,130 @@ +{ + "createdAt": "2021-03-09T10:08:44.018Z", + "updatedAt": "2021-10-27T11:17:13.078Z", + "id": "111", + "name": "Spreadsheet File", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "cbe7cbcd-cf83-498b-8f42-0ebff7d279ed" + }, + { + "parameters": { + "operation": "toFile", + "fileFormat": "html", + "options": {} + }, + "name": "Spreadsheet File", + "type": "n8n-nodes-base.spreadsheetFile", + "typeVersion": 1, + "position": [650, 300], + "id": "d591ad7b-d116-405a-8866-a4d5c6a4624b" + }, + { + "parameters": { + "options": {} + }, + "name": "Spreadsheet File1", + "type": "n8n-nodes-base.spreadsheetFile", + "typeVersion": 1, + "position": [800, 450], + "id": "88b9ed84-42da-4a23-a7df-c5b83487dab1" + }, + { + "parameters": { + "functionCode": "items=[\n {\n json:{\n names:['test1','test12','test13','test14']\n }\n },\n {\n json:{\n names:['test2','test22','test23','test24']\n }\n },\n {\n json:{\n names:['test3','test32','test33','test34']\n }\n },\n {\n json:{\n names:['test4','test42','test43','test44']\n }\n },\n]\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [500, 300], + "id": "1df49508-7816-408e-8aed-7ba7452d3a1f" + }, + { + "parameters": { + "functionCode": "testData='PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT48dGFibGU+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMCIgaWQ9InNqcy1BMSI+bmFtZXMuMDwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJuYW1lcy4xIiBpZD0ic2pzLUIxIj5uYW1lcy4xPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9Im5hbWVzLjIiIGlkPSJzanMtQzEiPm5hbWVzLjI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMyIgaWQ9InNqcy1EMSI+bmFtZXMuMzwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MSIgaWQ9InNqcy1BMiI+dGVzdDE8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEyIiBpZD0ic2pzLUIyIj50ZXN0MTI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEzIiBpZD0ic2pzLUMyIj50ZXN0MTM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDE0IiBpZD0ic2pzLUQyIj50ZXN0MTQ8L3RkPjwvdHI+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDIiIGlkPSJzanMtQTMiPnRlc3QyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMiIgaWQ9InNqcy1CMyI+dGVzdDIyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMyIgaWQ9InNqcy1DMyI+dGVzdDIzPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyNCIgaWQ9InNqcy1EMyI+dGVzdDI0PC90ZD48L3RyPjx0cj48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QzIiBpZD0ic2pzLUE0Ij50ZXN0MzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzIiIGlkPSJzanMtQjQiPnRlc3QzMjwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzMiIGlkPSJzanMtQzQiPnRlc3QzMzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzQiIGlkPSJzanMtRDQiPnRlc3QzNDwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0NCIgaWQ9InNqcy1BNSI+dGVzdDQ8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQyIiBpZD0ic2pzLUI1Ij50ZXN0NDI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQzIiBpZD0ic2pzLUM1Ij50ZXN0NDM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQ0IiBpZD0ic2pzLUQ1Ij50ZXN0NDQ8L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPg==';\nif(testData !== items[0].binary.data.data){\n throw new Error('Error in Spreadsheet File node (write to file)');\n}\nreturn items;" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [800, 300], + "notesInFlow": true, + "notes": "Verify write to file", + "id": "64f7019d-5fa8-456e-a640-084cd57f3ec0" + }, + { + "parameters": { + "functionCode": "testData = JSON.stringify(\n[\n{\n\"names.0\": \"test1\",\n\"names.1\": \"test12\",\n\"names.2\": \"test13\",\n\"names.3\": \"test14\"\n},\n{\n\"names.0\": \"test2\",\n\"names.1\": \"test22\",\n\"names.2\": \"test23\",\n\"names.3\": \"test24\"\n},\n{\n\"names.0\": \"test3\",\n\"names.1\": \"test32\",\n\"names.2\": \"test33\",\n\"names.3\": \"test34\"\n},\n{\n\"names.0\": \"test4\",\n\"names.1\": \"test42\",\n\"names.2\": \"test43\",\n\"names.3\": \"test44\"\n}\n]);\n\nif(testData !== JSON.stringify(items.map(item => item.json))){\n throw new Error('Error in Spreadsheet File node (read file)');\n}\nreturn items;" + }, + "name": "Function2", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [950, 450], + "notes": "verify read file", + "id": "a5eb9e0e-922f-4156-b586-90c42bcde889" + } + ], + "connections": { + "Spreadsheet File": { + "main": [ + [ + { + "node": "Function1", + "type": "main", + "index": 0 + }, + { + "node": "Spreadsheet File1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Spreadsheet File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spreadsheet File1": { + "main": [ + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/112.json b/packages/testing/playwright/test-workflows/workflows/112.json new file mode 100644 index 0000000000..830abd5119 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/112.json @@ -0,0 +1,192 @@ +{ + "createdAt": "2021-03-09T14:05:33.799Z", + "updatedAt": "2021-03-09T14:15:46.076Z", + "id": "112", + "name": "Rabbitmq:queue:exchange", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "ee0f6961-37a7-486d-9d75-f73aa8708750" + }, + { + "parameters": { + "queue": "=SimpleQueue", + "sendInputData": false, + "message": "=Message{{Date.now()}}", + "options": { + "autoDelete": true, + "durable": false + } + }, + "name": "RabbitMQ", + "type": "n8n-nodes-base.rabbitmq", + "typeVersion": 1, + "position": [500, 200], + "credentials": { + "rabbitmq": { + "id": "79", + "name": "RabbitMQ creds" + } + }, + "id": "3b3b66f0-91ab-4a41-a2ab-fec7ce0e36e4" + }, + { + "parameters": { + "mode": "exchange", + "exchange": "FanoutExchange", + "routingKey": "test", + "sendInputData": false, + "message": "=FanoutMessage{{Date.now()}}", + "options": { + "durable": false + } + }, + "name": "RabbitMQ1", + "type": "n8n-nodes-base.rabbitmq", + "typeVersion": 1, + "position": [500, 350], + "credentials": { + "rabbitmq": { + "id": "79", + "name": "RabbitMQ creds" + } + }, + "id": "f4bb81a0-f6c2-4194-b8ec-0fe6f2350384" + }, + { + "parameters": { + "mode": "exchange", + "exchange": "DirectExchange", + "exchangeType": "direct", + "routingKey": "test", + "sendInputData": false, + "message": "=DirectMessage{{Date.now()}}", + "options": { + "durable": false + } + }, + "name": "RabbitMQ2", + "type": "n8n-nodes-base.rabbitmq", + "typeVersion": 1, + "position": [650, 350], + "credentials": { + "rabbitmq": { + "id": "79", + "name": "RabbitMQ creds" + } + }, + "id": "ecd77a9f-6523-445d-a7b1-e1585c652c55" + }, + { + "parameters": { + "mode": "exchange", + "exchange": "TopicExchange", + "exchangeType": "topic", + "routingKey": "test", + "sendInputData": false, + "message": "=TopicMessage{{Date.now()}}", + "options": { + "durable": false + } + }, + "name": "RabbitMQ3", + "type": "n8n-nodes-base.rabbitmq", + "typeVersion": 1, + "position": [800, 350], + "credentials": { + "rabbitmq": { + "id": "79", + "name": "RabbitMQ creds" + } + }, + "id": "bd8becb0-8c2b-4516-b375-ac005bfe9a18" + }, + { + "parameters": { + "mode": "exchange", + "exchange": "HeadersExchange", + "exchangeType": "headers", + "routingKey": "test", + "sendInputData": false, + "message": "=HeadersMessage{{Date.now()}}", + "options": { + "durable": false + } + }, + "name": "RabbitMQ4", + "type": "n8n-nodes-base.rabbitmq", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "rabbitmq": { + "id": "79", + "name": "RabbitMQ creds" + } + }, + "id": "abdcf5b6-21ef-40da-b58d-3a2f9ad3b676" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "RabbitMQ", + "type": "main", + "index": 0 + }, + { + "node": "RabbitMQ1", + "type": "main", + "index": 0 + } + ] + ] + }, + "RabbitMQ1": { + "main": [ + [ + { + "node": "RabbitMQ2", + "type": "main", + "index": 0 + } + ] + ] + }, + "RabbitMQ2": { + "main": [ + [ + { + "node": "RabbitMQ3", + "type": "main", + "index": 0 + } + ] + ] + }, + "RabbitMQ3": { + "main": [ + [ + { + "node": "RabbitMQ4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/113.json b/packages/testing/playwright/test-workflows/workflows/113.json new file mode 100644 index 0000000000..3a3ba40302 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/113.json @@ -0,0 +1,91 @@ +{ + "createdAt": "2021-03-09T14:26:06.900Z", + "updatedAt": "2021-03-09T17:25:17.607Z", + "id": "113", + "name": "AMQP", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "cb0c801c-e74c-43a6-9b4d-6e3c2b265f22" + }, + { + "parameters": { + "sink": "AMQPQueue", + "headerParametersJson": "{}", + "options": { + "reconnect": true, + "reconnectLimit": 5 + } + }, + "name": "AMQP Sender", + "type": "n8n-nodes-base.amqp", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "amqp": { + "id": "80", + "name": "AMQP creds" + } + }, + "id": "7d7a98e3-27b0-49bf-8c68-a525895d0b8c" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "message", + "value": "=AMQPMessage{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "951c5927-93e8-4efb-924a-e6516679017c" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "AMQP Sender": { + "main": [[]] + }, + "Set": { + "main": [ + [ + { + "node": "AMQP Sender", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/114.json b/packages/testing/playwright/test-workflows/workflows/114.json new file mode 100644 index 0000000000..e78e9dfee9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/114.json @@ -0,0 +1,561 @@ +{ + "createdAt": "2021-03-09T20:05:11.480Z", + "updatedAt": "2021-03-22T10:44:13.980Z", + "id": "114", + "name": "Monday:Board:create get getAll archive:BoardColumn:create getAll:BoardGroup:create delete getAll:BoardItem:create addUpdate changeColumnValue get getAll getByColumnValue move delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [200, 300], + "id": "f7c60ae7-b68c-4251-9778-4d7a1f033285" + }, + { + "parameters": { + "name": "=Board{{Date.now()}}", + "kind": "private", + "additionalFields": {} + }, + "name": "Monday.com", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [440, 280], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "839f14d0-14de-40e9-81c8-08810b6edf70" + }, + { + "parameters": { + "operation": "get", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" + }, + "name": "Monday.com1", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [600, 280], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "bbf1c663-e121-4d6c-9afc-a6185d15d45a" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Monday.com2", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [750, 280], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "19e62461-a13a-4ed5-984d-48c932f3c673" + }, + { + "parameters": { + "operation": "archive", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" + }, + "name": "Monday.com3", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [3110, 270], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "1f5c07fc-54f7-47fd-9c32-5c5d58013755" + }, + { + "parameters": { + "resource": "boardColumn", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "title": "=Column{{Date.now()}}", + "columnType": "checkbox", + "additionalFields": {} + }, + "name": "Monday.com4", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [900, 0], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "e96e4955-0dd8-45a9-90ae-b8f0b2cf4cb2" + }, + { + "parameters": { + "resource": "boardColumn", + "operation": "getAll", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" + }, + "name": "Monday.com5", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2850, -50], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "b009f62b-41a1-46f1-8796-30fa18e74c5c" + }, + { + "parameters": { + "resource": "boardGroup", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "name": "=Group{{Date.now()}}" + }, + "name": "Monday.com6", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1200, 50], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "530e0e10-cba4-41c8-8e8c-203f451501b2" + }, + { + "parameters": { + "resource": "boardGroup", + "operation": "delete", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}" + }, + "name": "Monday.com7", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2540, 50], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "27c609e7-c3e6-4e4a-af47-08a9a34ce21c" + }, + { + "parameters": { + "resource": "boardGroup", + "operation": "getAll", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" + }, + "name": "Monday.com8", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2690, 50], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "405a5103-b9ce-4297-90d8-d5fa8fd5852f" + }, + { + "parameters": { + "resource": "boardItem", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}", + "name": "=Item{{Date.now()}}", + "additionalFields": {} + }, + "name": "Monday.com9", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1350, 150], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "dc5e88cf-04a4-4858-927a-2e08c4b9ceb8" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "addUpdate", + "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", + "value": "=Update{{Date.now()}}" + }, + "name": "Monday.com10", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1500, 150], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "1d508527-3c1c-4c7c-a6f6-19ed2e674eb8" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "changeColumnValue", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", + "columnId": "={{$node[\"Monday.com4\"].json[\"id\"]}}", + "value": "={{JSON.stringify({\"checked\": \"true\"});}}" + }, + "name": "Monday.com11", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1650, 150], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "f03bca62-ee0f-4598-8833-26d9ba2f83fb" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "get", + "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}" + }, + "name": "Monday.com12", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1800, 150], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "b4a2cfef-83ea-430f-8b0c-3a7b3dafc5ed" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "getAll", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Monday.com13", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [1950, 150], + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "549dc7a6-e611-4c75-9c37-40673a79bf39" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "getByColumnValue", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "columnId": "={{$node[\"Monday.com4\"].json[\"id\"]}}", + "columnValue": "\"{\"checked\":\"true\"}\"", + "limit": 1 + }, + "name": "Monday.com14", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2100, 150], + "alwaysOutputData": true, + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "7026f1b0-8014-43ae-930d-a1c7db989163" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "move", + "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", + "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", + "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}" + }, + "name": "Monday.com15", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2250, 150], + "alwaysOutputData": true, + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "596fc3f9-0d39-4f7f-864b-32a6640e7ff0" + }, + { + "parameters": { + "resource": "boardItem", + "operation": "delete", + "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}" + }, + "name": "Monday.com16", + "type": "n8n-nodes-base.mondayCom", + "typeVersion": 1, + "position": [2400, 150], + "alwaysOutputData": true, + "credentials": { + "mondayComApi": { + "id": "113", + "name": "Monday.com API creds" + } + }, + "id": "6080f346-15d2-484f-8cfa-44b93dc93213" + }, + { + "parameters": { + "mode": "wait" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [2960, 120], + "id": "7ca43678-0fea-4fc4-85c5-af1dc02be4d2" + } + ], + "connections": { + "Monday.com": { + "main": [ + [ + { + "node": "Monday.com1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com1": { + "main": [ + [ + { + "node": "Monday.com2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com2": { + "main": [ + [ + { + "node": "Monday.com4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com4": { + "main": [ + [ + { + "node": "Monday.com6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com6": { + "main": [ + [ + { + "node": "Monday.com9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com7": { + "main": [ + [ + { + "node": "Monday.com8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com9": { + "main": [ + [ + { + "node": "Monday.com10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com10": { + "main": [ + [ + { + "node": "Monday.com11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com11": { + "main": [ + [ + { + "node": "Monday.com12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com12": { + "main": [ + [ + { + "node": "Monday.com13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com13": { + "main": [ + [ + { + "node": "Monday.com14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com14": { + "main": [ + [ + { + "node": "Monday.com15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com15": { + "main": [ + [ + { + "node": "Monday.com16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com16": { + "main": [ + [ + { + "node": "Monday.com7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com8": { + "main": [ + [ + { + "node": "Monday.com5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Monday.com5": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + }, + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "Monday.com3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Monday.com", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/115.json b/packages/testing/playwright/test-workflows/workflows/115.json new file mode 100644 index 0000000000..b2ec984e56 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/115.json @@ -0,0 +1,184 @@ +{ + "createdAt": "2021-03-10T09:08:07.793Z", + "updatedAt": "2021-03-10T09:08:07.793Z", + "id": "115", + "name": "Cockpit:Collection:createEntry updateEntry getAllEntries:Singleton:get:Form:submit", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "768b2ddf-9888-4361-8f1e-3a4dff195e6b" + }, + { + "parameters": { + "operation": "create", + "collection": "FixedCollection", + "dataFieldsUi": { + "field": [ + { + "name": "Name", + "value": "=entry{{Date.now()}}" + } + ] + } + }, + "name": "Cockpit", + "type": "n8n-nodes-base.cockpit", + "typeVersion": 1, + "position": [550, 180], + "credentials": { + "cockpitApi": { + "id": "81", + "name": "Cockpit API creds" + } + }, + "id": "a731c3d7-ffb7-493e-a3ac-9fdef8776801" + }, + { + "parameters": { + "operation": "update", + "collection": "FixedCollection", + "id": "={{$node[\"Cockpit\"].json[\"_id\"]}}", + "dataFieldsUi": { + "field": [ + { + "name": "Name", + "value": "=UpdatedEntry{{Date.now()}}" + } + ] + } + }, + "name": "Cockpit1", + "type": "n8n-nodes-base.cockpit", + "typeVersion": 1, + "position": [700, 180], + "credentials": { + "cockpitApi": { + "id": "81", + "name": "Cockpit API creds" + } + }, + "id": "be0de116-a348-436c-8903-a78f2d9978f3" + }, + { + "parameters": { + "collection": "FixedCollection", + "limit": 1, + "options": {} + }, + "name": "Cockpit2", + "type": "n8n-nodes-base.cockpit", + "typeVersion": 1, + "position": [850, 180], + "credentials": { + "cockpitApi": { + "id": "81", + "name": "Cockpit API creds" + } + }, + "id": "e151e242-d0a9-43d9-8003-632b4f8569ad" + }, + { + "parameters": { + "resource": "singleton", + "singleton": "FixedSingleton" + }, + "name": "Cockpit3", + "type": "n8n-nodes-base.cockpit", + "typeVersion": 1, + "position": [550, 350], + "credentials": { + "cockpitApi": { + "id": "81", + "name": "Cockpit API creds" + } + }, + "id": "b1f38f40-c544-496f-bcb9-3957a755a497" + }, + { + "parameters": { + "resource": "form", + "form": "FixedForm", + "dataFieldsUi": { + "field": [ + { + "name": "name", + "value": "=name{{Date.now()}}" + }, + { + "name": "tag", + "value": "=tag{{Date.now()}}" + } + ] + } + }, + "name": "Cockpit4", + "type": "n8n-nodes-base.cockpit", + "typeVersion": 1, + "position": [550, 500], + "credentials": { + "cockpitApi": { + "id": "81", + "name": "Cockpit API creds" + } + }, + "id": "9567077a-58f2-453e-8d36-35d4c68e9510" + } + ], + "connections": { + "Cockpit": { + "main": [ + [ + { + "node": "Cockpit1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Cockpit1": { + "main": [ + [ + { + "node": "Cockpit2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Cockpit", + "type": "main", + "index": 0 + }, + { + "node": "Cockpit3", + "type": "main", + "index": 0 + }, + { + "node": "Cockpit4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/116.json b/packages/testing/playwright/test-workflows/workflows/116.json new file mode 100644 index 0000000000..984928b627 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/116.json @@ -0,0 +1,236 @@ +{ + "createdAt": "2021-03-10T10:32:50.903Z", + "updatedAt": "2021-03-10T10:32:50.903Z", + "id": "116", + "name": "Ghost:Post(Admin API):create update get getAll delete:Post(Content API):getAll get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "96a1cf58-f3dc-46ea-a07a-5202bffee113" + }, + { + "parameters": { + "source": "adminApi", + "operation": "create", + "title": "=PostTitle{{Date.now()}}", + "content": "=Post Content written at {{Date.now()}}", + "additionalFields": {} + }, + "name": "Ghost", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "ghostAdminApi": { + "id": "83", + "name": "Ghost Admin api creds" + } + }, + "id": "6c09ea13-41e8-4704-b357-4390b14e7255" + }, + { + "parameters": { + "source": "adminApi", + "operation": "update", + "postId": "={{$node[\"Ghost\"].json[\"id\"]}}", + "updateFields": { + "title": "=UpdateTitle{{Date.now()}}" + } + }, + "name": "Ghost1", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "ghostAdminApi": { + "id": "83", + "name": "Ghost Admin api creds" + } + }, + "id": "57fab43f-0013-4250-bcd4-1318f9371097" + }, + { + "parameters": { + "source": "adminApi", + "by": "id", + "identifier": "={{$node[\"Ghost\"].json[\"id\"]}}", + "options": {} + }, + "name": "Ghost2", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "ghostAdminApi": { + "id": "83", + "name": "Ghost Admin api creds" + } + }, + "id": "e032227a-b97e-4b60-8b9e-9061c2d7e279" + }, + { + "parameters": { + "source": "adminApi", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Ghost3", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "ghostAdminApi": { + "id": "83", + "name": "Ghost Admin api creds" + } + }, + "id": "6150282c-3d31-4387-8dbb-74730ada47aa" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Ghost4", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [1150, 450], + "credentials": { + "ghostContentApi": { + "id": "82", + "name": "Ghost Content creds" + } + }, + "id": "488558ee-8ef5-460b-ae0e-31e74ce25d9c" + }, + { + "parameters": { + "by": "id", + "identifier": "={{$node[\"Ghost4\"].json[\"id\"]}}", + "options": {} + }, + "name": "Ghost5", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [1300, 450], + "credentials": { + "ghostContentApi": { + "id": "82", + "name": "Ghost Content creds" + } + }, + "id": "f0f53fe7-b17f-45fc-bfa5-b7db642a22a9" + }, + { + "parameters": { + "source": "adminApi", + "operation": "delete", + "postId": "={{$node[\"Ghost\"].json[\"id\"]}}" + }, + "name": "Ghost6", + "type": "n8n-nodes-base.ghost", + "typeVersion": 1, + "position": [1450, 300], + "credentials": { + "ghostAdminApi": { + "id": "83", + "name": "Ghost Admin api creds" + } + }, + "id": "83c79ebf-21b0-4d8b-be7e-9e7002015990" + } + ], + "connections": { + "Ghost": { + "main": [ + [ + { + "node": "Ghost1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Ghost1": { + "main": [ + [ + { + "node": "Ghost2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Ghost2": { + "main": [ + [ + { + "node": "Ghost3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Ghost3": { + "main": [ + [ + { + "node": "Ghost4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Ghost4": { + "main": [ + [ + { + "node": "Ghost5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Ghost5": { + "main": [ + [ + { + "node": "Ghost6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Ghost", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/117.json b/packages/testing/playwright/test-workflows/workflows/117.json new file mode 100644 index 0000000000..ab2278c768 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/117.json @@ -0,0 +1,112 @@ +{ + "createdAt": "2021-03-10T11:09:19.174Z", + "updatedAt": "2021-03-10T11:09:40.674Z", + "id": "117", + "name": "Gotify:Message:create getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "1d2659eb-da2b-4d7c-94f6-09d7dc99ef0d" + }, + { + "parameters": { + "message": "=Message content {{Date.now()}}", + "additionalFields": { + "title": "=Title{{Date.now()}}" + } + }, + "name": "Gotify", + "type": "n8n-nodes-base.gotify", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "gotifyApi": { + "id": "84", + "name": "Gotify API creds" + } + }, + "id": "c8ae4d15-a793-4c51-a13a-5e9541079ed2" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Gotify1", + "type": "n8n-nodes-base.gotify", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "gotifyApi": { + "id": "84", + "name": "Gotify API creds" + } + }, + "id": "9c136007-0f4a-4e13-ba09-03cd4dccbdab" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Gotify\"].json[\"id\"]}}" + }, + "name": "Gotify2", + "type": "n8n-nodes-base.gotify", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "gotifyApi": { + "id": "84", + "name": "Gotify API creds" + } + }, + "id": "fb795089-773b-47a5-b8f5-86c52a1863d6" + } + ], + "connections": { + "Gotify": { + "main": [ + [ + { + "node": "Gotify1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gotify1": { + "main": [ + [ + { + "node": "Gotify2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Gotify", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/118.json b/packages/testing/playwright/test-workflows/workflows/118.json new file mode 100644 index 0000000000..df3e50214b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/118.json @@ -0,0 +1,216 @@ +{ + "createdAt": "2021-03-10T13:48:09.104Z", + "updatedAt": "2021-06-02T10:31:06.860Z", + "id": "118", + "name": "Redis:info set keys get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "bfe11af4-fb50-452c-b976-4d03d10829d2" + }, + { + "parameters": {}, + "name": "Redis", + "type": "n8n-nodes-base.redis", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "redis": { + "id": "85", + "name": "Redis creds" + } + }, + "id": "d63e6bed-6d35-4f90-8a9f-11869262fd3c" + }, + { + "parameters": { + "operation": "set", + "key": "={{$node[\"Set\"].json[\"key\"]}}", + "value": "={{$node[\"Set\"].json[\"value\"]}}" + }, + "name": "Redis1", + "type": "n8n-nodes-base.redis", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "redis": { + "id": "85", + "name": "Redis creds" + } + }, + "id": "de5c3f28-1d4e-4c43-92c1-d9987e472c69" + }, + { + "parameters": { + "operation": "keys", + "keyPattern": "={{$node[\"Set\"].json[\"key\"]}}" + }, + "name": "Redis2", + "type": "n8n-nodes-base.redis", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "redis": { + "id": "85", + "name": "Redis creds" + } + }, + "id": "00d6c08e-263e-43db-a93f-a0bf28d0d0bd" + }, + { + "parameters": { + "operation": "get", + "propertyName": "value", + "key": "={{$node[\"Set\"].json[\"key\"]}}", + "options": {} + }, + "name": "Redis3", + "type": "n8n-nodes-base.redis", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "redis": { + "id": "85", + "name": "Redis creds" + } + }, + "id": "1ee59e47-956c-4c04-b460-0409d488ae1f" + }, + { + "parameters": { + "operation": "delete", + "key": "={{$node[\"Set\"].json[\"key\"]}}" + }, + "name": "Redis4", + "type": "n8n-nodes-base.redis", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "redis": { + "id": "85", + "name": "Redis creds" + } + }, + "id": "08580c27-446e-4b5c-a8a2-956208327019" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "key", + "value": "TestKey" + }, + { + "name": "value", + "value": "=Value{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "779cc18d-7a1a-454d-b70a-b54ae590c896" + }, + { + "parameters": { + "functionCode": "if($node['Set'].json['value'] !== $node['Redis3'].json['value'] ){\n throw new Error('Error in redis node');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1300, 450], + "notesInFlow": true, + "notes": "validate the saved value", + "id": "72efc2c0-6bb3-4560-b935-9231558081a8" + } + ], + "connections": { + "Redis": { + "main": [ + [ + { + "node": "Redis1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Redis1": { + "main": [ + [ + { + "node": "Redis2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Redis2": { + "main": [ + [ + { + "node": "Redis3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Redis3": { + "main": [ + [ + { + "node": "Redis4", + "type": "main", + "index": 0 + }, + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Redis", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/119.json b/packages/testing/playwright/test-workflows/workflows/119.json new file mode 100644 index 0000000000..16157bb740 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/119.json @@ -0,0 +1,181 @@ +{ + "createdAt": "2021-03-10T15:10:43.540Z", + "updatedAt": "2021-03-10T15:13:14.859Z", + "id": "119", + "name": "CrateDB:insert update executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e0aab098-04f4-42ce-b128-c1707e6ab085" + }, + { + "parameters": { + "table": "testtable", + "columns": "id,name" + }, + "name": "CrateDB", + "type": "n8n-nodes-base.crateDb", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "crateDb": { + "id": "86", + "name": "CrateDB creds" + } + }, + "id": "51925b66-eddd-4a2c-bd53-3c93d8c4d3d9" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=Name{{Date.now()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*100000)}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "ca7b9956-a037-4efa-9bfa-769067d489b8" + }, + { + "parameters": { + "operation": "update", + "table": "testtable", + "columns": "id,name" + }, + "name": "CrateDB1", + "type": "n8n-nodes-base.crateDb", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "crateDb": { + "id": "86", + "name": "CrateDB creds" + } + }, + "id": "7f727eb3-00c1-464d-aa3b-503138386420" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=UpdatedName{{Date.now()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{$node[\"Set\"].json[\"id\"]}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [850, 300], + "id": "d8d1fb13-1756-4cff-b6f6-adbe388851f6" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=DELETE FROM \"doc\".\"testtable\" WHERE id={{$node[\"Set1\"].json[\"id\"]}};" + }, + "name": "CrateDB2", + "type": "n8n-nodes-base.crateDb", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "crateDb": { + "id": "86", + "name": "CrateDB creds" + } + }, + "id": "41bbb36e-d1b4-419a-a587-4fb9a0a4d349" + } + ], + "connections": { + "CrateDB": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "CrateDB", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "CrateDB1", + "type": "main", + "index": 0 + } + ] + ] + }, + "CrateDB1": { + "main": [ + [ + { + "node": "CrateDB2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/120.json b/packages/testing/playwright/test-workflows/workflows/120.json new file mode 100644 index 0000000000..c27a9b3440 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/120.json @@ -0,0 +1,209 @@ +{ + "createdAt": "2021-03-10T15:35:11.016Z", + "updatedAt": "2021-03-10T15:36:00.949Z", + "id": "120", + "name": "MySQL:insert update executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "5b615e13-07d6-4c71-af21-318ec21ec4a0" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=Name{{Date.now()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*100000)}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "7fb26b4f-a2aa-4cb9-aa75-8514d7095189" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=UpdatedName{{Date.now()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{$node[\"Set\"].json[\"id\"]}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [850, 300], + "id": "2494e933-9a78-418a-afe2-ada2340d2f56" + }, + { + "parameters": { + "table": "TestTable", + "columns": "id,name" + }, + "name": "MySQL", + "type": "n8n-nodes-base.mySql", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "mySql": { + "id": "87", + "name": "MySQL creds" + } + }, + "id": "3a942f01-b88b-4b01-bfe6-355be41e0ce9" + }, + { + "parameters": { + "operation": "update", + "table": "TestTable", + "columns": "id,name" + }, + "name": "MySQL1", + "type": "n8n-nodes-base.mySql", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "mySql": { + "id": "87", + "name": "MySQL creds" + } + }, + "id": "6bf22c0c-7a5a-47d6-98e7-129eb92b2825" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=SELECT * FROM TestTable LIMIT 1;" + }, + "name": "MySQL2", + "type": "n8n-nodes-base.mySql", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "mySql": { + "id": "87", + "name": "MySQL creds" + } + }, + "id": "d984d201-7a77-423b-85a3-fc6a59417488" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=DELETE FROM TestTable WHERE id={{$node[\"Set1\"].json[\"id\"]}};" + }, + "name": "MySQL3", + "type": "n8n-nodes-base.mySql", + "typeVersion": 1, + "position": [1450, 300], + "credentials": { + "mySql": { + "id": "87", + "name": "MySQL creds" + } + }, + "id": "c19d0fc0-2e2d-4bbf-a7dd-a2e625dc7984" + } + ], + "connections": { + "Set": { + "main": [ + [ + { + "node": "MySQL", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "MySQL1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "MySQL": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "MySQL1": { + "main": [ + [ + { + "node": "MySQL2", + "type": "main", + "index": 0 + } + ] + ] + }, + "MySQL2": { + "main": [ + [ + { + "node": "MySQL3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/121.json b/packages/testing/playwright/test-workflows/workflows/121.json new file mode 100644 index 0000000000..7b16cc9498 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/121.json @@ -0,0 +1,421 @@ +{ + "createdAt": "2021-03-10T16:41:57.544Z", + "updatedAt": "2021-07-14T14:15:34.356Z", + "id": "121", + "name": "Mautic:Company:create update get getAll delete:Contact:create update get getAll delete:ContactCompany:add remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "32f14cad-d9c6-4b95-ab68-d4826d48fabf" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "name": "=Company{{Date.now()}}", + "additionalFields": {} + }, + "name": "Mautic", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "d51c36e4-8d14-4d6b-9d98-a54dba80d8d9" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "operation": "update", + "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdatedCompany{{Date.now()}}" + } + }, + "name": "Mautic1", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [700, 250], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "9d20aa4c-55c2-43f1-9eb8-61aa035fa095" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "operation": "get", + "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" + }, + "name": "Mautic2", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1300, 250], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "2c32e4c1-c0f0-4119-935a-a41944fcc1f6" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Mautic3", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1450, 250], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "e8aaee34-faed-4540-a153-e007360950e6" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "operation": "delete", + "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" + }, + "name": "Mautic4", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1600, 250], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "51e9562a-6ed2-474f-a166-79aadba161ce" + }, + { + "parameters": { + "authentication": "oAuth2", + "email": "=fakeemail{{Date.now()}}@gmail.com", + "firstName": "=Name{{Date.now()}}", + "lastName": "=LasName{{Date.now()}}", + "position": "=Position{{Date.now()}}", + "title": "=Title{{Date.now()}}", + "additionalFields": {}, + "options": {} + }, + "name": "Mautic5", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [550, 400], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "b1254079-c7e5-4bbd-b82d-949659011b06" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "update", + "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", + "updateFields": { + "title": "=UpdatedTitle{{Date.now()}}" + }, + "options": {} + }, + "name": "Mautic6", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [700, 400], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "a52da7e6-2d92-4e0f-a216-8ea0a40eb335" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "get", + "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", + "options": {} + }, + "name": "Mautic7", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1300, 400], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "f6defb20-2e74-4a39-9232-b5da5c865f0c" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Mautic8", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1450, 400], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "e58f2f81-3e0c-45e4-818b-5f665ea7c539" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "delete", + "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", + "options": {} + }, + "name": "Mautic9", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1600, 400], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "f06c2ab6-32ee-4c50-a122-f3bad0523587" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "companyContact", + "operation": "add", + "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", + "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" + }, + "name": "Mautic10", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1000, 340], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "fb483ebe-6c2c-4003-9808-c669f4a91274" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "companyContact", + "operation": "remove", + "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", + "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" + }, + "name": "Mautic11", + "type": "n8n-nodes-base.mautic", + "typeVersion": 1, + "position": [1150, 340], + "credentials": { + "mauticOAuth2Api": { + "id": "89", + "name": "Mautic OAuth2 API creds" + } + }, + "id": "98d7a2b6-1cc9-4887-88ca-ce5866116d63" + }, + { + "parameters": { + "mode": "wait" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [850, 340], + "notesInFlow": true, + "notes": "Keep single execution", + "id": "be2a68cb-4317-4f90-8c79-fb0b30014081" + } + ], + "connections": { + "Mautic": { + "main": [ + [ + { + "node": "Mautic1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Mautic", + "type": "main", + "index": 0 + }, + { + "node": "Mautic5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic1": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic2": { + "main": [ + [ + { + "node": "Mautic3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic3": { + "main": [ + [ + { + "node": "Mautic4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic5": { + "main": [ + [ + { + "node": "Mautic6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic6": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Mautic7": { + "main": [ + [ + { + "node": "Mautic8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic8": { + "main": [ + [ + { + "node": "Mautic9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic10": { + "main": [ + [ + { + "node": "Mautic11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mautic11": { + "main": [ + [ + { + "node": "Mautic2", + "type": "main", + "index": 0 + }, + { + "node": "Mautic7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "Mautic10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/122.json b/packages/testing/playwright/test-workflows/workflows/122.json new file mode 100644 index 0000000000..689e30055a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/122.json @@ -0,0 +1,466 @@ +{ + "createdAt": "2021-03-11T08:54:28.548Z", + "updatedAt": "2021-05-25T12:50:39.981Z", + "id": "122", + "name": "Orbit:Member:upsert get update delete getAll lookup:Note:create update getAll:Activity:create getAll:Post:create getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [410, 200], + "id": "39ef826b-4c37-4617-aacb-e2d276721e1f" + }, + { + "parameters": { + "operation": "upsert", + "workspaceId": "543", + "identityUi": { + "identityValue": { + "source": "email", + "email": "={{$node[\"Set\"].json[\"email\"]}}" + } + }, + "additionalFields": { + "name": "=Name{{Date.now()}}" + } + }, + "name": "Orbit", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [750, 200], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "b36edb18-df88-418c-8a9d-22d43bb6aa89" + }, + { + "parameters": { + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}" + }, + "name": "Orbit1", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [900, 200], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "c48b87cd-09dd-414e-ae47-668b6379685e" + }, + { + "parameters": { + "operation": "getAll", + "workspaceId": "543", + "limit": 1, + "options": {} + }, + "name": "Orbit2", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [600, 500], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "0de00f28-5062-4deb-98e4-f4adf9ca657e" + }, + { + "parameters": { + "operation": "update", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Orbit\"].json[\"attributes\"][\"name\"]}}" + } + }, + "name": "Orbit3", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1050, 200], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "83cbc054-9ce4-43db-9b43-6f610596069b" + }, + { + "parameters": { + "operation": "lookup", + "workspaceId": "543", + "source": "github", + "searchBy": "username", + "username": "={{$node[\"Orbit2\"].json[\"attributes\"][\"github\"]}}" + }, + "name": "Orbit4", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [750, 500], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "599f8644-eed0-414a-82cb-cccc327a2e13" + }, + { + "parameters": { + "operation": "delete", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}" + }, + "name": "Orbit5", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1200, 200], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "03d30c2f-044c-4cf6-9d9c-f1cf39027dab" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "email", + "value": "=fake{{Date.now()}}@gmail.com" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [600, 200], + "id": "9131159f-68a7-4379-945e-2743187ae993" + }, + { + "parameters": { + "resource": "activity", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", + "title": "=Title{{Date.now()}}", + "additionalFields": {} + }, + "name": "Orbit6", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [900, 350], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "27ac35b2-64d0-4422-a5a1-dc453af2f01d" + }, + { + "parameters": { + "resource": "activity", + "operation": "getAll", + "workspaceId": "543", + "limit": 1, + "filters": {} + }, + "name": "Orbit7", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1050, 350], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "8f50074d-e558-4150-bc0c-c0721e071aa0" + }, + { + "parameters": { + "resource": "note", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", + "note": "=Note{{Date.now()}}" + }, + "name": "Orbit8", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [900, 50], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "bba7efcf-70e2-48c3-940f-2233b3ab0f05" + }, + { + "parameters": { + "resource": "note", + "operation": "update", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", + "noteId": "={{$node[\"Orbit8\"].json[\"id\"]}}", + "note": "=Updated{{$node[\"Orbit8\"].json[\"attributes\"][\"body\"]}}" + }, + "name": "Orbit9", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1050, 50], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "a5ea5c0a-c939-4017-b355-86be07da2fcf" + }, + { + "parameters": { + "resource": "note", + "operation": "getAll", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Orbit10", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1200, 50], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "e070222a-741f-4f31-a2cb-47731f3b7f75" + }, + { + "parameters": { + "resource": "post", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit4\"].json[\"id\"]}}", + "url": "=https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020?test_timestamp={{Date.now()}}", + "additionalFields": {} + }, + "name": "Orbit11", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [900, 500], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "34567405-fff1-4d1a-b652-0dcd61dedb9a" + }, + { + "parameters": { + "resource": "post", + "operation": "getAll", + "workspaceId": "543", + "limit": 1, + "filters": {} + }, + "name": "Orbit12", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1050, 500], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "f155c381-f37e-4ec2-876c-8123213fd4ef" + }, + { + "parameters": { + "resource": "post", + "operation": "delete", + "workspaceId": "543", + "memberId": "={{$node[\"Orbit4\"].json[\"id\"]}}", + "postId": "={{$node[\"Orbit11\"].json[\"id\"]}}" + }, + "name": "Orbit13", + "type": "n8n-nodes-base.orbit", + "typeVersion": 1, + "position": [1050, 650], + "credentials": { + "orbitApi": { + "id": "112", + "name": "Orbit API creds" + } + }, + "id": "f5a44540-6958-4cf0-919d-a4c9b07df59f" + } + ], + "connections": { + "Orbit": { + "main": [ + [ + { + "node": "Orbit6", + "type": "main", + "index": 0 + }, + { + "node": "Orbit8", + "type": "main", + "index": 0 + }, + { + "node": "Orbit1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit1": { + "main": [ + [ + { + "node": "Orbit3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit2": { + "main": [ + [ + { + "node": "Orbit4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit3": { + "main": [ + [ + { + "node": "Orbit5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Orbit2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Orbit", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit6": { + "main": [ + [ + { + "node": "Orbit7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit8": { + "main": [ + [ + { + "node": "Orbit9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit9": { + "main": [ + [ + { + "node": "Orbit10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit11": { + "main": [ + [ + { + "node": "Orbit12", + "type": "main", + "index": 0 + }, + { + "node": "Orbit13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Orbit4": { + "main": [ + [ + { + "node": "Orbit11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/123.json b/packages/testing/playwright/test-workflows/workflows/123.json new file mode 100644 index 0000000000..6c5f5ebd86 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/123.json @@ -0,0 +1,213 @@ +{ + "createdAt": "2021-03-11T09:31:40.228Z", + "updatedAt": "2021-03-11T09:32:06.868Z", + "id": "123", + "name": "MongoDB:insert find update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "a355b2f8-5354-4e3f-9409-c29de450e49c" + }, + { + "parameters": { + "operation": "insert", + "collection": "TestCollection", + "fields": "id,name,valid" + }, + "name": "MongoDB", + "type": "n8n-nodes-base.mongoDb", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "mongoDb": { + "id": "90", + "name": "MongoDB creds" + } + }, + "id": "2b30fbfb-08dd-48ac-bec7-722457fec924" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=Test{{Date.now()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*10000)}}" + } + ], + "boolean": [ + { + "name": "valid", + "value": "={{(Math.random()*100) > 50}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "notesInFlow": true, + "notes": "set document", + "id": "3a57b5c9-3f2e-43ef-a0ae-3598e1eb54b7" + }, + { + "parameters": { + "collection": "TestCollection" + }, + "name": "MongoDB1", + "type": "n8n-nodes-base.mongoDb", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "mongoDb": { + "id": "90", + "name": "MongoDB creds" + } + }, + "id": "6ede4036-3685-402e-abc3-3f2a95b23cfc" + }, + { + "parameters": { + "operation": "update", + "collection": "TestCollection", + "fields": "name" + }, + "name": "MongoDB2", + "type": "n8n-nodes-base.mongoDb", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "mongoDb": { + "id": "90", + "name": "MongoDB creds" + } + }, + "id": "8299beed-7163-4a92-9f41-b8c970bc320b" + }, + { + "parameters": { + "operation": "delete", + "collection": "TestCollection" + }, + "name": "MongoDB3", + "type": "n8n-nodes-base.mongoDb", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "mongoDb": { + "id": "90", + "name": "MongoDB creds" + } + }, + "id": "f77603b7-8d36-46bc-bcc5-604b63294778" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=UpdatedName{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [900, 300], + "notesInFlow": true, + "notes": "update name attribut", + "id": "d32afa6f-35a1-492f-8185-21bef87b18f0" + } + ], + "connections": { + "MongoDB": { + "main": [ + [ + { + "node": "MongoDB1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "MongoDB", + "type": "main", + "index": 0 + } + ] + ] + }, + "MongoDB1": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "MongoDB2": { + "main": [ + [ + { + "node": "MongoDB3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "MongoDB2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/124.json b/packages/testing/playwright/test-workflows/workflows/124.json new file mode 100644 index 0000000000..967a847c05 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/124.json @@ -0,0 +1,151 @@ +{ + "createdAt": "2021-03-11T12:18:29.698Z", + "updatedAt": "2021-03-11T12:18:29.698Z", + "id": "124", + "name": "QuestDB: insert executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "97bc2a65-cef4-47d4-b986-8bbf54f8698d" + }, + { + "parameters": { + "table": "TestTable", + "columns": "id,name" + }, + "name": "QuestDB", + "type": "n8n-nodes-base.questDb", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "questDb": { + "id": "91", + "name": "QuestDB creds" + } + }, + "id": "da306e33-0ed0-4c94-b37e-2769511e28d1" + }, + { + "parameters": { + "values": { + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*1000)}}" + } + ], + "string": [ + { + "name": "name", + "value": "=Name{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "notesInFlow": true, + "notes": "prepare data", + "id": "53f41164-da16-4eae-a333-09166cfffeea" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=SELECT * FROM TestTable WHERE id={{$node[\"QuestDB\"].json[\"id\"]}} LIMIT 1;" + }, + "name": "QuestDB1", + "type": "n8n-nodes-base.questDb", + "typeVersion": 1, + "position": [850, 300], + "notesInFlow": true, + "credentials": { + "questDb": { + "id": "91", + "name": "QuestDB creds" + } + }, + "notes": "get data", + "id": "d40ddbdd-c531-469b-8470-06d93e4a72e2" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=TRUNCATE TABLE TestTable;" + }, + "name": "QuestDB2", + "type": "n8n-nodes-base.questDb", + "typeVersion": 1, + "position": [1050, 300], + "notesInFlow": true, + "credentials": { + "questDb": { + "id": "91", + "name": "QuestDB creds" + } + }, + "notes": "delete data", + "id": "7cd8a74b-0305-4700-b9db-ddcb844aa40b" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "QuestDB", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuestDB": { + "main": [ + [ + { + "node": "QuestDB1", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuestDB1": { + "main": [ + [ + { + "node": "QuestDB2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/125.json b/packages/testing/playwright/test-workflows/workflows/125.json new file mode 100644 index 0000000000..503b1e188e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/125.json @@ -0,0 +1,210 @@ +{ + "createdAt": "2021-03-11T13:25:33.615Z", + "updatedAt": "2021-11-12T13:06:28.032Z", + "id": "125", + "name": "Postgres: insert update executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "17ac71e5-e7ee-46e2-bc71-65bcfb5d4a52" + }, + { + "parameters": { + "table": "testtable", + "columns": "id,name", + "additionalFields": {} + }, + "name": "Postgres", + "type": "n8n-nodes-base.postgres", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "postgres": { + "id": "92", + "name": "Postgres creds" + } + }, + "id": "7cab0391-d473-4d74-a771-6aad35b3240f" + }, + { + "parameters": { + "values": { + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*1000)}}" + } + ], + "string": [ + { + "name": "name", + "value": "=Name{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "b64bd579-b602-4ec5-8fcb-3e49514517a7" + }, + { + "parameters": { + "operation": "update", + "table": "testtable", + "columns": "id,name", + "additionalFields": {} + }, + "name": "Postgres1", + "type": "n8n-nodes-base.postgres", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "postgres": { + "id": "92", + "name": "Postgres creds" + } + }, + "id": "9013d993-4f74-42ca-bab2-7c1536205836" + }, + { + "parameters": { + "values": { + "number": [], + "string": [ + { + "name": "name", + "value": "=UpdatedName{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [700, 300], + "id": "a6b9b7f5-453f-494d-b1db-7f4745f81233" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "SELECT * FROM public.testtable;", + "additionalFields": {} + }, + "name": "Postgres2", + "type": "n8n-nodes-base.postgres", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "postgres": { + "id": "92", + "name": "Postgres creds" + } + }, + "id": "63302a61-6401-43fd-a4c5-f20b9feb68b8" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=DELETE FROM public.testtable where id = $1;", + "additionalFields": { + "queryParams": "id" + } + }, + "name": "Postgres3", + "type": "n8n-nodes-base.postgres", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "postgres": { + "id": "92", + "name": "Postgres creds" + } + }, + "id": "c31b730f-f21b-4eb3-88e0-cc649984a327" + } + ], + "connections": { + "Postgres": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Postgres", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Postgres1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Postgres1": { + "main": [ + [ + { + "node": "Postgres2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Postgres2": { + "main": [ + [ + { + "node": "Postgres3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/126.json b/packages/testing/playwright/test-workflows/workflows/126.json new file mode 100644 index 0000000000..c366dc11b6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/126.json @@ -0,0 +1,88 @@ +{ + "createdAt": "2021-03-11T14:51:32.026Z", + "updatedAt": "2021-03-18T10:28:03.209Z", + "id": "126", + "name": "Kafka", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "76f28c5d-1894-4d95-ab23-4e6e39bf69e9" + }, + { + "parameters": { + "topic": "=TopicTest{{Date.now()}}", + "headersUi": { + "headerValues": [] + }, + "options": { + "compression": true + } + }, + "name": "Kafka", + "type": "n8n-nodes-base.kafka", + "typeVersion": 1, + "position": [710, 300], + "credentials": { + "kafka": { + "id": "93", + "name": "Kafka creds" + } + }, + "id": "9d37ab21-f676-4e88-8d71-3033d301ed62" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "input", + "value": "={{(new Date()).toISOString()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [500, 300], + "id": "2d1bf06b-6d8e-4f82-b56f-7fde44b74007" + } + ], + "connections": { + "Set": { + "main": [ + [ + { + "node": "Kafka", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/127.json b/packages/testing/playwright/test-workflows/workflows/127.json new file mode 100644 index 0000000000..38e6e333e2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/127.json @@ -0,0 +1,84 @@ +{ + "createdAt": "2021-03-11T15:40:59.286Z", + "updatedAt": "2021-05-20T09:47:21.924Z", + "id": "127", + "name": "Rundeck:Job:execute getMetadata", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "f6b07b0d-8721-49de-8c02-39987174e2c4" + }, + { + "parameters": { + "jobid": "4dc20913-c26f-4060-afe9-6bb26dfd1a10", + "arguments": { + "arguments": [{}] + } + }, + "name": "Rundeck", + "type": "n8n-nodes-base.rundeck", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "rundeckApi": { + "id": "94", + "name": "Rundeck API creds" + } + }, + "id": "c1504f84-7203-426f-9eab-10ccde6bcd76" + }, + { + "parameters": { + "operation": "getMetadata", + "jobid": "4dc20913-c26f-4060-afe9-6bb26dfd1a10" + }, + "name": "Rundeck1", + "type": "n8n-nodes-base.rundeck", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "rundeckApi": { + "id": "94", + "name": "Rundeck API creds" + } + }, + "id": "425b0f49-4d3b-4b5e-a4b8-0dadda512663" + } + ], + "connections": { + "Rundeck": { + "main": [ + [ + { + "node": "Rundeck1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Rundeck", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/128.json b/packages/testing/playwright/test-workflows/workflows/128.json new file mode 100644 index 0000000000..b5b626204e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/128.json @@ -0,0 +1,112 @@ +{ + "createdAt": "2021-03-11T17:20:04.889Z", + "updatedAt": "2021-03-11T17:22:00.219Z", + "id": "128", + "name": "Yourls:Url:shorten stats expand", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "04b33b0d-9424-4705-955d-c4a8087c055c" + }, + { + "parameters": { + "url": "=https://n8n.io/{{Date.now()}}", + "additionalFields": { + "title": "n8n-ulr with random suffix" + } + }, + "name": "Yourls", + "type": "n8n-nodes-base.yourls", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "yourlsApi": { + "id": "95", + "name": "Yourls API creds" + } + }, + "id": "d5e11a39-5fc4-4e33-b83e-9706e46c8aba" + }, + { + "parameters": { + "operation": "stats", + "shortUrl": "={{$node[\"Yourls\"].json[\"shorturl\"]}}" + }, + "name": "Yourls1", + "type": "n8n-nodes-base.yourls", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "yourlsApi": { + "id": "95", + "name": "Yourls API creds" + } + }, + "id": "c3e4bb2a-977c-4f7d-88ce-4954ece456c5" + }, + { + "parameters": { + "operation": "expand", + "shortUrl": "={{$node[\"Yourls\"].json[\"shorturl\"]}}" + }, + "name": "Yourls2", + "type": "n8n-nodes-base.yourls", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "yourlsApi": { + "id": "95", + "name": "Yourls API creds" + } + }, + "id": "a1126d46-f429-47e8-9a52-08549a8ed2da" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Yourls", + "type": "main", + "index": 0 + } + ] + ] + }, + "Yourls": { + "main": [ + [ + { + "node": "Yourls1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Yourls1": { + "main": [ + [ + { + "node": "Yourls2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/129.json b/packages/testing/playwright/test-workflows/workflows/129.json new file mode 100644 index 0000000000..9beb21510f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/129.json @@ -0,0 +1,749 @@ +{ + "createdAt": "2021-03-12T09:33:57.650Z", + "updatedAt": "2021-05-25T14:06:03.846Z", + "id": "129", + "name": "NextCloud:NextCloud:Folder:create move copy delete list:File:upload move copy download delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [1120, 250], + "id": "4cbe8941-9b8e-4432-8592-24de1753c8aa" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "path": "={{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [1470, 250], + "alwaysOutputData": true, + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "467f1321-8b33-4fc0-9e0c-e788d3659ea0" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "operation": "move", + "path": "=/{{$node[\"Set\"].json[\"name\"]}}", + "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud1", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [1770, 250], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "2e715385-abea-4304-9e39-0e00443eddb0" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=Folder{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1270, 250], + "id": "79dabfd8-10a5-47c6-90aa-fa957f99db71" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "operation": "copy", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}", + "toPath": "=/Copied{{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud2", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [2070, 250], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "7a111975-d958-40d8-9f7c-11b7d36650ba" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "operation": "delete", + "path": "=/Copied{{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud3", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [2220, 250], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "b3356660-2aa2-4041-9756-629a45268e1d" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "operation": "list", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud4", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [4000, 240], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "87118dec-fdd8-494b-926d-5870193e456f" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "folder", + "operation": "delete", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" + }, + "name": "Nextcloud5", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [4000, 400], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "83d025a2-bc96-4c24-93ab-bcf6acd1d63d" + }, + { + "parameters": { + "authentication": "oAuth2", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/{{$node[\"Set1\"].json[\"name\"]}}", + "binaryDataUpload": true + }, + "name": "Nextcloud6", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [2820, 300], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "4142443d-f9d7-4efd-a43b-66d7dfc5df4e" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "name", + "value": "=File{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [2520, 300], + "id": "9ca67953-2298-4400-9439-93e09a64bffe" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [2670, 300], + "id": "008eb1cf-a715-4764-8dee-ac713bd23387" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "move", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/{{$node[\"Set1\"].json[\"name\"]}}", + "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" + }, + "name": "Nextcloud7", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [3120, 300], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "8f2b1106-2e0c-4da7-915d-27356091ec81" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "copy", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}", + "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Copied{{$node[\"Set1\"].json[\"name\"]}}" + }, + "name": "Nextcloud8", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [3270, 300], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "4f8a6919-c58f-4b54-ba83-9ad4f50bc348" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "download", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" + }, + "name": "Nextcloud9", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [3570, 300], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "d6c5dfb2-4bd9-4b40-98b5-adee1e9371c8" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "delete", + "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" + }, + "name": "Nextcloud10", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [3720, 300], + "credentials": { + "nextCloudOAuth2Api": { + "id": "96", + "name": "NextCloud OAuth2 API creds" + } + }, + "id": "804800a7-6329-4a4d-99cf-da2dc38a9096" + }, + { + "parameters": { + "resource": "user", + "userId": "=Username{{Date.now()}}", + "email": "=email{{Date.now()}}@fakeemail.com", + "additionalFields": { + "displayName": "=Username{{Date.now()}}" + } + }, + "name": "Nextcloud11", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [1270, 450], + "credentials": { + "nextCloudApi": { + "id": "133", + "name": "NextCloud API creds" + } + }, + "id": "605413ab-2e1b-4ac2-801e-4a51d5d8287e" + }, + { + "parameters": { + "resource": "user", + "operation": "get", + "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}" + }, + "name": "Nextcloud12", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [1570, 450], + "credentials": { + "nextCloudApi": { + "id": "133", + "name": "NextCloud API creds" + } + }, + "id": "c0134c0b-74b2-4f67-9ecf-570f052f5aa6" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Nextcloud13", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [1720, 450], + "credentials": { + "nextCloudApi": { + "id": "133", + "name": "NextCloud API creds" + } + }, + "id": "da45a102-91e0-41d7-858e-1680e7af104e" + }, + { + "parameters": { + "resource": "user", + "operation": "update", + "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}", + "updateFields": { + "field": { + "key": "website", + "value": "http://community.n8n.io" + } + } + }, + "name": "Nextcloud14", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [2020, 450], + "credentials": { + "nextCloudApi": { + "id": "133", + "name": "NextCloud API creds" + } + }, + "id": "35b61a88-a9d7-4902-9f5e-b9db05ee6f1b" + }, + { + "parameters": { + "resource": "user", + "operation": "delete", + "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}" + }, + "name": "Nextcloud15", + "type": "n8n-nodes-base.nextCloud", + "typeVersion": 1, + "position": [2170, 450], + "credentials": { + "nextCloudApi": { + "id": "133", + "name": "NextCloud API creds" + } + }, + "id": "c983c376-d307-406d-8134-3469a35b7991" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [1420, 450], + "typeVersion": 1, + "id": "7024a28f-fb45-45ac-8fd4-af00b229fc25" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [1870, 450], + "typeVersion": 1, + "id": "42756f4c-e881-4738-b350-58c1630e5975" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [3860, 240], + "typeVersion": 1, + "id": "8b8ad7de-70c6-4098-bdf0-487d66827f86" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [3420, 300], + "typeVersion": 1, + "id": "5398a6ef-f8ce-4e74-9f2e-6c445875f109" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [2960, 300], + "typeVersion": 1, + "id": "f31b62e7-9c78-427a-b3b1-b3373cb86bb8" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [2370, 300], + "typeVersion": 1, + "id": "add90777-a9c7-4c56-83b7-44b10f71bb3f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [1920, 250], + "typeVersion": 1, + "id": "3e008e1f-e966-4389-8318-91a81fb9d8a7" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" + }, + "name": "Sleep 8 Seconds7", + "type": "n8n-nodes-base.function", + "position": [1620, 250], + "typeVersion": 1, + "id": "f7461433-5a21-459c-bfbb-e57bfaae6eed" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Nextcloud11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud": { + "main": [ + [ + { + "node": "Sleep 8 Seconds7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Nextcloud", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud2": { + "main": [ + [ + { + "node": "Nextcloud3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud3": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud4": { + "main": [[]] + }, + "Set1": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud6": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Nextcloud6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud7": { + "main": [ + [ + { + "node": "Nextcloud8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud8": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud9": { + "main": [ + [ + { + "node": "Nextcloud10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud11": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud12": { + "main": [ + [ + { + "node": "Nextcloud13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud13": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Nextcloud14": { + "main": [ + [ + { + "node": "Nextcloud15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "Nextcloud12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "Nextcloud14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "Nextcloud4", + "type": "main", + "index": 0 + }, + { + "node": "Nextcloud5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "Nextcloud9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "Nextcloud7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "Nextcloud2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds7": { + "main": [ + [ + { + "node": "Nextcloud1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/130.json b/packages/testing/playwright/test-workflows/workflows/130.json new file mode 100644 index 0000000000..6af2ffc05d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/130.json @@ -0,0 +1,803 @@ +{ + "createdAt": "2021-03-12T12:14:08.727Z", + "updatedAt": "2021-03-12T12:35:37.990Z", + "id": "130", + "name": "Wekan:Board:create get getAll delete:List:create get getAll delete:Card:create update get getAll delete:CardComment:create get getAll delete:CheckList:create get getAll delete:CheckListItem:get update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d1be5d3e-3071-482a-a8d0-6cd3e1784efd" + }, + { + "parameters": { + "resource": "board", + "title": "=Board{{Date.now()}}", + "owner": "E27bvzwJ5A26xfAPG", + "additionalFields": {} + }, + "name": "Wekan", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [490, 280], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "1013b4a2-232f-417c-ad61-c424a10eee2a" + }, + { + "parameters": { + "resource": "board", + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}" + }, + "name": "Wekan1", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [650, 280], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "0bd0df50-577c-4f42-b653-a933059d5d94" + }, + { + "parameters": { + "resource": "board", + "operation": "getAll", + "IdUser": "E27bvzwJ5A26xfAPG", + "limit": 1 + }, + "name": "Wekan2", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [800, 280], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "189c8afb-3890-4755-aec7-17577b14f6e7" + }, + { + "parameters": { + "resource": "board", + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}" + }, + "name": "Wekan3", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [3500, 260], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "302a053a-5456-46c0-b6bf-47e3fad8d061" + }, + { + "parameters": { + "resource": "list", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "title": "=List{{Date.now()}}" + }, + "name": "Wekan4", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [950, 400], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "901bd245-0434-43a4-9c6e-2e0d0012f25b" + }, + { + "parameters": { + "resource": "list", + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}" + }, + "name": "Wekan5", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1100, 400], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "1ad2c40f-606f-468e-b304-f67ba7f09857" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "Wekan6", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "7e0bf795-d18a-44fc-b1d0-07dc726d1b9a" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}" + }, + "name": "Wekan7", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [3350, 400], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "4dff32d6-2cfd-4cf7-a5f4-cb670c8f5283" + }, + { + "parameters": { + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "title": "=Card{{Date.now()}}", + "swimlaneId": "CJ44cd7gPRf8qT3Xb", + "authorId": "E27bvzwJ5A26xfAPG", + "additionalFields": {} + }, + "name": "Wekan8", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1400, 500], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "03ad5f1f-23df-431c-a98f-3fd966dcd4fa" + }, + { + "parameters": { + "operation": "update", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "updateFields": { + "title": "=UpdatedCard{{Date.now()}}" + } + }, + "name": "Wekan9", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1550, 500], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "c0297bac-351b-4af3-ad47-1e4a3f504828" + }, + { + "parameters": { + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}" + }, + "name": "Wekan10", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1700, 500], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "fd68635a-fbf9-4d53-a835-1dc9be3b6fa6" + }, + { + "parameters": { + "operation": "getAll", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "fromObject": "list", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "Wekan11", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [1850, 500], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "da544079-7689-423e-8990-3b886d44d040" + }, + { + "parameters": { + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}" + }, + "name": "Wekan12", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [3220, 500], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "b33dde7e-b503-480b-9dc5-3cf6b68d3b02" + }, + { + "parameters": { + "resource": "cardComment", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "authorId": "E27bvzwJ5A26xfAPG", + "comment": "=CardComment{{Date.now()}}" + }, + "name": "Wekan13", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2000, 650], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "56c3500d-d9d3-49db-a6cd-fe4558c901df" + }, + { + "parameters": { + "resource": "cardComment", + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "commentId": "={{$node[\"Wekan13\"].json[\"_id\"]}}" + }, + "name": "Wekan14", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2150, 650], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "995809d9-3fb6-4968-9590-c4b929e83352" + }, + { + "parameters": { + "resource": "cardComment", + "operation": "getAll", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "Wekan15", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2300, 650], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "1d3d120f-17eb-4f17-9513-cf99d2bd5068" + }, + { + "parameters": { + "resource": "cardComment", + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "commentId": "={{$node[\"Wekan13\"].json[\"_id\"]}}" + }, + "name": "Wekan16", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2450, 650], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "d0960908-6aaf-4284-a2a3-0c2bb305afd7" + }, + { + "parameters": { + "resource": "checklist", + "operation": "create", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "title": "=Checklist{{Date.now()}}", + "items": ["=ChecklistItem{{Date.now()}}"] + }, + "name": "Wekan17", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2000, 350], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "93b5ad63-5527-49b2-8803-d91136052169" + }, + { + "parameters": { + "resource": "checklist", + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}" + }, + "name": "Wekan18", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2150, 350], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "cf310149-4468-4109-9dad-620030f49c4f" + }, + { + "parameters": { + "resource": "checklist", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "Wekan19", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2300, 350], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "34c95cdf-0dd2-43d2-8635-e5cc36fcb6d8" + }, + { + "parameters": { + "resource": "checklist", + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}" + }, + "name": "Wekan20", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2900, 350], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "e8a93285-5090-4dff-81d6-c6dea77512af" + }, + { + "parameters": { + "resource": "checklistItem", + "operation": "get", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", + "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}" + }, + "name": "Wekan21", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2450, 450], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "8059fe8f-a56d-4b12-9129-6bca650a56f5" + }, + { + "parameters": { + "resource": "checklistItem", + "operation": "update", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", + "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}", + "updateFields": { + "isFinished": true + } + }, + "name": "Wekan22", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2600, 450], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "02ca495d-50c2-4b96-b66a-287f630c95c5" + }, + { + "parameters": { + "resource": "checklistItem", + "operation": "delete", + "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", + "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", + "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", + "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", + "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}" + }, + "name": "Wekan23", + "type": "n8n-nodes-base.wekan", + "typeVersion": 1, + "position": [2750, 450], + "credentials": { + "wekanApi": { + "id": "97", + "name": "Wekan API creds" + } + }, + "id": "0e35867f-089c-4a95-985a-1aeafe45cd6e" + }, + { + "parameters": { + "mode": "wait" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [3050, 500], + "id": "a72e478c-ae36-4775-9568-494f34ea4edc" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Wekan", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan": { + "main": [ + [ + { + "node": "Wekan1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan1": { + "main": [ + [ + { + "node": "Wekan2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan2": { + "main": [ + [ + { + "node": "Wekan4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan4": { + "main": [ + [ + { + "node": "Wekan5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan5": { + "main": [ + [ + { + "node": "Wekan6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan6": { + "main": [ + [ + { + "node": "Wekan8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan7": { + "main": [ + [ + { + "node": "Wekan3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan8": { + "main": [ + [ + { + "node": "Wekan9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan9": { + "main": [ + [ + { + "node": "Wekan10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan10": { + "main": [ + [ + { + "node": "Wekan11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan12": { + "main": [ + [ + { + "node": "Wekan7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan11": { + "main": [ + [ + { + "node": "Wekan13", + "type": "main", + "index": 0 + }, + { + "node": "Wekan17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan13": { + "main": [ + [ + { + "node": "Wekan14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan14": { + "main": [ + [ + { + "node": "Wekan15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan16": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Wekan17": { + "main": [ + [ + { + "node": "Wekan18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan18": { + "main": [ + [ + { + "node": "Wekan19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan20": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan15": { + "main": [ + [ + { + "node": "Wekan16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan19": { + "main": [ + [ + { + "node": "Wekan21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan21": { + "main": [ + [ + { + "node": "Wekan22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan22": { + "main": [ + [ + { + "node": "Wekan23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wekan23": { + "main": [ + [ + { + "node": "Wekan20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "Wekan12", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/131.json b/packages/testing/playwright/test-workflows/workflows/131.json new file mode 100644 index 0000000000..d33764d22b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/131.json @@ -0,0 +1,57 @@ +{ + "createdAt": "2021-03-12T15:30:32.231Z", + "updatedAt": "2021-03-12T15:30:32.231Z", + "id": "131", + "name": "Line:Notification:send", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b97b22de-c820-46c3-bd9a-9ccd77d9fb2f" + }, + { + "parameters": { + "message": "=Notification{{Date.now()}}", + "additionalFields": {} + }, + "name": "Line", + "type": "n8n-nodes-base.line", + "typeVersion": 1, + "position": [480, 300], + "credentials": { + "lineNotifyOAuth2Api": { + "id": "99", + "name": "Line Notify OAuth2 API" + } + }, + "id": "bda3f612-99db-4f50-86ec-71f3f7e26917" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Line", + "type": "main", + "index": 0 + } + ] + ] + }, + "Line": { + "main": [[]] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/132.json b/packages/testing/playwright/test-workflows/workflows/132.json new file mode 100644 index 0000000000..e1528c30e1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/132.json @@ -0,0 +1,82 @@ +{ + "createdAt": "2021-03-12T15:55:16.919Z", + "updatedAt": "2021-03-12T15:55:16.919Z", + "id": "132", + "name": "Mandrill:Message:sendTemplate sendHTML", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d6242130-9d76-4db0-8fc8-5b2cbd24b5fe" + }, + { + "parameters": { + "template": "testtemplate", + "fromEmail": "=random{{Date.now()}}@email.test", + "toEmail": "=nodeqa{{Date.now()}}@email.test", + "options": {} + }, + "name": "Mandrill", + "type": "n8n-nodes-base.mandrill", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "mandrillApi": { + "id": "100", + "name": "Mandrill API creds" + } + }, + "id": "e31f6f3e-eee2-4047-90dc-acc08c80438d" + }, + { + "parameters": { + "operation": "sendHtml", + "fromEmail": "=random{{Date.now()}}@email.test", + "toEmail": "=nodeqa{{Date.now()}}@email.test", + "options": { + "html": "=

This is a the html email from n8n workflow

" + } + }, + "name": "Mandrill1", + "type": "n8n-nodes-base.mandrill", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "mandrillApi": { + "id": "100", + "name": "Mandrill API creds" + } + }, + "id": "da056d97-7a2b-457d-8236-5ce62f35ab17" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Mandrill", + "type": "main", + "index": 0 + }, + { + "node": "Mandrill1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/133.json b/packages/testing/playwright/test-workflows/workflows/133.json new file mode 100644 index 0000000000..a6b52e5657 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/133.json @@ -0,0 +1,55 @@ +{ + "createdAt": "2021-03-15T08:20:13.922Z", + "updatedAt": "2021-03-15T08:20:13.922Z", + "id": "133", + "name": "Twilio:SMS:send", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b7004365-30c6-4792-80ca-7c9ee2eb87a4" + }, + { + "parameters": { + "from": "+15005550006", + "to": "+15005550006", + "message": "=Message{{Date.now()}}" + }, + "name": "Twilio", + "type": "n8n-nodes-base.twilio", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "twilioApi": { + "id": "101", + "name": "Twilio API creds" + } + }, + "id": "6f7e0239-82e7-4b9a-85f2-39ed23ff28b8" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Twilio", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/134.json b/packages/testing/playwright/test-workflows/workflows/134.json new file mode 100644 index 0000000000..64f5866690 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/134.json @@ -0,0 +1,235 @@ +{ + "createdAt": "2021-03-15T08:59:35.889Z", + "updatedAt": "2021-04-01T15:38:45.311Z", + "id": "134", + "name": "TravisCI:Build:trigger getAll get restart cancel", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "efbe46b1-9480-434d-b571-430942f31364" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": { + "order": "asc", + "sortBy": "id" + } + }, + "name": "TravisCI", + "type": "n8n-nodes-base.travisCi", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "travisCiApi": { + "id": "102", + "name": "Travis API" + } + }, + "id": "d772b5ee-80af-4627-9278-034a1237da92" + }, + { + "parameters": { + "operation": "get", + "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "TravisCI1", + "type": "n8n-nodes-base.travisCi", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "travisCiApi": { + "id": "102", + "name": "Travis API" + } + }, + "id": "df4d7fe1-85f5-4908-a609-faa41a13a9d1" + }, + { + "parameters": { + "operation": "trigger", + "slug": "nodemationqa/nodeQA", + "branch": "master", + "additionalFields": {} + }, + "name": "TravisCI2", + "type": "n8n-nodes-base.travisCi", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "travisCiApi": { + "id": "102", + "name": "Travis API" + } + }, + "id": "04e656d2-ac8b-4b4e-995b-a167be00ddd2" + }, + { + "parameters": { + "operation": "restart", + "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}" + }, + "name": "TravisCI3", + "type": "n8n-nodes-base.travisCi", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "travisCiApi": { + "id": "102", + "name": "Travis API" + } + }, + "id": "7fbaf00c-202f-4e95-9645-c8690ab5c829" + }, + { + "parameters": { + "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}" + }, + "name": "TravisCI4", + "type": "n8n-nodes-base.travisCi", + "typeVersion": 1, + "position": [1500, 300], + "credentials": { + "travisCiApi": { + "id": "102", + "name": "Travis API" + } + }, + "id": "0e5565a4-d5cd-4471-aa01-740cf2f45e43" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 2 Seconds", + "type": "n8n-nodes-base.function", + "position": [600, 300], + "typeVersion": 1, + "id": "b84a023d-475e-42ac-888a-e0c43d13e10e" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 2 Seconds1", + "type": "n8n-nodes-base.function", + "position": [1050, 300], + "typeVersion": 1, + "id": "2303fc2b-2701-44b7-98ed-139094b9c457" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 2 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1350, 300], + "typeVersion": 1, + "id": "3bdb67df-5473-42f6-aacb-5125ac0483b7" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "TravisCI2", + "type": "main", + "index": 0 + } + ] + ] + }, + "TravisCI": { + "main": [ + [ + { + "node": "TravisCI1", + "type": "main", + "index": 0 + } + ] + ] + }, + "TravisCI2": { + "main": [ + [ + { + "node": "Sleep 2 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 2 Seconds": { + "main": [ + [ + { + "node": "TravisCI", + "type": "main", + "index": 0 + } + ] + ] + }, + "TravisCI1": { + "main": [ + [ + { + "node": "Sleep 2 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 2 Seconds1": { + "main": [ + [ + { + "node": "TravisCI3", + "type": "main", + "index": 0 + } + ] + ] + }, + "TravisCI3": { + "main": [ + [ + { + "node": "Sleep 2 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 2 Seconds2": { + "main": [ + [ + { + "node": "TravisCI4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/135.json b/packages/testing/playwright/test-workflows/workflows/135.json new file mode 100644 index 0000000000..951d3a7e3b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/135.json @@ -0,0 +1,204 @@ +{ + "createdAt": "2021-03-15T11:07:38.626Z", + "updatedAt": "2021-07-15T15:43:31.557Z", + "id": "135", + "name": "Cortex:Analyzer:execute:Job:report get:Responder:execute", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "746052e5-aa2d-44d8-9868-51eac17d07b2" + }, + { + "parameters": { + "analyzer": "f4abc1b633b80f45af165970793fd4fd::Abuse_Finder_3_0", + "observableType": "ip", + "observableValue": "129.178.188.205", + "tlp": 1, + "additionalFields": {} + }, + "name": "Cortex", + "type": "n8n-nodes-base.cortex", + "typeVersion": 1, + "position": [490, 300], + "credentials": { + "cortexApi": { + "id": "103", + "name": "Cortex API creds" + } + }, + "id": "a020251f-8fc4-4257-8038-0092bb07209b" + }, + { + "parameters": { + "resource": "job", + "operation": "report", + "jobId": "={{$node[\"Cortex\"].json[\"_id\"]}}" + }, + "name": "Cortex1", + "type": "n8n-nodes-base.cortex", + "typeVersion": 1, + "position": [640, 300], + "credentials": { + "cortexApi": { + "id": "103", + "name": "Cortex API creds" + } + }, + "id": "c32de960-141e-4fdb-8b0f-dfd08fc3b28a" + }, + { + "parameters": { + "resource": "job", + "jobId": "={{$node[\"Cortex\"].json[\"_id\"]}}" + }, + "name": "Cortex2", + "type": "n8n-nodes-base.cortex", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "cortexApi": { + "id": "103", + "name": "Cortex API creds" + } + }, + "id": "c2072875-c609-4eb8-88e7-2bba3a8d0a49" + }, + { + "parameters": { + "resource": "responder", + "responder": "fbe415a38eb649eb7df174aa11a32cfe::KnowBe4_1_0", + "entityType": "case_artifact", + "parameters": { + "values": { + "dataType": "ip", + "data": "129.178.188.205", + "message": "test", + "startDate": "2021-03-23T23:00:00.000Z", + "ioc": true, + "status": "Ok" + } + } + }, + "name": "Cortex3", + "type": "n8n-nodes-base.cortex", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "cortexApi": { + "id": "103", + "name": "Cortex API creds" + } + }, + "id": "47ccf815-64bd-469f-b836-6d3749cfc7cb" + }, + { + "parameters": { + "resource": "job", + "operation": "report", + "jobId": "={{$node[\"Cortex3\"].json[\"_id\"]}}" + }, + "name": "Cortex4", + "type": "n8n-nodes-base.cortex", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "cortexApi": { + "id": "103", + "name": "Cortex API creds" + } + }, + "disabled": true, + "id": "efec07a1-aa91-49e0-9c2c-3f2c222fa90f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\nawait sleep(10000);\n// Output data\nreturn items;" + }, + "name": "Sleep 4 seconds", + "type": "n8n-nodes-base.function", + "position": [1100, 300], + "typeVersion": 1, + "id": "68f7efca-c385-4642-814f-3123f7e892ee" + } + ], + "connections": { + "Cortex": { + "main": [ + [ + { + "node": "Cortex1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Cortex1": { + "main": [ + [ + { + "node": "Cortex2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Cortex2": { + "main": [ + [ + { + "node": "Cortex3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Cortex", + "type": "main", + "index": 0 + } + ] + ] + }, + "Cortex3": { + "main": [ + [ + { + "node": "Sleep 4 seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 4 seconds": { + "main": [ + [ + { + "node": "Cortex4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/136.json b/packages/testing/playwright/test-workflows/workflows/136.json new file mode 100644 index 0000000000..c154bd5640 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/136.json @@ -0,0 +1,140 @@ +{ + "createdAt": "2021-03-15T11:39:24.637Z", + "updatedAt": "2021-03-15T11:39:24.637Z", + "id": "136", + "name": "Pushbullet:Push:create update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c3bbbd0f-e93f-46ff-b36c-0ed72f1d207a" + }, + { + "parameters": { + "title": "=Push{{Date.now()}}", + "body": "=Body{{Date.now()}}" + }, + "name": "Pushbullet", + "type": "n8n-nodes-base.pushbullet", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "pushbulletOAuth2Api": { + "id": "104", + "name": "Pushbullet OAuth2 API creds" + } + }, + "id": "d2143ac2-b023-47b1-93ec-281bc86b446d" + }, + { + "parameters": { + "operation": "update", + "pushId": "={{$node[\"Pushbullet\"].json[\"iden\"]}}", + "dismissed": true + }, + "name": "Pushbullet1", + "type": "n8n-nodes-base.pushbullet", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "pushbulletOAuth2Api": { + "id": "104", + "name": "Pushbullet OAuth2 API creds" + } + }, + "id": "bc47ad37-e9bf-4fe0-a595-7a94bc02c193" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Pushbullet2", + "type": "n8n-nodes-base.pushbullet", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "pushbulletOAuth2Api": { + "id": "104", + "name": "Pushbullet OAuth2 API creds" + } + }, + "id": "2293cc5c-1d5e-4d79-a7f4-8d48cf86beaf" + }, + { + "parameters": { + "operation": "delete", + "pushId": "={{$node[\"Pushbullet\"].json[\"iden\"]}}" + }, + "name": "Pushbullet3", + "type": "n8n-nodes-base.pushbullet", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "pushbulletOAuth2Api": { + "id": "104", + "name": "Pushbullet OAuth2 API creds" + } + }, + "id": "72869e7c-e410-4115-bca9-dec16c90cb3f" + } + ], + "connections": { + "Pushbullet": { + "main": [ + [ + { + "node": "Pushbullet1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pushbullet1": { + "main": [ + [ + { + "node": "Pushbullet2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pushbullet2": { + "main": [ + [ + { + "node": "Pushbullet3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Pushbullet", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/137.json b/packages/testing/playwright/test-workflows/workflows/137.json new file mode 100644 index 0000000000..e434c12df9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/137.json @@ -0,0 +1,1105 @@ +{ + "createdAt": "2021-03-16T15:47:37.279Z", + "updatedAt": "2021-05-21T09:19:02.974Z", + "id": "137", + "name": "TheHive[v3]:Alert:create update get getAll promote merge:Case:create update get getAll:Observable:create update get search getAll:Task:create update get search getAll:Log:create get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 400], + "id": "ade44fe5-e6a3-407d-9a19-d236c09d053e" + }, + { + "parameters": { + "title": "=Title{{Date.now()}}", + "description": "desc", + "date": "={{(new Date()).toISOString()}}", + "tags": "test", + "type": "test", + "source": "n8n", + "sourceRef": "={{Date.now().toString()}}", + "additionalFields": {} + }, + "name": "TheHive", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "7a175f98-ba4d-4e86-8290-1961286069a3" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "updateFields": { + "tlp": 1 + } + }, + "name": "TheHive1", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "07153eab-082e-4c15-a3a8-0352ce78d39a" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}" + }, + "name": "TheHive2", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "55e955b5-08e5-45ac-a3e9-42a2791e0e86" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive3", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1180, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "84a55d17-c067-4d5c-b199-378ef1a5e37c" + }, + { + "parameters": { + "operation": "promote", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "TheHive4", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1330, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "0ca31228-af2d-451f-9c65-a7c8e910639d" + }, + { + "parameters": { + "operation": "merge", + "id": "={{$node[\"TheHive30\"].json[\"id\"]}}", + "caseId": "={{$node[\"TheHive29\"].json[\"id\"]}}" + }, + "name": "TheHive5", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [940, 150], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "d11d3928-e84f-4a7b-bee0-01a6f7903741" + }, + { + "parameters": { + "resource": "case", + "operation": "create", + "title": "=Title{{Date.now()}}", + "description": "desc", + "startDate": "={{(new Date()).toISOString()}}", + "owner": "nodeqa", + "tags": "test", + "options": {} + }, + "name": "TheHive6", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [450, 600], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "cf77cd22-62ec-461f-8685-35120833d1d8" + }, + { + "parameters": { + "resource": "case", + "operation": "update", + "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "updateFields": { + "tlp": 3 + } + }, + "name": "TheHive7", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [600, 600], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "1fceb11e-94ea-42b2-95d0-30e9357a8aa0" + }, + { + "parameters": { + "resource": "case", + "operation": "get", + "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}" + }, + "name": "TheHive8", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [910, 600], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "52c085ae-49c1-49b9-9be5-1350d065868c" + }, + { + "parameters": { + "resource": "case", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive9", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1060, 600], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "ecd0b218-41b2-4e43-9553-b17da8942a16" + }, + { + "parameters": { + "resource": "case", + "operation": "executeResponder", + "id": "={{$node[\"TheHive6\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive10", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1210, 600], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "4520dc3b-153c-4239-8e6b-814dc39a324a" + }, + { + "parameters": { + "resource": "task", + "operation": "create", + "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "title": "=Task{{Date.now()}}", + "options": {} + }, + "name": "TheHive11", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [600, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "c0efb989-b9b1-4cf6-84f5-d30e565eb05b" + }, + { + "parameters": { + "resource": "task", + "operation": "update", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "updateFields": { + "status": "InProgress" + } + }, + "name": "TheHive12", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [750, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "79a320c7-796b-4380-bbfd-af5ef73c308c" + }, + { + "parameters": { + "resource": "task", + "operation": "get", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}" + }, + "name": "TheHive13", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1050, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "7c5e1c7c-a9a2-4f67-b1d0-62ab12ea4ce9" + }, + { + "parameters": { + "resource": "task", + "operation": "search", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive14", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1370, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "a5b3618e-5c12-480c-975d-cdf58f33e121" + }, + { + "parameters": { + "resource": "log", + "operation": "create", + "taskId": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "message": "=Message{{Date.now()}}", + "startDate": "={{(new Date()).toISOString()}}", + "status": "Ok", + "options": {} + }, + "name": "TheHive16", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [750, 930], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "efeb839b-df7f-465d-9776-ad3699b8cb56" + }, + { + "parameters": { + "resource": "log", + "operation": "get", + "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" + }, + "name": "TheHive17", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1050, 930], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "df7967a1-012c-4e20-b5e4-63fa37265bf5" + }, + { + "parameters": { + "resource": "log", + "taskId": "={{$node[\"TheHive16\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "TheHive18", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1200, 930], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "549b23ec-1ccb-4585-b270-b2341b8b409f" + }, + { + "parameters": { + "resource": "observable", + "operation": "create", + "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "dataType": "ip", + "data": "36.123.133.214", + "message": "test", + "startDate": "={{(new Date()).toISOString()}}", + "ioc": true, + "status": "Ok", + "options": {} + }, + "name": "TheHive19", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "86f1d7a0-f22e-46f7-b315-8aecbe4bd5dd" + }, + { + "parameters": { + "resource": "observable", + "operation": "update", + "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}", + "updateFields": { + "ioc": false + } + }, + "name": "TheHive20", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [910, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "2347e027-4531-48ae-94cb-bd8dd109da0a" + }, + { + "parameters": { + "resource": "observable", + "operation": "get", + "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}" + }, + "name": "TheHive21", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1060, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "e12c0ed2-ea18-4a0e-a3b1-00d2e417b025" + }, + { + "parameters": { + "resource": "observable", + "operation": "search", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive22", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1360, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "bbed23cc-38f3-4912-a6b3-bdb3e0da4932" + }, + { + "parameters": { + "resource": "observable", + "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", + "limit": 1, + "options": {} + }, + "name": "TheHive23", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1540, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "b8f259fc-1031-49ea-86b6-cd89fe12f939" + }, + { + "parameters": { + "operation": "executeResponder", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive15", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1510, 300], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "50e0654a-f844-43d6-9b5b-eda48c2707f4" + }, + { + "parameters": { + "resource": "observable", + "operation": "executeAnalyzer", + "id": "={{$node[\"TheHive21\"].json[\"id\"]}}", + "dataType": "={{$node[\"TheHive21\"].json[\"dataType\"]}}", + "analyzers": ["6fdd3c9b5432f1e2094cd3b8f2347d09::cortex"] + }, + "name": "TheHive24", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1720, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "fe15f804-236e-4dd1-9e3c-13758a9ce53e" + }, + { + "parameters": { + "resource": "observable", + "operation": "executeResponder", + "id": "={{$node[\"TheHive21\"].json[\"id\"]}}", + "responder": "fbe415a38eb649eb7df174aa11a32cfe" + }, + "name": "TheHive25", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1880, 450], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "9a964882-99d9-4c1e-a23b-1c45d788a9d7" + }, + { + "parameters": { + "resource": "task", + "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", + "limit": 1, + "options": {} + }, + "name": "TheHive26", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1520, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "67594eb3-fb0c-41c0-a972-b8f79585d9dc" + }, + { + "parameters": { + "resource": "task", + "operation": "executeResponder", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive27", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1690, 770], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "80a817e5-4922-4dea-baa6-ebb412b06178" + }, + { + "parameters": { + "resource": "log", + "operation": "executeResponder", + "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" + }, + "name": "TheHive28", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1350, 930], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "disabled": true, + "id": "90f4e4a2-0aee-4b1e-ab19-6d3136c7db7b" + }, + { + "parameters": { + "resource": "case", + "operation": "create", + "title": "=MergingCase{{Date.now()}}", + "description": "desc", + "startDate": "={{(new Date()).toISOString()}}", + "owner": "nodeqa", + "tags": "test", + "options": {} + }, + "name": "TheHive29", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "3c2306f0-34e0-40c8-951c-64dd9482cc22" + }, + { + "parameters": { + "title": "=MergingAlert{{Date.now()}}", + "description": "desc", + "date": "={{(new Date()).toISOString()}}", + "tags": "test", + "type": "test", + "source": "n8n", + "sourceRef": "={{Date.now().toString()}}", + "additionalFields": {} + }, + "name": "TheHive30", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [790, 150], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "66b2590c-ee6e-451f-b0b6-22200d73209f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [610, 150], + "typeVersion": 1, + "id": "1a5a6ace-fef4-4fbc-b374-492dfa5ee9c9" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [610, 300], + "typeVersion": 1, + "id": "1d31e404-48c8-45b1-963a-29689132bf18" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1060, 300], + "typeVersion": 1, + "id": "fd1d5353-73bb-4563-8f57-078ace5b7424" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [760, 450], + "typeVersion": 1, + "id": "979b0aab-acd8-4aeb-a2d5-84516d01e436" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [1210, 450], + "typeVersion": 1, + "id": "a2448c15-76d1-4611-96c1-382b8537d8e2" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [750, 600], + "typeVersion": 1, + "id": "07ec5305-28c5-4f70-a4dd-81d9222131b5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second6", + "type": "n8n-nodes-base.function", + "position": [900, 770], + "typeVersion": 1, + "id": "6a220308-b57c-4a29-a103-f828564c75f5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second7", + "type": "n8n-nodes-base.function", + "position": [900, 930], + "typeVersion": 1, + "id": "3d8ce87e-fa7f-4c91-9a91-84572a4cb5b9" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second8", + "type": "n8n-nodes-base.function", + "position": [1200, 770], + "typeVersion": 1, + "id": "8437d645-7789-4f5a-a2c0-217538297ead" + } + ], + "connections": { + "TheHive": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive1": { + "main": [ + [ + { + "node": "TheHive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive2": { + "main": [ + [ + { + "node": "TheHive15", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive3": { + "main": [ + [ + { + "node": "TheHive4", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive6": { + "main": [ + [ + { + "node": "TheHive7", + "type": "main", + "index": 0 + }, + { + "node": "TheHive11", + "type": "main", + "index": 0 + }, + { + "node": "TheHive19", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive7": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive8": { + "main": [ + [ + { + "node": "TheHive9", + "type": "main", + "index": 0 + }, + { + "node": "TheHive10", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive11": { + "main": [ + [ + { + "node": "TheHive12", + "type": "main", + "index": 0 + }, + { + "node": "TheHive16", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive12": { + "main": [ + [ + { + "node": "Sleep 0.5 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive13": { + "main": [ + [ + { + "node": "TheHive27", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second8", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive16": { + "main": [ + [ + { + "node": "Sleep 0.5 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive17": { + "main": [ + [ + { + "node": "TheHive18", + "type": "main", + "index": 0 + }, + { + "node": "TheHive28", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive19": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive20": { + "main": [ + [ + { + "node": "TheHive21", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive21": { + "main": [ + [ + { + "node": "TheHive24", + "type": "main", + "index": 0 + }, + { + "node": "TheHive25", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive22": { + "main": [ + [ + { + "node": "TheHive23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "TheHive6", + "type": "main", + "index": 0 + }, + { + "node": "TheHive", + "type": "main", + "index": 0 + }, + { + "node": "TheHive29", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive14": { + "main": [ + [ + { + "node": "TheHive26", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive30": { + "main": [ + [ + { + "node": "TheHive5", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive29": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "TheHive30", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "TheHive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "TheHive3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "TheHive20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "TheHive22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "TheHive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second6": { + "main": [ + [ + { + "node": "TheHive13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second7": { + "main": [ + [ + { + "node": "TheHive17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second8": { + "main": [ + [ + { + "node": "TheHive14", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/138.json b/packages/testing/playwright/test-workflows/workflows/138.json new file mode 100644 index 0000000000..f49863dea6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/138.json @@ -0,0 +1,1235 @@ +{ + "createdAt": "2021-03-16T16:58:12.352Z", + "updatedAt": "2021-05-21T09:27:19.124Z", + "id": "138", + "name": "TheHive[v4]:Alert:create update get getAll promote merge:Case:create update get getAll:Observable:create update get search getAll:Task:create update get search getAll:Log:create get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9f90439e-037b-46fd-b837-9b5c85b79e77" + }, + { + "parameters": { + "title": "=Title{{Date.now()}}", + "description": "desc", + "date": "={{(new Date()).toISOString()}}", + "tags": "test", + "type": "test", + "source": "n8n", + "sourceRef": "={{Date.now().toString()}}", + "additionalFields": {} + }, + "name": "TheHive", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [470, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "aa971fff-c258-4a9b-b8ee-d02ff2f3742f" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "updateFields": { + "tlp": 1 + } + }, + "name": "TheHive1", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [620, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "f84362fd-61df-4f44-933e-6a8f0c1190ca" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}" + }, + "name": "TheHive2", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [970, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "60e238b5-7826-4338-8367-9bf8a5ac1867" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive3", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1120, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "4d8575f0-4d93-41bc-acb7-518e89948e3e" + }, + { + "parameters": { + "operation": "promote", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "TheHive4", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1430, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "04f0c48e-95e9-4507-b1f4-3a839118ba61" + }, + { + "parameters": { + "resource": "case", + "operation": "create", + "title": "=Title{{Date.now()}}", + "description": "desc", + "startDate": "={{(new Date()).toISOString()}}", + "owner": "nodeqa", + "tags": "test", + "options": {} + }, + "name": "TheHive6", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [470, 350], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "0b101032-87b6-4b59-9d31-b2b6622518c6" + }, + { + "parameters": { + "resource": "case", + "operation": "update", + "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "updateFields": { + "tlp": 3 + } + }, + "name": "TheHive7", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [620, 350], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "7da42dc0-c2a1-438e-9e44-329dee84938e" + }, + { + "parameters": { + "resource": "case", + "operation": "get", + "id": "={{$node[\"TheHive6\"].json[\"id\"]}}" + }, + "name": "TheHive8", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "07902779-ae8c-4c8d-a300-57e86244cd7d" + }, + { + "parameters": { + "resource": "case", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive9", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1100, 350], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "e45a3b35-0452-47b5-9136-521a69f1daed" + }, + { + "parameters": { + "resource": "task", + "operation": "create", + "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "title": "=Task{{Date.now()}}", + "options": {} + }, + "name": "TheHive11", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [620, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "8bd67bbf-9b6c-43fe-b88e-4575f2a4206e" + }, + { + "parameters": { + "resource": "task", + "operation": "update", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "updateFields": { + "status": "InProgress" + } + }, + "name": "TheHive12", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [770, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "1df94f03-a17b-47fe-8711-06e6c973c4cd" + }, + { + "parameters": { + "resource": "task", + "operation": "get", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}" + }, + "name": "TheHive13", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1080, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "d766828e-f1d4-47b1-82ef-21ad8b72ac08" + }, + { + "parameters": { + "resource": "task", + "operation": "search", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive14", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1230, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "ddeb0b79-5381-4151-808d-66ba52861c11" + }, + { + "parameters": { + "resource": "log", + "operation": "create", + "taskId": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "message": "=Message{{Date.now()}}", + "startDate": "={{(new Date()).toISOString()}}", + "status": "Ok", + "options": {} + }, + "name": "TheHive16", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [770, 680], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "b98e4f38-08b0-4dda-949f-9a1d2f02a36e" + }, + { + "parameters": { + "resource": "log", + "operation": "get", + "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" + }, + "name": "TheHive17", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1090, 680], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "f14cd395-0d27-4342-8f42-051bdec28e09" + }, + { + "parameters": { + "resource": "log", + "taskId": "={{$node[\"TheHive16\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "TheHive18", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1240, 680], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "6f0f685c-de2f-4a5a-b221-fea2b1f9fedf" + }, + { + "parameters": { + "resource": "observable", + "operation": "create", + "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", + "dataType": "ip", + "data": "36.123.133.214", + "message": "test", + "startDate": "={{(new Date()).toISOString()}}", + "ioc": true, + "status": "Ok", + "options": {} + }, + "name": "TheHive19", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [620, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "93e80467-34a8-45ba-aa62-77b9b85f5091" + }, + { + "parameters": { + "resource": "observable", + "operation": "update", + "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}", + "updateFields": { + "ioc": false + } + }, + "name": "TheHive20", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [940, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "34ff3179-4e8b-4947-b5e2-d99a51ab3865" + }, + { + "parameters": { + "resource": "observable", + "operation": "get", + "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}" + }, + "name": "TheHive21", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1090, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "6292663d-fd3f-48b0-8802-fd0d9e29beb0" + }, + { + "parameters": { + "resource": "observable", + "operation": "search", + "limit": 1, + "options": {}, + "filters": {} + }, + "name": "TheHive22", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1450, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "5e58213d-6a75-4304-9b10-0b1e9137d436" + }, + { + "parameters": { + "resource": "observable", + "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", + "limit": 1, + "options": {} + }, + "name": "TheHive23", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1600, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "35a6f784-f1d4-482d-b7b1-7d1e7fe12383" + }, + { + "parameters": { + "resource": "task", + "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", + "limit": 1, + "options": {} + }, + "name": "TheHive26", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1520, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "3af01f2d-8d05-46f6-bc4e-d299e7b36117" + }, + { + "parameters": { + "resource": "log", + "operation": "executeResponder" + }, + "name": "TheHive28", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1390, 680], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "disabled": true, + "id": "a6c442cd-4720-45bb-bbc4-360e7aa523f7" + }, + { + "parameters": { + "operation": "count", + "filters": {} + }, + "name": "TheHive29", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1600, 50], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "129264d0-06f9-4705-8b6a-1656f3e444ac" + }, + { + "parameters": { + "resource": "observable", + "operation": "count", + "filters": {} + }, + "name": "TheHive30", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1730, 200], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "98c5ecaf-005a-4c35-ad42-42eb9b507fdf" + }, + { + "parameters": { + "resource": "case", + "operation": "count", + "filters": {} + }, + "name": "TheHive31", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1460, 350], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "fc75071b-b04c-4b46-8001-84e4be11b410" + }, + { + "parameters": { + "resource": "task", + "operation": "count", + "filters": {} + }, + "name": "TheHive32", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1650, 520], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "ab81354d-86ed-454d-8a8c-179f3bfffcac" + }, + { + "parameters": { + "operation": "merge", + "id": "={{$node[\"TheHive35\"].json[\"id\"]}}", + "caseId": "={{$node[\"TheHive34\"].json[\"id\"]}}" + }, + "name": "TheHive33", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [900, -100], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "d0348684-a348-47ad-b9bd-bb5ef60eb620" + }, + { + "parameters": { + "resource": "case", + "operation": "create", + "title": "=MergingCase{{Date.now()}}", + "description": "desc", + "startDate": "={{(new Date()).toISOString()}}", + "owner": "nodeqa", + "tags": "test", + "options": {} + }, + "name": "TheHive34", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [470, -100], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "363b6fcf-f673-485f-b50b-11a2f8274599" + }, + { + "parameters": { + "title": "=MergingAlert{{Date.now()}}", + "description": "desc", + "date": "={{(new Date()).toISOString()}}", + "tags": "test", + "type": "test", + "source": "n8n", + "sourceRef": "={{Date.now().toString()}}", + "additionalFields": {} + }, + "name": "TheHive35", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [750, -100], + "credentials": { + "theHiveApi": { + "id": "108", + "name": "The Hive API creds (v1)" + } + }, + "id": "b972bf61-8365-42f8-b1b4-bfddb2ea763c" + }, + { + "parameters": { + "operation": "executeResponder", + "id": "={{$node[\"TheHive\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive15", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1770, 50], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "edd53027-11e7-45df-ac58-38e84ea8e68f" + }, + { + "parameters": { + "resource": "observable", + "operation": "executeResponder", + "id": "={{$node[\"TheHive21\"].json[\"_id\"]}}", + "responder": "fbe415a38eb649eb7df174aa11a32cfe" + }, + "name": "TheHive25", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [2060, 200], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "9cc1c6e0-7467-4143-af7a-18d0927ef266" + }, + { + "parameters": { + "resource": "observable", + "operation": "executeAnalyzer", + "id": "={{$node[\"TheHive21\"].json[\"_id\"]}}", + "dataType": "={{$node[\"TheHive21\"].json[\"dataType\"]}}", + "analyzers": ["6fdd3c9b5432f1e2094cd3b8f2347d09::cortex"] + }, + "name": "TheHive24", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1880, 200], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "dd820c65-bf81-4ccb-9f5e-4687c69c60f9" + }, + { + "parameters": { + "resource": "case", + "operation": "executeResponder", + "id": "={{$node[\"TheHive6\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive10", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1620, 350], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "c28cb76f-22b4-4651-a6be-97fbed03f9a2" + }, + { + "parameters": { + "resource": "task", + "operation": "executeResponder", + "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", + "responder": "23bc4aef9aa1c88d6624004a3d04aeae" + }, + "name": "TheHive27", + "type": "n8n-nodes-base.theHive", + "typeVersion": 1, + "position": [1810, 520], + "credentials": { + "theHiveApi": { + "id": "107", + "name": "The Hive API creds" + } + }, + "id": "faf84c8e-59fa-4cd7-9b96-b6d41ff7fd3e" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [600, -100], + "typeVersion": 1, + "id": "48448770-8579-45c5-8b44-a3630182989b" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [770, 50], + "typeVersion": 1, + "id": "56f919d6-ba81-41f5-80f5-f5b1f57edc6a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [780, 200], + "typeVersion": 1, + "id": "cc581b90-c49e-45dc-a74f-2058b14f54e6" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [790, 350], + "typeVersion": 1, + "id": "b11a7b70-aa7a-4c94-988e-04576c28ec06" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [920, 520], + "typeVersion": 1, + "id": "00e38394-b83d-4b2d-8f64-f002f3dee288" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [930, 680], + "typeVersion": 1, + "id": "203e4d68-f936-4f70-88cc-162cb3754faf" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second6", + "type": "n8n-nodes-base.function", + "position": [1380, 520], + "typeVersion": 1, + "id": "dc7c936c-b400-402e-af72-927ca98ac0ea" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second7", + "type": "n8n-nodes-base.function", + "position": [1280, 350], + "typeVersion": 1, + "id": "733a450f-5c8b-4451-b542-afbbd1757233" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second8", + "type": "n8n-nodes-base.function", + "position": [1260, 200], + "typeVersion": 1, + "id": "96ae2c59-bde3-4c79-be16-525e36e0634f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second9", + "type": "n8n-nodes-base.function", + "position": [1270, 50], + "typeVersion": 1, + "id": "53151c11-2f85-4596-920a-4770739fd32e" + } + ], + "connections": { + "TheHive": { + "main": [ + [ + { + "node": "TheHive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive1": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive2": { + "main": [ + [ + { + "node": "TheHive3", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive3": { + "main": [ + [ + { + "node": "TheHive15", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second9", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive6": { + "main": [ + [ + { + "node": "TheHive7", + "type": "main", + "index": 0 + }, + { + "node": "TheHive11", + "type": "main", + "index": 0 + }, + { + "node": "TheHive19", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive7": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive8": { + "main": [ + [ + { + "node": "TheHive9", + "type": "main", + "index": 0 + }, + { + "node": "TheHive10", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive11": { + "main": [ + [ + { + "node": "TheHive12", + "type": "main", + "index": 0 + }, + { + "node": "TheHive16", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive12": { + "main": [ + [ + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive13": { + "main": [ + [ + { + "node": "TheHive14", + "type": "main", + "index": 0 + }, + { + "node": "TheHive27", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive14": { + "main": [ + [ + { + "node": "Sleep 0.5 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive16": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive17": { + "main": [ + [ + { + "node": "TheHive18", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive19": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive20": { + "main": [ + [ + { + "node": "TheHive21", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive21": { + "main": [ + [ + { + "node": "TheHive24", + "type": "main", + "index": 0 + }, + { + "node": "TheHive25", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second8", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive22": { + "main": [ + [ + { + "node": "TheHive23", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive26": { + "main": [ + [ + { + "node": "TheHive32", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "TheHive6", + "type": "main", + "index": 0 + }, + { + "node": "TheHive", + "type": "main", + "index": 0 + }, + { + "node": "TheHive34", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive4": { + "main": [ + [ + { + "node": "TheHive29", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive23": { + "main": [ + [ + { + "node": "TheHive30", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive9": { + "main": [ + [ + { + "node": "Sleep 0.5 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive34": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "TheHive35": { + "main": [ + [ + { + "node": "TheHive33", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "TheHive17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "TheHive13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "TheHive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "TheHive20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "TheHive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "TheHive35", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second6": { + "main": [ + [ + { + "node": "TheHive26", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second7": { + "main": [ + [ + { + "node": "TheHive31", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second8": { + "main": [ + [ + { + "node": "TheHive22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second9": { + "main": [ + [ + { + "node": "TheHive4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/139.json b/packages/testing/playwright/test-workflows/workflows/139.json new file mode 100644 index 0000000000..d6bc338d30 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/139.json @@ -0,0 +1,334 @@ +{ + "createdAt": "2021-03-19T09:20:03.334Z", + "updatedAt": "2021-03-19T09:22:57.813Z", + "id": "139", + "name": "Shopify:Product:create update get getAll delete:Order:create update get getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d841866b-3ccd-4f04-97ae-799cc649c163" + }, + { + "parameters": { + "resource": "product", + "title": "=Product{{Date.now()}}", + "additionalFields": {} + }, + "name": "Shopify", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "84e29b73-0cc6-4793-a48b-8972fc733c16" + }, + { + "parameters": { + "resource": "product", + "operation": "update", + "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Shopify\"].json[\"title\"]}}" + } + }, + "name": "Shopify1", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1350, 300], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "4013bda3-f9d6-423a-a936-df538232f5e0" + }, + { + "parameters": { + "resource": "product", + "operation": "get", + "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Shopify2", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1500, 300], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "bbc9b837-505c-4551-9fb1-4a9da938d9f9" + }, + { + "parameters": { + "resource": "product", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Shopify3", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1650, 300], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "e0fffb77-cbd1-47df-8f86-ef2ef89fd6c7" + }, + { + "parameters": { + "resource": "product", + "operation": "delete", + "productId": "={{$node[\"Shopify\"].json[\"id\"]}}" + }, + "name": "Shopify4", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1800, 300], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "61f48867-0cc6-4128-8b2b-ce4cbf60e524" + }, + { + "parameters": { + "additionalFields": { + "email": "=fake{{Date.now()}}@gmail.com", + "tags": "test,", + "test": "" + }, + "limeItemsUi": { + "lineItemValues": [ + { + "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", + "title": "=Line{{Date.now()}}", + "grams": "15", + "price": "101" + } + ] + } + }, + "name": "Shopify5", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "c1a9b348-cd93-46be-88e4-ccc2a2698fdb" + }, + { + "parameters": { + "operation": "update", + "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}", + "updateFields": { + "email": "=updated{{$node[\"Shopify5\"].json[\"email\"]}}" + } + }, + "name": "Shopify6", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [750, 450], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "e9fd5c83-7ed5-430e-b976-402027f53177" + }, + { + "parameters": { + "operation": "get", + "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}", + "options": {} + }, + "name": "Shopify7", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [900, 450], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "9ff0060c-8878-4893-84ae-a24deba7166d" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Shopify8", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1050, 450], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "5003db2b-06c5-42ca-899a-3f2e49aa0518" + }, + { + "parameters": { + "operation": "delete", + "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}" + }, + "name": "Shopify9", + "type": "n8n-nodes-base.shopify", + "typeVersion": 1, + "position": [1200, 450], + "credentials": { + "shopifyApi": { + "id": "109", + "name": "Shopify API creds" + } + }, + "id": "c6677e77-ca3d-4d7f-b8e9-87d19786a845" + } + ], + "connections": { + "Shopify": { + "main": [ + [ + { + "node": "Shopify5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Shopify", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify1": { + "main": [ + [ + { + "node": "Shopify2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify2": { + "main": [ + [ + { + "node": "Shopify3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify3": { + "main": [ + [ + { + "node": "Shopify4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify5": { + "main": [ + [ + { + "node": "Shopify6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify6": { + "main": [ + [ + { + "node": "Shopify7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify7": { + "main": [ + [ + { + "node": "Shopify8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify8": { + "main": [ + [ + { + "node": "Shopify9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Shopify9": { + "main": [ + [ + { + "node": "Shopify1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/140.json b/packages/testing/playwright/test-workflows/workflows/140.json new file mode 100644 index 0000000000..e17167d750 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/140.json @@ -0,0 +1,56 @@ +{ + "createdAt": "2021-03-19T09:48:14.284Z", + "updatedAt": "2021-03-19T09:48:14.284Z", + "id": "140", + "name": "Mailgun", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "61c01ddf-4360-4d4f-8bf3-7bb5499147b3" + }, + { + "parameters": { + "fromEmail": "nodeqa@n8n.io", + "toEmail": "node8qa@gmail.com", + "subject": "=Mailgun{{Date.now()}}", + "text": "=Test text {{(new Date).toUTCString()}}" + }, + "name": "Mailgun", + "type": "n8n-nodes-base.mailgun", + "typeVersion": 1, + "position": [470, 300], + "credentials": { + "mailgunApi": { + "id": "42", + "name": "Mailgun API creds" + } + }, + "id": "18d17dae-126a-44a3-9832-0bbf60320da8" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Mailgun", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/141.json b/packages/testing/playwright/test-workflows/workflows/141.json new file mode 100644 index 0000000000..213ccd677d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/141.json @@ -0,0 +1,402 @@ +{ + "createdAt": "2021-03-19T10:44:59.685Z", + "updatedAt": "2021-05-21T10:01:36.962Z", + "id": "141", + "name": "MicrosoftExcel:Table:lookup getRows getColumns addRow:Workbook:addWorksheet getAll:Worksheet:getAll getContent", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "13273e42-d319-4d4b-8a72-4c034ed61bac" + }, + { + "parameters": { + "operation": "addWorksheet", + "workbook": "51F07A8CA9E72D69!136", + "additionalFields": { + "name": "=WorkSheet{{Date.now()}}" + } + }, + "name": "Microsoft Excel", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "b95b3ba8-c4c8-48ff-9458-3ffdf1445f25" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Microsoft Excel1", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [790, 300], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "e8bcc5f5-7348-466f-92cd-52b12f0aff5e" + }, + { + "parameters": { + "resource": "worksheet", + "operation": "getAll", + "workbook": "51F07A8CA9E72D69!136", + "limit": 1, + "filters": {} + }, + "name": "Microsoft Excel2", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [500, 450], + "alwaysOutputData": true, + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "859d409b-f7c9-47e1-af7d-e1555c2745a9" + }, + { + "parameters": { + "resource": "worksheet", + "operation": "getContent", + "workbook": "51F07A8CA9E72D69!136", + "worksheet": "{00000000-0001-0000-0000-000000000000}", + "range": "A1:D2" + }, + "name": "Microsoft Excel3", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [790, 450], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "b9f51de5-c632-49bb-815a-f7fe13e8cce6" + }, + { + "parameters": { + "resource": "table", + "operation": "lookup", + "workbook": "51F07A8CA9E72D69!136", + "worksheet": "{00000000-0001-0000-0000-000000000000}", + "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", + "lookupColumn": "t", + "lookupValue": "n", + "options": {} + }, + "name": "Microsoft Excel4", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [500, 150], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "fbc761ca-7add-4e72-942d-4a55366491fc" + }, + { + "parameters": { + "resource": "table", + "operation": "getRows", + "workbook": "51F07A8CA9E72D69!136", + "worksheet": "{00000000-0001-0000-0000-000000000000}", + "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", + "limit": 1 + }, + "name": "Microsoft Excel5", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [800, 150], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "e0c06d78-2108-457e-955c-7abaf4b377dd" + }, + { + "parameters": { + "resource": "table", + "operation": "getColumns", + "workbook": "51F07A8CA9E72D69!136", + "worksheet": "{00000000-0001-0000-0000-000000000000}", + "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", + "limit": 1 + }, + "name": "Microsoft Excel6", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [1100, 150], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "433e7bea-93de-4efc-b77b-4d039e685527" + }, + { + "parameters": { + "resource": "table", + "workbook": "51F07A8CA9E72D69!136", + "worksheet": "{00000000-0001-0000-0000-000000000000}", + "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", + "additionalFields": {} + }, + "name": "Microsoft Excel7", + "type": "n8n-nodes-base.microsoftExcel", + "typeVersion": 1, + "position": [1400, 150], + "credentials": { + "microsoftExcelOAuth2Api": { + "id": "73", + "name": "Microsoft Excel OAuth2 creds" + } + }, + "id": "5ea1e83f-a0fb-4c12-b722-63b8419fc78a" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "Column3", + "value": "={{Date.now().toString().substr(6)}}" + }, + { + "name": "Column4", + "value": "={{Date.now().toString().substr(3)}}" + } + ], + "number": [ + { + "name": "t", + "value": "={{Math.round(Math.random()*100)}}" + }, + { + "name": "e", + "value": "={{Math.round(Math.random()*100)}}" + }, + { + "name": "s", + "value": "={{Math.round(Math.random()*100)}}" + }, + { + "name": "t2", + "value": "={{Math.round(Math.random()*100)}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1250, 150], + "id": "eb3f568f-c6f6-4a53-b6de-8de28f762848" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second", + "type": "n8n-nodes-base.function", + "position": [650, 450], + "typeVersion": 1, + "id": "5a289dee-eba5-467f-a7b3-552d94867c0f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second1", + "type": "n8n-nodes-base.function", + "position": [650, 300], + "typeVersion": 1, + "id": "0ca0ff2b-609a-42a3-a1cf-2bbc8f127f01" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second2", + "type": "n8n-nodes-base.function", + "position": [650, 150], + "typeVersion": 1, + "id": "0bb04e5a-6001-4bc1-a1dd-32b16f3f0ec0" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second3", + "type": "n8n-nodes-base.function", + "position": [950, 150], + "typeVersion": 1, + "id": "9704ee84-3b4f-419c-aaa3-3e58c16b7ca9" + } + ], + "connections": { + "Microsoft Excel": { + "main": [ + [ + { + "node": "Sleep 0.8 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Excel2": { + "main": [ + [ + { + "node": "Sleep 0.8 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Microsoft Excel", + "type": "main", + "index": 0 + }, + { + "node": "Microsoft Excel2", + "type": "main", + "index": 0 + }, + { + "node": "Microsoft Excel4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Excel4": { + "main": [ + [ + { + "node": "Sleep 0.8 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Excel5": { + "main": [ + [ + { + "node": "Sleep 0.8 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Excel6": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Microsoft Excel7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second": { + "main": [ + [ + { + "node": "Microsoft Excel3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second1": { + "main": [ + [ + { + "node": "Microsoft Excel1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second2": { + "main": [ + [ + { + "node": "Microsoft Excel5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second3": { + "main": [ + [ + { + "node": "Microsoft Excel6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/142.json b/packages/testing/playwright/test-workflows/workflows/142.json new file mode 100644 index 0000000000..6e1741e0d7 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/142.json @@ -0,0 +1,1027 @@ +{ + "createdAt": "2021-03-19T11:16:17.356Z", + "updatedAt": "2021-05-21T10:01:38.488Z", + "id": "142", + "name": "MicrosoftOutlook:Folder:create get getAll getChildren delete:Message send getAll get getMime update delete:FolderMessage:getAll:Draft:create update get delete send:MessageAttachment:add getAll get download", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c8853916-a370-410c-8c96-fec280e24502" + }, + { + "parameters": { + "subject": "=Subject {{Date.now()}}", + "bodyContent": "=Test {{(new Date).toUTCString()}}", + "toRecipients": "node8qa@gmail.com", + "additionalFields": {} + }, + "name": "Microsoft Outlook", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "75eee31d-df00-4fe7-8c29-0dca953fcec5" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Microsoft Outlook1", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "7b0b82c4-5e02-4819-a2af-748eee795377" + }, + { + "parameters": { + "operation": "get", + "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Microsoft Outlook2", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "e11bc3e4-d5fc-496a-b601-939ea3edf709" + }, + { + "parameters": { + "operation": "getMime", + "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook3", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "4d18fe05-dc23-47f9-b0bf-776ea266ad94" + }, + { + "parameters": { + "operation": "update", + "messageId": "={{$node[\"Microsoft Outlook2\"].json[\"id\"]}}", + "updateFields": { + "bodyContent": "=Updated{{$node[\"Microsoft Outlook2\"].json[\"body\"][\"content\"]}}" + } + }, + "name": "Microsoft Outlook4", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1350, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "eba271aa-7a39-45c4-b74c-79be4d600f5e" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook5", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1800, 300], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "631bf979-dfac-4acc-b038-c2efbbc4eb61" + }, + { + "parameters": { + "resource": "draft", + "subject": "=Draft{{Date.now()}}", + "bodyContent": "=draft test{{(new Date).toUTCString()}}", + "additionalFields": { + "toRecipients": " node8qa@gmail.com " + } + }, + "name": "Microsoft Outlook6", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [450, 500], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "d52c068a-caec-4b41-8f2b-6ecb09eeff45" + }, + { + "parameters": { + "resource": "draft", + "operation": "update", + "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}", + "updateFields": { + "bodyContent": "=Updated{{$node[\"Microsoft Outlook6\"].json[\"body\"][\"content\"]}}" + } + }, + "name": "Microsoft Outlook7", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [600, 500], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "d9f97b7a-cd2d-476a-bc98-65c622adafae" + }, + { + "parameters": { + "resource": "draft", + "operation": "get", + "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Microsoft Outlook8", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [900, 500], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "d8668bc3-43db-4ba9-ab40-a5bd7fd0ea32" + }, + { + "parameters": { + "resource": "draft", + "operation": "delete", + "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook9", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1050, 500], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "5c319460-5c69-4622-953a-7bcaee892d07" + }, + { + "parameters": { + "resource": "draft", + "subject": "=Draft{{Date.now()}}", + "bodyContent": "=draft test{{Date.now()}}", + "additionalFields": { + "toRecipients": " node8qa@gmail.com " + } + }, + "name": "Microsoft Outlook10", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1350, 500], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "4fefb565-502a-4a8d-a9a4-db2b208d7b12" + }, + { + "parameters": { + "resource": "draft", + "operation": "send", + "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", + "additionalFields": { + "recipients": "node8qa@gmail.com" + } + }, + "name": "Microsoft Outlook11", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [2650, 550], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "c1d8d7e4-8d6d-4ca4-9e05-e0ad702a586d" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Microsoft Outlook13\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook12", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [3100, 550], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "0e1e8c29-065e-43e2-9751-46b580640c73" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Microsoft Outlook13", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [2950, 550], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "c4ba0930-587d-47a4-8a4b-a3b3ba7ed3f2" + }, + { + "parameters": { + "resource": "folder", + "displayName": "=Folder{{(new Date).toUTCString()}}" + }, + "name": "Microsoft Outlook14", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [450, 140], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "3b783dbb-0e38-4cdb-8931-a83c2e542a9e" + }, + { + "parameters": { + "resource": "folder", + "operation": "get", + "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Microsoft Outlook15", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [750, 140], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "c829334b-0ac4-4440-b3bd-537f659608f7" + }, + { + "parameters": { + "resource": "folder", + "operation": "getAll", + "limit": 1, + "additionalFields": { + "filter": "startsWith(displayName,'Folder')" + } + }, + "name": "Microsoft Outlook16", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [900, 140], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "d446756b-e052-4869-9d2d-7d4af3c155f3" + }, + { + "parameters": { + "resource": "folder", + "operation": "getChildren", + "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}", + "limit": 1, + "additionalFields": {} + }, + "name": "Microsoft Outlook17", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1200, 140], + "alwaysOutputData": true, + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "8f732179-076b-4375-96ef-396c41ec4f22" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook18", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1350, 140], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "a4b7d61c-74c1-4595-9698-6b1fa7a73842" + }, + { + "parameters": { + "resource": "folderMessage", + "operation": "getAll", + "folderId": "AQMkADAwATNiZmYAZC0zODgAZC1jYjlmLTAwAi0wMAoALgAAA7ObUbW4UV9AtQb9CKQozz8BAIHMmBimhDVHlaNbe8JltA4AAAIBCQAAAA==", + "limit": 1, + "additionalFields": {} + }, + "name": "Microsoft Outlook19", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1650, 350], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "891fb969-79f6-4832-a3d0-b2d938fe757a" + }, + { + "parameters": { + "resource": "messageAttachment", + "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", + "additionalFields": { + "fileName": "test" + } + }, + "name": "Microsoft Outlook20", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [1750, 650], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "d7131b8a-1656-4ad0-baa0-860456471bb1" + }, + { + "parameters": { + "mode": "jsonToBinary", + "options": { + "keepSource": false + } + }, + "name": "Move Binary Data", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [1600, 650], + "id": "9f86213f-ce39-4b3e-a9e9-7327d421f7cb" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "data", + "value": "dGVzdCBmb3IgbWljcm9zb2Z0IG91dGxvb2s=" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1450, 650], + "id": "b909a6f3-09d4-450f-be31-6c771fa96f08" + }, + { + "parameters": { + "resource": "messageAttachment", + "operation": "getAll", + "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Microsoft Outlook21", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [2050, 650], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "3b59dfb0-2204-4073-81fb-9629e95969bb" + }, + { + "parameters": { + "resource": "messageAttachment", + "operation": "get", + "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", + "attachmentId": "={{$node[\"Microsoft Outlook21\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Microsoft Outlook22", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [2200, 650], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "20c4215c-8ab5-4621-872e-1799140f546d" + }, + { + "parameters": { + "resource": "messageAttachment", + "operation": "download", + "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", + "attachmentId": "={{$node[\"Microsoft Outlook21\"].json[\"id\"]}}" + }, + "name": "Microsoft Outlook23", + "type": "n8n-nodes-base.microsoftOutlook", + "typeVersion": 1, + "position": [2490, 650], + "credentials": { + "microsoftOutlookOAuth2Api": { + "id": "72", + "name": "Microsoft Outlook OAuth2 creds" + } + }, + "id": "5118f8c3-c5e5-417e-8d38-0970f7f56414" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second", + "type": "n8n-nodes-base.function", + "position": [1050, 140], + "typeVersion": 1, + "id": "94e105e3-0637-4064-8514-af332eb2827f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second1", + "type": "n8n-nodes-base.function", + "position": [610, 140], + "typeVersion": 1, + "id": "18598ace-99d1-4b66-91c7-e644a87016c5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second2", + "type": "n8n-nodes-base.function", + "position": [600, 300], + "typeVersion": 1, + "id": "ba10706c-633c-4cad-968a-f3f18e9c9920" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second3", + "type": "n8n-nodes-base.function", + "position": [1050, 300], + "typeVersion": 1, + "id": "b0f039ce-0731-4f9a-ba87-bc15d53769b8" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second4", + "type": "n8n-nodes-base.function", + "position": [1500, 350], + "typeVersion": 1, + "id": "418bceb9-6a77-464f-a4e1-8e1f9405e334" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second5", + "type": "n8n-nodes-base.function", + "position": [2800, 550], + "typeVersion": 1, + "id": "340d3c0c-faf5-4743-8c1b-f00c6541d8ca" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second6", + "type": "n8n-nodes-base.function", + "position": [2350, 650], + "typeVersion": 1, + "id": "e46a32dd-2110-4e2d-9c6e-d871edba8fe2" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second7", + "type": "n8n-nodes-base.function", + "position": [1900, 650], + "typeVersion": 1, + "id": "67a411cf-4505-4c21-aa92-1936ccdb0149" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second8", + "type": "n8n-nodes-base.function", + "position": [1940, 300], + "typeVersion": 1, + "id": "26cac095-afb7-41c7-85a9-44dbdf916e9f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second9", + "type": "n8n-nodes-base.function", + "position": [750, 500], + "typeVersion": 1, + "id": "e1fe7a57-75ee-4154-a288-6a4a740b7375" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second10", + "type": "n8n-nodes-base.function", + "position": [1200, 500], + "typeVersion": 1, + "id": "571afdbd-30e6-45d6-9848-d9c6d71b5ba4" + } + ], + "connections": { + "Microsoft Outlook": { + "main": [ + [ + { + "node": "Sleep 0.8 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook1": { + "main": [ + [ + { + "node": "Microsoft Outlook2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook2": { + "main": [ + [ + { + "node": "Sleep 0.8 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook3": { + "main": [ + [ + { + "node": "Microsoft Outlook4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook4": { + "main": [ + [ + { + "node": "Sleep 0.8 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook5": { + "main": [ + [ + { + "node": "Sleep 0.8 second8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Microsoft Outlook", + "type": "main", + "index": 0 + }, + { + "node": "Microsoft Outlook14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook6": { + "main": [ + [ + { + "node": "Microsoft Outlook7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook7": { + "main": [ + [ + { + "node": "Sleep 0.8 second9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook8": { + "main": [ + [ + { + "node": "Microsoft Outlook9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook10": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook11": { + "main": [ + [ + { + "node": "Sleep 0.8 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook13": { + "main": [ + [ + { + "node": "Microsoft Outlook12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook9": { + "main": [ + [ + { + "node": "Sleep 0.8 second10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook14": { + "main": [ + [ + { + "node": "Sleep 0.8 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook15": { + "main": [ + [ + { + "node": "Microsoft Outlook16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook16": { + "main": [ + [ + { + "node": "Sleep 0.8 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook17": { + "main": [ + [ + { + "node": "Microsoft Outlook18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook19": { + "main": [ + [ + { + "node": "Microsoft Outlook5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Move Binary Data": { + "main": [ + [ + { + "node": "Microsoft Outlook20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Move Binary Data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook20": { + "main": [ + [ + { + "node": "Sleep 0.8 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook21": { + "main": [ + [ + { + "node": "Microsoft Outlook22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook22": { + "main": [ + [ + { + "node": "Sleep 0.8 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft Outlook23": { + "main": [ + [ + { + "node": "Microsoft Outlook11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second": { + "main": [ + [ + { + "node": "Microsoft Outlook17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second1": { + "main": [ + [ + { + "node": "Microsoft Outlook15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second2": { + "main": [ + [ + { + "node": "Microsoft Outlook1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second3": { + "main": [ + [ + { + "node": "Microsoft Outlook3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second4": { + "main": [ + [ + { + "node": "Microsoft Outlook19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second5": { + "main": [ + [ + { + "node": "Microsoft Outlook13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second6": { + "main": [ + [ + { + "node": "Microsoft Outlook23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second7": { + "main": [ + [ + { + "node": "Microsoft Outlook21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second8": { + "main": [ + [ + { + "node": "Microsoft Outlook6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second9": { + "main": [ + [ + { + "node": "Microsoft Outlook8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second10": { + "main": [ + [ + { + "node": "Microsoft Outlook10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/143.json b/packages/testing/playwright/test-workflows/workflows/143.json new file mode 100644 index 0000000000..59ade890e3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/143.json @@ -0,0 +1,110 @@ +{ + "createdAt": "2021-03-22T11:26:13.716Z", + "updatedAt": "2021-03-24T08:32:29.467Z", + "id": "143", + "name": "Clearbit:Company:enrich autocomplete:Person:enrich", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [-60, 280], + "id": "8033ed4d-ce87-413e-a813-6a86713e471d" + }, + { + "parameters": { + "domain": "n8n.io", + "additionalFields": { + "companyName": "n8n", + "twitter": "n8n_io" + } + }, + "name": "Clearbit", + "type": "n8n-nodes-base.clearbit", + "typeVersion": 1, + "position": [150, 200], + "credentials": { + "clearbitApi": { + "id": "114", + "name": "Clearbit API creds" + } + }, + "id": "09a11c3f-55a2-4d52-8040-5c19b0656758" + }, + { + "parameters": { + "operation": "autocomplete", + "name": "n8n" + }, + "name": "Clearbit1", + "type": "n8n-nodes-base.clearbit", + "typeVersion": 1, + "position": [350, 200], + "credentials": { + "clearbitApi": { + "id": "114", + "name": "Clearbit API creds" + } + }, + "id": "e71587e3-ca16-4197-b0a7-d9c33f2c82b3" + }, + { + "parameters": { + "resource": "person", + "email": "jan@n8n.io", + "additionalFields": { + "company": "n8n" + } + }, + "name": "Clearbit2", + "type": "n8n-nodes-base.clearbit", + "typeVersion": 1, + "position": [150, 350], + "credentials": { + "clearbitApi": { + "id": "114", + "name": "Clearbit API creds" + } + }, + "id": "f1c59ebb-3be0-48a5-bd6b-aed005fb54ea" + } + ], + "connections": { + "Clearbit": { + "main": [ + [ + { + "node": "Clearbit1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Clearbit2", + "type": "main", + "index": 0 + }, + { + "node": "Clearbit", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/144.json b/packages/testing/playwright/test-workflows/workflows/144.json new file mode 100644 index 0000000000..c6055ce7f1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/144.json @@ -0,0 +1,126 @@ +{ + "createdAt": "2021-03-23T16:29:37.939Z", + "updatedAt": "2021-03-23T16:47:30.728Z", + "id": "144", + "name": "APITemplate.io:Account:get:Image:create:PDF:create", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "4b9021d7-c23b-4b65-be5b-8c597bfcd020" + }, + { + "parameters": { + "resource": "account" + }, + "name": "APITemplate.io", + "type": "n8n-nodes-base.apiTemplateIo", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "apiTemplateIoApi": { + "id": "115", + "name": "APITemplate.io API creds" + } + }, + "id": "a66cee09-cb64-4958-a4b9-b864bca5f583" + }, + { + "parameters": { + "imageTemplateId": "43c77b2b1a93c324", + "download": true, + "overridesUi": { + "overrideValues": [ + { + "propertiesUi": { + "propertyValues": [ + { + "key": "src", + "value": "https://n8n.io/_nuxt/img/df5be1c.png" + }, + { + "key": "name", + "value": "background-image" + } + ] + } + } + ] + }, + "options": {} + }, + "name": "APITemplate.io1", + "type": "n8n-nodes-base.apiTemplateIo", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "apiTemplateIoApi": { + "id": "115", + "name": "APITemplate.io API creds" + } + }, + "id": "0ec44b99-4d88-4124-adb0-398523d1efe5" + }, + { + "parameters": { + "resource": "pdf", + "pdfTemplateId": "02777b2b1a99bac8", + "download": true, + "propertiesUi": { + "propertyValues": [ + { + "key": "name", + "value": "nodeaqa" + } + ] + }, + "options": {} + }, + "name": "APITemplate.io2", + "type": "n8n-nodes-base.apiTemplateIo", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "apiTemplateIoApi": { + "id": "115", + "name": "APITemplate.io API creds" + } + }, + "id": "7a6502cc-3287-4732-b140-6b66e86987d7" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "APITemplate.io", + "type": "main", + "index": 0 + }, + { + "node": "APITemplate.io1", + "type": "main", + "index": 0 + }, + { + "node": "APITemplate.io2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/145.json b/packages/testing/playwright/test-workflows/workflows/145.json new file mode 100644 index 0000000000..f32eab361d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/145.json @@ -0,0 +1,75 @@ +{ + "createdAt": "2021-03-23T16:57:55.466Z", + "updatedAt": "2021-03-23T16:57:55.466Z", + "id": "145", + "name": "Peekalink:isAvailable preview", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "81f5cd1e-3133-46d5-a1e2-70790d6d338a" + }, + { + "parameters": { + "operation": "isAvailable", + "url": "https://example.com/" + }, + "name": "Peekalink", + "type": "n8n-nodes-base.peekalink", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "peekalinkApi": { + "id": "116", + "name": "Peekalink API" + } + }, + "id": "a8686c14-d503-4e1f-a693-e08cf71ac65e" + }, + { + "parameters": { + "url": "https://example.com/" + }, + "name": "Peekalink1", + "type": "n8n-nodes-base.peekalink", + "typeVersion": 1, + "position": [550, 400], + "credentials": { + "peekalinkApi": { + "id": "116", + "name": "Peekalink API" + } + }, + "id": "dfffa4d9-913a-4a08-89de-a1e8f6b010d4" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Peekalink1", + "type": "main", + "index": 0 + }, + { + "node": "Peekalink", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/146.json b/packages/testing/playwright/test-workflows/workflows/146.json new file mode 100644 index 0000000000..297f53ffc4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/146.json @@ -0,0 +1,211 @@ +{ + "createdAt": "2021-03-23T19:24:34.036Z", + "updatedAt": "2021-03-23T19:24:34.036Z", + "id": "146", + "name": "TimescaleDB:insert update executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "22efcecd-6cad-42b4-9571-123444740429" + }, + { + "parameters": { + "table": "conditions", + "columns": "temperature,location,time" + }, + "name": "TimescaleDB", + "type": "n8n-nodes-base.timescaleDb", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "timescaleDb": { + "id": "117", + "name": "TimescaleDB creds" + } + }, + "id": "e1b1c99c-bf00-4203-b879-bce0feda1963" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "location", + "value": "n8n" + }, + { + "name": "time", + "value": "={{(new Date()).toISOString()}}" + } + ], + "number": [ + { + "name": "temperature", + "value": "={{Math.random()*100}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "834fa03b-7027-435b-acb0-21ca690a6252" + }, + { + "parameters": { + "operation": "update", + "table": "conditions", + "updateKey": "temperature", + "columns": "location" + }, + "name": "TimescaleDB1", + "type": "n8n-nodes-base.timescaleDb", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "timescaleDb": { + "id": "117", + "name": "TimescaleDB creds" + } + }, + "id": "1fae6a3d-91b5-4c4d-8204-270856d7d6de" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=SELECT *\nFROM conditions\nWHERE time='{{$node[\"Set\"].json[\"time\"]}}'" + }, + "name": "TimescaleDB2", + "type": "n8n-nodes-base.timescaleDb", + "typeVersion": 1, + "position": [700, 300], + "notesInFlow": true, + "credentials": { + "timescaleDb": { + "id": "117", + "name": "TimescaleDB creds" + } + }, + "notes": "Select row using query", + "id": "6e296996-47ee-446a-8784-731d7ecfc9e7" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "location", + "value": "updatedn8n" + } + ], + "number": [] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [850, 300], + "id": "344e4ad6-aba8-4792-b846-508e61592a38" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "DELETE FROM conditions;" + }, + "name": "TimescaleDB3", + "type": "n8n-nodes-base.timescaleDb", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "timescaleDb": { + "id": "117", + "name": "TimescaleDB creds" + } + }, + "id": "516e1804-3f18-4897-86e7-cf924f92b5aa" + } + ], + "connections": { + "TimescaleDB": { + "main": [ + [ + { + "node": "TimescaleDB2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "TimescaleDB", + "type": "main", + "index": 0 + } + ] + ] + }, + "TimescaleDB2": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "TimescaleDB1", + "type": "main", + "index": 0 + } + ] + ] + }, + "TimescaleDB1": { + "main": [ + [ + { + "node": "TimescaleDB3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/147.json b/packages/testing/playwright/test-workflows/workflows/147.json new file mode 100644 index 0000000000..bc24eb723d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/147.json @@ -0,0 +1,405 @@ +{ + "createdAt": "2021-03-24T08:48:20.306Z", + "updatedAt": "2021-03-24T08:55:26.613Z", + "id": "147", + "name": "Raindrop:User:get:Collection:create get update getAll delete:Bookmark:create get update getAll delete:Tag:getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "953c7b03-6474-482f-84d8-1f38d7183bd3" + }, + { + "parameters": { + "resource": "user" + }, + "name": "Raindrop", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [460, 230], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "c299bc92-d175-4684-9c2e-e7d6b730d94c" + }, + { + "parameters": { + "operation": "create", + "title": "=Collection{{Date.now()}}", + "additionalFields": { + "public": false + } + }, + "name": "Raindrop1", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [460, 380], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "30ba40e6-5e26-4937-ae66-5a5257529c11" + }, + { + "parameters": { + "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}" + }, + "name": "Raindrop2", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [600, 380], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "7dad07a5-e3d6-450d-89bb-c769e31352ad" + }, + { + "parameters": { + "operation": "update", + "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Raindrop1\"].json[\"title\"]}}" + } + }, + "name": "Raindrop3", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [750, 380], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "cc020621-137d-42b4-9d89-80efcc6a2b84" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Raindrop4", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [900, 380], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "142119f2-857c-4f0c-b64b-869fc06c7b95" + }, + { + "parameters": { + "operation": "delete", + "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}" + }, + "name": "Raindrop5", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [2100, 370], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "bea41e9d-700f-42a2-99b7-53ff087665b8" + }, + { + "parameters": { + "resource": "bookmark", + "operation": "create", + "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", + "link": "https://n8n.io/", + "additionalFields": { + "tags": "n8n,automation,worfklow,test", + "title": "=Bookmark{{Date.now()}}" + } + }, + "name": "Raindrop6", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1050, 500], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "c8a5347b-d739-4cf1-be7c-1a6039837561" + }, + { + "parameters": { + "resource": "bookmark", + "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}" + }, + "name": "Raindrop7", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1200, 500], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "f37f269e-85b5-4159-85a5-34bd8401a8b4" + }, + { + "parameters": { + "resource": "bookmark", + "operation": "update", + "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Raindrop6\"].json[\"title\"]}}" + } + }, + "name": "Raindrop8", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1350, 500], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "d715febb-1ab1-41d3-8a19-93da561c50bb" + }, + { + "parameters": { + "resource": "bookmark", + "operation": "getAll", + "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", + "limit": 1 + }, + "name": "Raindrop9", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1500, 500], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "847a3d9e-862b-406e-a34f-547af4ac0daa" + }, + { + "parameters": { + "resource": "bookmark", + "operation": "delete", + "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}" + }, + "name": "Raindrop10", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1950, 500], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "6e9390e2-9249-481e-8345-c6f039a267b9" + }, + { + "parameters": { + "resource": "tag", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Raindrop11", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1650, 650], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "e6c67559-328b-4442-b3e8-167a3c58116a" + }, + { + "parameters": { + "resource": "tag", + "operation": "delete", + "tags": "test", + "additionalFields": {} + }, + "name": "Raindrop12", + "type": "n8n-nodes-base.raindrop", + "typeVersion": 1, + "position": [1800, 650], + "credentials": { + "raindropOAuth2Api": { + "id": "118", + "name": "Raindrop OAuth2 API creds" + } + }, + "id": "4db832b9-cbce-4e45-b404-fe5f7d0e7924" + } + ], + "connections": { + "Raindrop1": { + "main": [ + [ + { + "node": "Raindrop2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop2": { + "main": [ + [ + { + "node": "Raindrop3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop3": { + "main": [ + [ + { + "node": "Raindrop4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop4": { + "main": [ + [ + { + "node": "Raindrop6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop6": { + "main": [ + [ + { + "node": "Raindrop7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop7": { + "main": [ + [ + { + "node": "Raindrop8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop8": { + "main": [ + [ + { + "node": "Raindrop9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop9": { + "main": [ + [ + { + "node": "Raindrop11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop11": { + "main": [ + [ + { + "node": "Raindrop12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop12": { + "main": [ + [ + { + "node": "Raindrop10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Raindrop10": { + "main": [ + [ + { + "node": "Raindrop5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Raindrop", + "type": "main", + "index": 0 + }, + { + "node": "Raindrop1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/148.json b/packages/testing/playwright/test-workflows/workflows/148.json new file mode 100644 index 0000000000..5ce17903ec --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/148.json @@ -0,0 +1,80 @@ +{ + "createdAt": "2021-03-24T09:07:34.933Z", + "updatedAt": "2021-07-29T14:07:02.141Z", + "id": "148", + "name": "Deepl:Language:translate", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e3254a53-50f2-42df-925a-f7f4ac8d0a50" + }, + { + "parameters": { + "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service.", + "translateTo": "DE", + "additionalFields": { + "splitSentences": "1", + "preserveFormatting": "0", + "formality": "default" + } + }, + "name": "DeepL", + "type": "n8n-nodes-base.deepL", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "deepLApi": { + "id": "183", + "name": "Deepl Free API creds" + } + }, + "id": "e8c6fe13-54b6-476f-a5c5-d6699874fc9e" + }, + { + "parameters": { + "functionCode": "testData ='n8n (ausgesprochen n-eight-n) hilft Ihnen, jede App mit einer API auf der Welt miteinander zu verbinden, um ihre Daten ohne eine einzige Zeile Code zu teilen und zu manipulieren. Es ist ein einfach zu bedienender, benutzerfreundlicher und hochgradig anpassbarer Dienst.'\nif(items[0].json['text'] !== testData){\n throw new Error('Problem in DeepL node')\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [650, 300], + "id": "2672ca93-3052-4bc7-9145-f0f25405378d" + } + ], + "connections": { + "DeepL": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "DeepL", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/149.json b/packages/testing/playwright/test-workflows/workflows/149.json new file mode 100644 index 0000000000..6f44229f58 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/149.json @@ -0,0 +1,598 @@ +{ + "createdAt": "2021-03-24T10:13:37.863Z", + "updatedAt": "2021-07-29T16:13:27.056Z", + "id": "149", + "name": "Reddit:User:get:Subreddit:get getAll:Profile:get:Post:create get getAll search delete:PostComment:create getAll reply delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0591985b-5e87-405c-9836-f3445e04edf6" + }, + { + "parameters": { + "resource": "user", + "username": "nodeqa" + }, + "name": "Reddit", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [450, 150], + "id": "56e5318b-d8b6-4e9b-a847-29871a1671a1" + }, + { + "parameters": { + "resource": "user", + "username": "nodeqa", + "details": "comments", + "limit": 1 + }, + "name": "Reddit1", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [600, 150], + "alwaysOutputData": true, + "id": "31923945-dd5e-4fc2-8f6d-2aa45e32b06b" + }, + { + "parameters": { + "resource": "user", + "username": "nodeqa", + "details": "gilded", + "limit": 1 + }, + "name": "Reddit2", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [750, 150], + "alwaysOutputData": true, + "id": "a7954654-dc0e-44eb-9ff3-f9b5a8f2b1a0" + }, + { + "parameters": { + "resource": "user", + "username": "nodeqa", + "details": "overview", + "limit": 1 + }, + "name": "Reddit3", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [900, 150], + "alwaysOutputData": true, + "id": "175fcb7c-a5ee-4900-aeee-4a4bfe2ad1be" + }, + { + "parameters": { + "resource": "user", + "username": "nodeqa", + "details": "submitted", + "limit": 1 + }, + "name": "Reddit4", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1050, 150], + "alwaysOutputData": true, + "id": "6d3148bb-7c31-435c-aad2-06272d3a8197" + }, + { + "parameters": { + "resource": "subreddit", + "subreddit": "nocode" + }, + "name": "Reddit5", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [450, 300], + "alwaysOutputData": true, + "id": "33965804-57f3-4f25-afb8-68715fa81354" + }, + { + "parameters": { + "resource": "subreddit", + "operation": "getAll", + "limit": 1, + "filters": { + "trending": false + } + }, + "name": "Reddit6", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [600, 300], + "alwaysOutputData": true, + "id": "f918e479-b30a-4fa0-8830-89dd7edf5004" + }, + { + "parameters": { + "resource": "profile" + }, + "name": "Reddit7", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [450, 450], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "notes": "IGNORED_PROPERTIES=cookie_consent_banner", + "id": "5747c453-08f3-4777-8cee-36315d2dfdc0" + }, + { + "parameters": { + "resource": "profile", + "details": "prefs" + }, + "name": "Reddit8", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [600, 450], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "7301f84d-f865-4ce6-b754-26c6688927dc" + }, + { + "parameters": { + "resource": "profile", + "details": "trophies" + }, + "name": "Reddit9", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [750, 450], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "6e6261e9-4b73-4cfd-9c43-06e3419204e1" + }, + { + "parameters": { + "subreddit": "test", + "title": "=Title{{Date.now()}}", + "text": "=Test post {{Date.now()}}" + }, + "name": "Reddit10", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [450, 600], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "008c54e0-80a0-478d-a71e-3d84ede2952e" + }, + { + "parameters": { + "operation": "get", + "subreddit": "test", + "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}" + }, + "name": "Reddit11", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [600, 600], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "57990704-189f-4f6a-8fc5-6bb9c6593f05" + }, + { + "parameters": { + "operation": "getAll", + "subreddit": "test", + "limit": 1, + "filters": { + "category": "new" + } + }, + "name": "Reddit12", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [750, 600], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "bbb708d3-a7b5-42fe-bc28-e617f0a95dff" + }, + { + "parameters": { + "operation": "search", + "subreddit": "test", + "keyword": "post", + "limit": 1, + "additionalFields": { + "sort": "new" + } + }, + "name": "Reddit13", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [900, 600], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "notes": "IGNORED_PROPERTIES=post_hint,preview,url_overridden_by_dest,is_gallery,gallery_data,media_metadata", + "id": "2201c9ff-a721-4b00-a17f-d285bd9daee7" + }, + { + "parameters": { + "operation": "delete", + "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}" + }, + "name": "Reddit14", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1960, 600], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "6653bae4-be12-47a1-b515-a88ca01a0f03" + }, + { + "parameters": { + "resource": "postComment", + "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}", + "commentText": "=Comment{{Date.now()}}" + }, + "name": "Reddit15", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1050, 750], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "d11b902b-9839-436b-b370-e90d61b9ed80" + }, + { + "parameters": { + "resource": "postComment", + "operation": "getAll", + "subreddit": "test", + "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Reddit16", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1360, 750], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "a90dfeb6-1940-41eb-8083-eb9e7003bf10" + }, + { + "parameters": { + "resource": "postComment", + "operation": "reply", + "commentId": "={{$node[\"Reddit15\"].json[\"id\"]}}", + "replyText": "=ReplyComment{{Date.now()}}" + }, + "name": "Reddit17", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1510, 750], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "c80efe81-fc7d-4523-ba4c-11e0e22e064a" + }, + { + "parameters": { + "resource": "postComment", + "operation": "delete", + "commentId": "={{$node[\"Reddit15\"].json[\"id\"]}}" + }, + "name": "Reddit18", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1660, 750], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "ad24a5e6-0d22-441e-a7f9-d74dcf49ecd4" + }, + { + "parameters": { + "resource": "postComment", + "operation": "delete", + "commentId": "={{$node[\"Reddit17\"].json[\"id\"]}}" + }, + "name": "Reddit19", + "type": "n8n-nodes-base.reddit", + "typeVersion": 1, + "position": [1810, 750], + "alwaysOutputData": true, + "credentials": { + "redditOAuth2Api": { + "id": "120", + "name": "Reddit OAuth2 API creds" + } + }, + "id": "a9ec2a18-187e-47ee-a5ce-73bbd02576f2" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(10000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 10 seconds", + "type": "n8n-nodes-base.function", + "position": [1200, 750], + "typeVersion": 1, + "id": "858b86f3-9efd-45b0-88e7-c2b25d560159" + } + ], + "connections": { + "Reddit": { + "main": [ + [ + { + "node": "Reddit1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit1": { + "main": [ + [ + { + "node": "Reddit2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit2": { + "main": [ + [ + { + "node": "Reddit3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit3": { + "main": [ + [ + { + "node": "Reddit4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit5": { + "main": [ + [ + { + "node": "Reddit6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit7": { + "main": [ + [ + { + "node": "Reddit8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit8": { + "main": [ + [ + { + "node": "Reddit9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit10": { + "main": [ + [ + { + "node": "Reddit11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit11": { + "main": [ + [ + { + "node": "Reddit12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit12": { + "main": [ + [ + { + "node": "Reddit13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit13": { + "main": [ + [ + { + "node": "Reddit15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit15": { + "main": [ + [ + { + "node": "Sleep 10 seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit16": { + "main": [ + [ + { + "node": "Reddit17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit17": { + "main": [ + [ + { + "node": "Reddit18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit18": { + "main": [ + [ + { + "node": "Reddit19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Reddit19": { + "main": [ + [ + { + "node": "Reddit14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Reddit", + "type": "main", + "index": 0 + }, + { + "node": "Reddit5", + "type": "main", + "index": 0 + }, + { + "node": "Reddit7", + "type": "main", + "index": 0 + }, + { + "node": "Reddit10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 10 seconds": { + "main": [ + [ + { + "node": "Reddit16", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/15.json b/packages/testing/playwright/test-workflows/workflows/15.json new file mode 100644 index 0000000000..0214a8ca6a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/15.json @@ -0,0 +1,486 @@ +{ + "createdAt": "2021-02-16T10:16:46.803Z", + "updatedAt": "2021-05-20T15:21:14.466Z", + "id": "15", + "name": "DropBox:File: upload move copy download delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [120, 300], + "id": "96dbd3bb-afe7-43ce-a204-ab0a1fec38e1" + }, + { + "parameters": { + "path": "={{$json[\"metadata\"][\"path_display\"]}}/testFile", + "binaryData": true + }, + "name": "Dropbox", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [750, 300], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "continueOnFail": true, + "id": "ae1f6047-70fc-4da6-a602-663fc63442e4" + }, + { + "parameters": { + "operation": "move", + "path": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/testFile", + "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/moveTestFile{{Date.now()}}" + }, + "name": "Dropbox2", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1050, 300], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "6b0ee1ef-fd36-4a78-bf5a-77a6351e7cb5" + }, + { + "parameters": { + "operation": "copy", + "path": "={{$json[\"metadata\"][\"path_display\"]}}", + "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/copiedTestFile" + }, + "name": "Dropbox3", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1210, 300], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "249d895c-adab-4ef9-a9de-107a707eedc2" + }, + { + "parameters": { + "operation": "delete", + "path": "={{$json[\"metadata\"][\"path_display\"]}}" + }, + "name": "Dropbox4", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1490, 300], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "6f5575aa-9fb2-4ce9-8d17-0955797fb62d" + }, + { + "parameters": { + "operation": "download", + "path": "={{$json[\"metadata\"][\"path_display\"]}}" + }, + "name": "Dropbox5", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1210, 450], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "b982811b-6408-4410-8519-fa3a1df215ba" + }, + { + "parameters": { + "operation": "delete", + "path": "={{$json[\"metadata\"][\"path_display\"]}}" + }, + "name": "Dropbox6", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1500, 450], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "e168f6df-3d70-4256-a19d-ada81d6e29d1" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [450, 300], + "id": "0ac33c86-3813-4af0-be35-9201501cbd28" + }, + { + "parameters": { + "resource": "folder", + "path": "=/testFolder{{Date.now()}}" + }, + "name": "Dropbox8", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [300, 130], + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "8d123a27-69dc-4fb1-95b4-c5d5eb90e07b" + }, + { + "parameters": { + "resource": "folder", + "operation": "list", + "path": "={{$node[\"Dropbox10\"].json[\"metadata\"][\"path_display\"]}}", + "limit": 1, + "filters": { + "include_deleted": true + } + }, + "name": "Dropbox9", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [2070, 150], + "alwaysOutputData": true, + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "09395798-ba6f-4d77-a96a-01b162e9695f" + }, + { + "parameters": { + "resource": "folder", + "operation": "move", + "path": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}", + "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}Renamed" + }, + "name": "Dropbox10", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [1800, 150], + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "7eca30c5-506c-46cc-bbe0-6ded1099dee3" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "path": "={{$node[\"Dropbox10\"].json[\"metadata\"][\"path_display\"]}}" + }, + "name": "Dropbox11", + "type": "n8n-nodes-base.dropbox", + "typeVersion": 1, + "position": [2380, 150], + "credentials": { + "dropboxApi": { + "id": "31", + "name": "Dropbox creds" + } + }, + "id": "f513eda7-84d7-4903-ad94-c33c6f1a37a9" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds", + "type": "n8n-nodes-base.function", + "position": [600, 300], + "typeVersion": 1, + "id": "28826f4e-1aeb-4bad-9516-fd49a29a4db5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds1", + "type": "n8n-nodes-base.function", + "position": [900, 300], + "typeVersion": 1, + "id": "55fa0728-bd74-41b0-b0b4-6b59175633b8" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds2", + "type": "n8n-nodes-base.function", + "position": [1350, 300], + "typeVersion": 1, + "id": "694407f2-2225-459d-bfd3-23f9371c7e22" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds3", + "type": "n8n-nodes-base.function", + "position": [1350, 450], + "typeVersion": 1, + "id": "c42d5236-994b-446a-9427-2095bb3b5121" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds4", + "type": "n8n-nodes-base.function", + "position": [2230, 150], + "typeVersion": 1, + "id": "84d5255b-7ef5-4f96-92dc-4bd7d406cba7" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds5", + "type": "n8n-nodes-base.function", + "position": [1930, 150], + "typeVersion": 1, + "id": "425dc02d-8d3c-42f9-a812-3a223f6b7a47" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 seconds6", + "type": "n8n-nodes-base.function", + "position": [1650, 450], + "typeVersion": 1, + "id": "de860b61-34ef-4faa-a0a8-6054fcd8079b" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Dropbox8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox2": { + "main": [ + [ + { + "node": "Dropbox3", + "type": "main", + "index": 0 + }, + { + "node": "Dropbox5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox3": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox5": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox6": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox8": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox9": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Dropbox10": { + "main": [ + [ + { + "node": "Sleep 0.8 seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds": { + "main": [ + [ + { + "node": "Dropbox", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds1": { + "main": [ + [ + { + "node": "Dropbox2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds2": { + "main": [ + [ + { + "node": "Dropbox4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds3": { + "main": [ + [ + { + "node": "Dropbox6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds4": { + "main": [ + [ + { + "node": "Dropbox11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds5": { + "main": [ + [ + { + "node": "Dropbox9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 seconds6": { + "main": [ + [ + { + "node": "Dropbox10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/150.json b/packages/testing/playwright/test-workflows/workflows/150.json new file mode 100644 index 0000000000..85af2c3357 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/150.json @@ -0,0 +1,197 @@ +{ + "createdAt": "2021-03-24T13:20:07.626Z", + "updatedAt": "2021-03-24T13:33:51.181Z", + "id": "150", + "name": "PostHog:Event:create:Identity:create:Alias:create:Track:page screen", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "74887071-8225-4c30-8b67-c3bc2cbbbb3c" + }, + { + "parameters": { + "eventName": "=Event{{Date.now()}}", + "distinctId": "={{Date.now()}}", + "additionalFields": { + "propertiesUi": { + "propertyValues": [ + { + "key": "name", + "value": "test" + } + ] + }, + "timestamp": "={{(new Date()).toISOString()}}" + } + }, + "name": "PostHog", + "type": "n8n-nodes-base.postHog", + "typeVersion": 1, + "position": [500, 150], + "credentials": { + "postHogApi": { + "id": "121", + "name": "PostHog API" + } + }, + "id": "73600be8-3dde-4dea-a1d0-cea020c02acf" + }, + { + "parameters": { + "resource": "identity", + "distinctId": "={{Date.now()}}", + "additionalFields": { + "propertiesUi": { + "propertyValues": [ + { + "key": "name", + "value": "identity test" + }, + { + "key": "email", + "value": "=fake{{Date.now()}}@gmail.com" + } + ] + }, + "timestamp": "={{Date.now()}}" + } + }, + "name": "PostHog1", + "type": "n8n-nodes-base.postHog", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "postHogApi": { + "id": "121", + "name": "PostHog API" + } + }, + "id": "dd146375-b44f-445a-a2a4-fbaeb9028b0c" + }, + { + "parameters": { + "resource": "alias", + "alias": "=Alias{{Date.now()}}", + "distinctId": "={{Date.now()}}", + "additionalFields": { + "contextUi": { + "contextValues": [ + { + "key": "name", + "value": "Aliastest" + } + ] + }, + "timestamp": "={{Date.now()}}" + } + }, + "name": "PostHog2", + "type": "n8n-nodes-base.postHog", + "typeVersion": 1, + "position": [500, 450], + "credentials": { + "postHogApi": { + "id": "121", + "name": "PostHog API" + } + }, + "id": "cb1f2644-f1a7-46b0-950e-de720819b2b7" + }, + { + "parameters": { + "resource": "track", + "name": "=TrackPage{{Date.now()}}", + "distinctId": "={{Date.now()}}", + "additionalFields": { + "category": "landing", + "timestamp": "={{Date.now()}}" + } + }, + "name": "PostHog3", + "type": "n8n-nodes-base.postHog", + "typeVersion": 1, + "position": [500, 600], + "credentials": { + "postHogApi": { + "id": "121", + "name": "PostHog API" + } + }, + "id": "88973d09-036b-41c3-a24c-d799ef0354e2" + }, + { + "parameters": { + "resource": "track", + "operation": "screen", + "name": "=TrackScreen{{Date.now()}}", + "distinctId": "={{Date.now()}}", + "additionalFields": { + "category": "registration", + "timestamp": "={{Date.now()}}" + } + }, + "name": "PostHog4", + "type": "n8n-nodes-base.postHog", + "typeVersion": 1, + "position": [650, 600], + "credentials": { + "postHogApi": { + "id": "121", + "name": "PostHog API" + } + }, + "id": "2677f5a4-9a15-41f2-a8c0-ea42f269f57b" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "PostHog", + "type": "main", + "index": 0 + }, + { + "node": "PostHog1", + "type": "main", + "index": 0 + }, + { + "node": "PostHog2", + "type": "main", + "index": 0 + }, + { + "node": "PostHog3", + "type": "main", + "index": 0 + } + ] + ] + }, + "PostHog3": { + "main": [ + [ + { + "node": "PostHog4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/151.json b/packages/testing/playwright/test-workflows/workflows/151.json new file mode 100644 index 0000000000..17a412f6ff --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/151.json @@ -0,0 +1,480 @@ +{ + "createdAt": "2021-03-24T14:46:45.567Z", + "updatedAt": "2024-02-23T14:00:43.000Z", + "id": "151", + "name": "Wise:Account:getStatement getBalances getCurrencies:ExchangeRate:get:Profile:get getAll:Recipient:getAll:Quote:create get:Transfer:create get getAll execute delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 650], + "id": "b6204c57-404f-4c53-acc1-a9c9f2e698f5" + }, + { + "parameters": { + "profileId": 16154361 + }, + "name": "Wise", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [650, 200], + "id": "b5851401-b389-4093-9ac2-4f3006f0d21c", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "operation": "getCurrencies" + }, + "name": "Wise1", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [800, 200], + "id": "f0ae63de-1ea4-4ab7-9e72-27aad926e330", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1" + }, + { + "parameters": { + "operation": "getStatement", + "profileId": 16154361, + "borderlessAccountId": 23302, + "currency": "EUR", + "additionalFields": { + "lineStyle": "FLAT" + } + }, + "name": "Wise2", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 200], + "id": "519dda48-ddf1-403b-8dd0-9d91d503f2bb", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "exchangeRate", + "source": "EUR", + "target": "USD", + "additionalFields": {} + }, + "name": "Wise3", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 350], + "id": "ea08c815-9107-41b5-a5af-e2f45b251423", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1" + }, + { + "parameters": { + "resource": "profile", + "profileId": 16154361 + }, + "name": "Wise4", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 500], + "id": "8565eca9-04f5-4c9c-be56-8e3e424e907f", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "recipient", + "limit": 1 + }, + "name": "Wise5", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 650], + "id": "4e57ca88-b2a7-4459-a0c7-09c71da2162b", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "quote", + "operation": "create", + "profileId": 16154361, + "targetAccountId": 147784112, + "amount": 2, + "sourceCurrency": "EUR", + "targetCurrency": "EUR" + }, + "name": "Wise6", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 800], + "id": "0d28f340-cf11-4c34-922e-e82336dfed81", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "quote", + "quoteId": "={{$node[\"Wise6\"].json[\"id\"]}}" + }, + "name": "Wise7", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [640, 800], + "id": "463946cf-45f9-4499-af29-ca3f7ea4f149", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "operation": "create", + "profileId": 16154361, + "quoteId": "={{$node[\"Wise6\"].json[\"id\"]}}", + "targetAccountId": 700007874, + "additionalFields": {} + }, + "name": "Wise8", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [800, 850], + "id": "7adccbb0-f2c0-433c-a80d-5ce191e71ec6", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "transferId": "={{$node[\"Wise8\"].json[\"id\"]}}" + }, + "name": "Wise9", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [950, 850], + "id": "6f34d46a-b8a9-462c-912f-a9de39b43aba", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "operation": "getAll", + "profileId": 16154361, + "limit": 1, + "filters": {} + }, + "name": "Wise10", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [1100, 850], + "executeOnce": false, + "alwaysOutputData": true, + "id": "ba5f7e05-3192-4727-9340-a1003b6b73cb", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "profile", + "operation": "getAll" + }, + "name": "Wise12", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [650, 500], + "id": "a33da4e1-d27c-4f69-9ce0-0734dbce5df7", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "operation": "execute", + "profileId": 16154361, + "transferId": "={{$node[\"Wise8\"].json[\"id\"]}}" + }, + "name": "Wise13", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [1250, 850], + "id": "093d0ca7-9888-4fb1-9734-bc3bf746ce73", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + }, + "disabled": true + }, + { + "parameters": { + "resource": "quote", + "operation": "create", + "profileId": 16154361, + "targetAccountId": 147784112, + "amount": 2, + "sourceCurrency": "EUR", + "targetCurrency": "EUR" + }, + "name": "Wise14", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [500, 1000], + "id": "52b98874-8d52-4e6f-bd45-808afaa13e20", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "operation": "create", + "profileId": 16154361, + "quoteId": "={{$node[\"Wise14\"].json[\"id\"]}}", + "targetAccountId": 700007874, + "additionalFields": {} + }, + "name": "Wise16", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [650, 1050], + "id": "e3d1a7a9-db38-4786-a21a-400182843da5", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + }, + { + "parameters": { + "resource": "transfer", + "operation": "delete", + "transferId": "={{$node[\"Wise16\"].json[\"id\"]}}" + }, + "name": "Wise15", + "type": "n8n-nodes-base.wise", + "typeVersion": 1, + "position": [800, 1050], + "id": "18f10919-83ea-48e0-8df0-19b0ebb2673f", + "credentials": { + "wiseApi": { + "id": "122", + "name": "Wise API creds" + } + } + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Wise5", + "type": "main", + "index": 0 + }, + { + "node": "Wise4", + "type": "main", + "index": 0 + }, + { + "node": "Wise3", + "type": "main", + "index": 0 + }, + { + "node": "Wise2", + "type": "main", + "index": 0 + }, + { + "node": "Wise6", + "type": "main", + "index": 0 + }, + { + "node": "Wise14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise": { + "main": [ + [ + { + "node": "Wise1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise2": { + "main": [ + [ + { + "node": "Wise", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise6": { + "main": [ + [ + { + "node": "Wise7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise4": { + "main": [ + [ + { + "node": "Wise12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise7": { + "main": [ + [ + { + "node": "Wise8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise8": { + "main": [ + [ + { + "node": "Wise9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise9": { + "main": [ + [ + { + "node": "Wise10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise10": { + "main": [ + [ + { + "node": "Wise13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise14": { + "main": [ + [ + { + "node": "Wise16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wise16": { + "main": [ + [ + { + "node": "Wise15", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "12d5670d-e8b6-4c6a-bf37-bcc7f8e53f43", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/152.json b/packages/testing/playwright/test-workflows/workflows/152.json new file mode 100644 index 0000000000..e900b03699 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/152.json @@ -0,0 +1,98 @@ +{ + "createdAt": "2021-03-25T09:23:15.717Z", + "updatedAt": "2021-05-10T14:22:21.201Z", + "id": "152", + "name": "AWSComprehend:Text:detectDominantLanguage detectSentiment detectEntities", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "4db01d0f-ffb0-4ced-be9a-8e80eddc20d4" + }, + { + "parameters": { + "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database." + }, + "name": "AWS Comprehend", + "type": "n8n-nodes-base.awsComprehend", + "typeVersion": 1, + "position": [450, 200], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "dbc6fd62-d8c6-44e7-aed9-6f8f28e609db" + }, + { + "parameters": { + "operation": "detectSentiment", + "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database." + }, + "name": "AWS Comprehend1", + "type": "n8n-nodes-base.awsComprehend", + "typeVersion": 1, + "position": [450, 380], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "5ba9b2b0-0534-44d9-bdb5-3f45cd4964d9" + }, + { + "parameters": { + "operation": "detectEntities", + "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database.", + "additionalFields": {} + }, + "name": "AWS Comprehend2", + "type": "n8n-nodes-base.awsComprehend", + "typeVersion": 1, + "position": [450, 550], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "c744db52-65cc-4e4a-811b-69b2ec328352" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "AWS Comprehend", + "type": "main", + "index": 0 + }, + { + "node": "AWS Comprehend1", + "type": "main", + "index": 0 + }, + { + "node": "AWS Comprehend2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/153.json b/packages/testing/playwright/test-workflows/workflows/153.json new file mode 100644 index 0000000000..d5c5060fe6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/153.json @@ -0,0 +1,75 @@ +{ + "createdAt": "2021-03-25T09:44:00.500Z", + "updatedAt": "2021-03-25T09:44:00.500Z", + "id": "153", + "name": "AWSLambda:invoke", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0e6c4d13-c106-4581-890c-ff9d76f686b5" + }, + { + "parameters": { + "function": "arn:aws:lambda:us-east-1:589875339869:function:test-helloworld" + }, + "name": "AWS Lambda", + "type": "n8n-nodes-base.awsLambda", + "typeVersion": 1, + "position": [450, 200], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "2f7188cc-0b10-48aa-93a7-68814c18cdcb" + }, + { + "parameters": { + "function": "arn:aws:lambda:us-east-1:589875339869:function:test-helloworld", + "payload": "{\n \"name\": \"nodeqa\"\n}" + }, + "name": "AWS Lambda1", + "type": "n8n-nodes-base.awsLambda", + "typeVersion": 1, + "position": [450, 360], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "798f32bd-9032-4fad-9b3f-5cd4fb35fdb2" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "AWS Lambda", + "type": "main", + "index": 0 + }, + { + "node": "AWS Lambda1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/154.json b/packages/testing/playwright/test-workflows/workflows/154.json new file mode 100644 index 0000000000..cd338212f0 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/154.json @@ -0,0 +1,76 @@ +{ + "createdAt": "2021-03-25T09:52:50.269Z", + "updatedAt": "2021-03-25T09:52:50.269Z", + "id": "154", + "name": "AWSRekognition:Image:analyze", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b1f09994-6b4a-4979-bfc4-ec27ba3003ff" + }, + { + "parameters": { + "type": "detectText", + "binaryData": true, + "additionalFields": {} + }, + "name": "AWS Rekognition", + "type": "n8n-nodes-base.awsRekognition", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "9dd43252-32fd-469a-9698-7f486fc51bb5" + }, + { + "parameters": { + "functionCode": "item = {\n json:{},\n binary:{\n data: {\n data: 'iVBORw0KGgoAAAANSUhEUgAAAdAAAABqCAMAAAA7pfCVAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAqUExURQAAADhNW/9tWv9tWjhNW/9tWv9tWjhNW6teWv9tWjhNWzhNW/9tWjhNW0y9HhoAAAAMdFJOUwDD4n+KTrBCECcoZqF2YcgAAAnPSURBVHja7Z3ZmqsgDIDLvti+/+tO9wKSBFCsdsjV+U7HavnJQhLwdDqgKCWEUOo05AfECX5+CRcD6sFFfWi+mNoxKr+D8450aOlBxepzXvRQ0kM6T36GhLsxPL/EcxD9NZ6D6PH8J85zED2a6DMlegzSgUScaRFjmA5rcLVQSolEa/lYvBxUQfXLXToxVPSYwqHoJ4p9h4oeRRQczUbGeOQADxjiOmR9OgLdfaQMbsVNVDjmJ0M/Ogbz+9ZU83OFZNxkaHSHzf02ziqagFEVI849Ks68CqoBdI+LyzLJJWzdALoHsbqBZz7q6QfUGsnY5SqMyclvMSpKX0UcsNBg+XnvQO10Z/kRJnszfTuh45maNp5b+lB5yYjsmowKfgk/cKqgRsRWUa5nl7xM2yTEDqajqpFnduL2WIdOF1BkX6slnH0Y3iP50UYHmkemiCB4ZZ79iLr377uPz5FUNFmwaOWKHe48VcTXdzzmcvkCUfFJnKhjJaZjBdWuagJoxBuvNKnthRDTDejTANljhUXiXFnycnD2T5/Xt7hhfMumOz0TLWFYt2ERhwRaX8LUQH+f0x3axHxAzuTj3qkXUD375zpBqGrcqueuF9oafSs0kip1uvebKE0vUhcpqIRCpS4q6t4D4lYMipx41bN4XQbqcyG1yU80NI3M1q18XnZba0ozMPj5EO2SMtKPyfqYp6v001jBG/fqpcrCkVBHN0QxBQudtTqt3xaXWZh1F5vr1m6nEZlR4yVjnq2DgVvCdEsUo5qygovWLBPyWZ+VS0BUrDw/amY+VDeB9m3ypnWjaEgKLnOhObPaN859B3lrbHmFVYD4dmQXUd6rNXo9vdFGiDdQzL92AnoLRW6nR6yfvCm3ZvguP7seUPQRV4zxUaCyN9BOybhyotQuvxWBwi0rxRbKTvKpY4xBBes3ULtEQ41k3aqor6r7ve5u2kIO1cYzx2xB+dLlzW4mog6SPZ/xNElJLD/SE5bgmwPNZSFsUktlJUFxWEhHac5Sy6YeCxgZ8foK5qLyZUZJs+oZ/eoHN8vK0uweC3zmF2ZqpZnSOLMVQJEg2mTLtLMJU1DN0k2hZ24qLCxfxo28XCsyHfsYHlNcOEEWm2auvdHXQROnhOhlPgdncw2qul+Yx7DopFsdHPxUs/ntyjSFo+E50JgMUUI/BA4HZTrOU3kpbIJTtmweMKVlGA8Nua0BKlFnQHRSxFkY/kr4uZgpJ1cSb1eW2EUFzYGO9YQU6FRRCrNgC1Eur5B8mW+uopJ/LEurtAoKMGIFnGuDBV2ZgFQ0mjxiM6BIxZoh+aDUO7GMRYyBWgbfyVcAZdU8A6Icto8aVVEBu0qVL1PGumu3AhpWrNlNiHGOC6J29t8S4hDGLLMbyUVAZdJRaq4iZY6ow6BxrHzMkdBHZDQxWXX07LHwt9/7KZukCxUvC+Oi8Kp8reV2o2l+o5clDwvjxOoy/CKG+c/QbERhr5xVs1y2RhfGSqGg1lOHbllkwqz+59AYpKnWo7XN1HKyyQQR5kRMgCjmDL6qoHMFSlx4uJHUpAEBXs0q24DCG3IV/bvaDBLZU7VNWdUjxpDWXVvTXAYBZdDPiKfMPZTmaDXLNfc/8/oO255AZ8sGhioOHN0wykR7aG60A53w1U/cY0GMcVELratOOmxx8JdBl4ETmi6CeVoCqKlKPZUBZfhqNph9lsyVF21aqM4Pb3KQm0FjWV+UWyhbfLAig9wMlGx98aG5J7yaaHOhONBtDuYzeCgLf1aaksm5OOzTVqCMNNoyuP+/AGoRoNgSQZp5OlwivUZZ3HIhUIv+jORP/L8wubImojRJRDnfJ2pBoOzUAWhJJ5P8zKj/EBT5CqA2A87LS1nELHsAlQUL2SDy+gfLFlYTUcostrhmDS4TfQ+gRT7482gatbllO3MzvUN7SizICqCgWkdIp5qwZy2grOTKSzTyCsNyO9I0EoxOWFbJp/7ObpdAkfJ2uDi1FQuTpUCL1rGfmzhE06Jql8W0VxV8tmFyPgZqygcPzQIESjp9AagsAxrXyCzIE233SoMc4Ds3K581A53KtBpQ630AVVCdWlEFbg74RHiX31YF7magjOjqydtchg75xiY3jUdfbVfJ/iNOrkz4cydh0rsS+8qNWlCWA6ViD7NjoGq2Ve8qJU1isz1hPHOhgCcBZXPdqx1MKLcRUGrw8ia5L9CiZUv0RwVrk3wEoxpWNKVtnMneRl5/XloPoOYLQGVBV5KNHpzefQltP6WngkLstCjGWXq8xk8CnQp2pSaWg8oHgYk6cioITKthoIKvkIxYAvSyI5NbUlBNfbtq3axEEM1ZanolCp/UWZUCXhQUmf0EReRDhdF3UbEL83Uo0SwxEij2lTVEW4BKXBt8PjHYGagkVTRTHYA3LBFjiBx8m58IFFB861QF0UWJhfxFRGKhE1BP9ZllnxoCQ78+F3B49I413uKWy4m2ALVoUXwCRrYz0JPET0iCelJVBqkuOulL15y2QRyaoVsj7lWABmOH9JWlK4jeQD3aAePhDrUUqS7d8JdmhzC3u7gRWPcE6sEGvrB+BnTlVQG15imWTgpLhOiEtk5Z9dwPyLVQVdlz976QOF0TPXhq7kC5bj3BpglovLHlc2XciOKbgHry8cAsP4M6xsOaHvvOy9/Qo+GSBPIjPTTT/1WBXpi8Ss6L3j+b7ptOGNo8Xwj0fiNfAjR5pmTbKXsrtZEV+9u6CXJgVpzhCM4xE7xeRUuBJubQU/v2YP0hgMYPgwKdmejkqdiVOGObnZ5ORMUwGwH6YcervWgjULwtF+366wiUnmdf44kdgIxsX3S8tn2lFShBFDkDUBKrxCVAKaL+9D0BjyhH3auqTeoSQCWiDazugHIcqC8HOiFAT9j2cPbVl+GWvESAo+sdvQJQjwyehbYTMjSBJE+0LUCBYs90gk61+aq5LaoFAHGPq4xzCaCxOsxwy5IDgcqA+mKg+DOd4h3hn4j4+++qpuuoFg+PS27i2VMg9+Ile0vGjiSDBx3DdrPezy+BFOV2JN3sYfKPhz/TaX6UmDSnPQivt7iNJ+0uEvMkIaXxp92In6R8PNW0m6ei3KgmgqnxLt+9idUD6I+JGEB/TLBXNlM+1I7hOxhStzzKHfINpJoX7zY88PtS/5U49T6bTKOdJny8Pf1wbLGwSJxHTHQ40TBRdR4W94AuFew3FJvuFR6ylvB8q5ni2+7mH9JFRe8vCbiK4N1euzNkUxVd2Jg7ZGeBbuf3EA75htHt+p6zIVsvXb5zBNmQDYkOB3pAEcPe/pofhd42PHK4BxUrCt8rOeQwyxfdtFV1yI61NKyVajG08yf0VCkhlBowy+UP8oj4tnqDbLEAAAAASUVORK5CYII=', // Base64 encoded binary data (required)\n mimeType: 'image/png',\n fileExtension: 'png',\n fileName: 'n8n-logo.png',\n }\n }\n}\n\nreturn [item];" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [500, 300], + "id": "1d29136d-934f-4913-bd1c-d34a2881c9c8" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "AWS Rekognition", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/155.json b/packages/testing/playwright/test-workflows/workflows/155.json new file mode 100644 index 0000000000..4dfd75fd4b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/155.json @@ -0,0 +1,462 @@ +{ + "createdAt": "2021-03-25T10:06:21.916Z", + "updatedAt": "2023-03-16T11:39:51.000Z", + "id": "155", + "name": "AWSS3:Bucket:create getAll search:File:upload getAll download delete:Folder:create getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d1457491-53e0-46a5-b33d-f950be72cd4d" + }, + { + "parameters": { + "resource": "bucket", + "name": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "additionalFields": {} + }, + "name": "AWS S3", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [600, 300], + "id": "07bca9de-36b9-4dcb-b61e-7fe54ac44273", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "bucketName", + "value": "=Bucket{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "cc6144f2-31e2-47ff-bcb3-92d1c61d07fe" + }, + { + "parameters": { + "resource": "bucket", + "operation": "getAll", + "limit": 1 + }, + "name": "AWS S", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [750, 300], + "id": "d500a6b2-04ba-4786-bd4e-ab0432456caa", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "resource": "bucket", + "operation": "search", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "limit": 1, + "additionalFields": {} + }, + "name": "AWS S1", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1650, 310], + "id": "ae1381cd-181d-41d4-a058-a276b9a860bc", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "operation": "upload", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "fileName": "n8n-logo.png", + "additionalFields": {} + }, + "name": "AWS S2", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1050, 400], + "id": "1ae1e324-2cbd-460b-ae07-45d76283b3de", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "functionCode": "item = {\n json:{},\n binary:{\n data: {\n data: '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', // Base64 encoded binary data (required)\n mimeType: 'image/png',\n fileExtension: 'png',\n fileName: 'n8n-logo.png',\n }\n }\n}\n\nreturn [item];" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [900, 400], + "id": "07cbc362-2f04-49d7-bfe7-f6dc1449e633" + }, + { + "parameters": { + "operation": "getAll", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "limit": 1, + "options": {} + }, + "name": "AWS S4", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1200, 400], + "id": "6409d30f-f301-4455-915f-dca4ba380abd", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "fileKey": "n8n-logo.png" + }, + "name": "AWS S5", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1350, 400], + "id": "c92b350b-d8ca-434a-8c46-8f2af62100f4", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "operation": "copy", + "sourcePath": "={{$node[\"Set\"].json[\"bucketName\"]}}/n8n-logo.png", + "destinationPath": "={{$node[\"Set\"].json[\"bucketName\"]}}/copied-n8n-logo.png", + "additionalFields": {} + }, + "name": "AWS S6", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1500, 400], + "id": "f2d2014a-1b8a-4d40-88ea-c4033cc9cfcb", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "disabled": true + }, + { + "parameters": { + "operation": "delete", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "fileKey": "n8n-logo.png", + "options": {} + }, + "name": "AWS S7", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1800, 400], + "id": "844d7a3e-3e56-4111-9667-f985f4ef3cfc", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "folderName": "={{$node[\"Set1\"].json[\"folderName\"]}}", + "additionalFields": {} + }, + "name": "AWS S8", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [900, 150], + "id": "2ede20ee-72aa-431a-bea6-b5831f4df5ae", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "getAll", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "limit": 1, + "options": {} + }, + "name": "AWS S9", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1050, 150], + "id": "6ec127d1-bb69-4d7d-9fcf-1ff928ae6b32", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", + "folderKey": "={{$node[\"Set1\"].json[\"folderName\"]}}" + }, + "name": "AWS S10", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1200, 150], + "id": "2697e526-d402-4d6b-8e87-6bd52cc39183", + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "folderName", + "value": "=Folder{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [750, 150], + "id": "a2c96217-5106-46a3-bbf9-ed8fb0062592" + }, + { + "parameters": { + "resource": "bucket", + "operation": "delete", + "name": "={{$node[\"Set\"].json[\"bucketName\"]}}" + }, + "id": "afab353f-4e1a-437b-9351-1fd786ededcc", + "name": "AWS S31", + "type": "n8n-nodes-base.awsS3", + "typeVersion": 1, + "position": [1980, 400], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + } + ], + "connections": { + "AWS S3": { + "main": [ + [ + { + "node": "AWS S", + "type": "main", + "index": 0 + }, + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "AWS S3", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "AWS S2", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S2": { + "main": [ + [ + { + "node": "AWS S4", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S4": { + "main": [ + [ + { + "node": "AWS S5", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S5": { + "main": [ + [ + { + "node": "AWS S6", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S6": { + "main": [ + [ + { + "node": "AWS S1", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S1": { + "main": [ + [ + { + "node": "AWS S7", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S8": { + "main": [ + [ + { + "node": "AWS S9", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S9": { + "main": [ + [ + { + "node": "AWS S10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "AWS S8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS S10": { + "main": [[]] + }, + "AWS S7": { + "main": [ + [ + { + "node": "AWS S31", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": {}, + "versionId": "75e8472d-f6c4-41de-9cc8-021c88f2e070", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/156.json b/packages/testing/playwright/test-workflows/workflows/156.json new file mode 100644 index 0000000000..685c8c9d1a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/156.json @@ -0,0 +1,55 @@ +{ + "createdAt": "2021-03-25T10:56:20.715Z", + "updatedAt": "2021-03-25T10:56:20.715Z", + "id": "156", + "name": "AWSSNS:publish", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b5a64e20-a0a9-4ed0-8eb2-f648f8f12789" + }, + { + "parameters": { + "topic": "arn:aws:sns:us-east-1:589875339869:TestingTopic", + "subject": "=Subject{{Date.now()}}", + "message": "=Message{{Date.now()}}" + }, + "name": "AWS SNS", + "type": "n8n-nodes-base.awsSns", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "f57aef0c-0bb4-4e26-b9c2-89df3c72675c" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "AWS SNS", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/157.json b/packages/testing/playwright/test-workflows/workflows/157.json new file mode 100644 index 0000000000..95e034f9c0 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/157.json @@ -0,0 +1,446 @@ +{ + "createdAt": "2021-03-25T14:16:35.634Z", + "updatedAt": "2021-03-25T14:30:21.247Z", + "id": "157", + "name": "AWSSES:Template:create geAll get update delete:Email:sendTemplate send:CustomVerificationEmail:create get getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b45b0b50-c25f-4e41-9d82-f0c06af9777a" + }, + { + "parameters": { + "resource": "template", + "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", + "subjectPart": "=Subject{{Date.now()}}", + "additionalFields": { + "textPart": "=Email body example {{Date.now()}}" + } + }, + "name": "AWS SES", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "3bacb945-31c3-4889-ae64-e956c40c4830" + }, + { + "parameters": { + "resource": "template", + "operation": "getAll", + "limit": 1 + }, + "name": "AWS SES1", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "8dd0d2de-eeac-49e4-ab06-04d56d09972e" + }, + { + "parameters": { + "resource": "template", + "operation": "get", + "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}" + }, + "name": "AWS SES2", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "ab6f7068-8997-473c-a58c-59f881694dc3" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "templateName", + "value": "=Template{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 300], + "id": "d8d7bba3-dc23-493e-8f26-781a66685439" + }, + { + "parameters": { + "resource": "template", + "operation": "update", + "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", + "updateFields": { + "subjectPart": "={{$node[\"AWS SES2\"].json[\"GetTemplateResult\"][\"Template\"][\"SubjectPart\"]}}", + "htmlPart": "=Updated{{$node[\"AWS SES2\"].json[\"GetTemplateResult\"][\"Template\"][\"TextPart\"]}}" + } + }, + "name": "AWS SES3", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "f807da32-fd62-46b0-9204-2667437bc3ee" + }, + { + "parameters": { + "resource": "template", + "operation": "delete", + "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}" + }, + "name": "AWS SES4", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1500, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "913d5637-d449-42dc-b4b9-ccc6dcb92bde" + }, + { + "parameters": { + "operation": "sendTemplate", + "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", + "fromEmail": "node8qa@gmail.com", + "toAddresses": ["node8qa@gmail.com"], + "templateDataUi": { + "templateDataValues": [] + }, + "additionalFields": {} + }, + "name": "AWS SES5", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1200, 450], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "6681aed4-834c-480c-b712-3fac85484bae" + }, + { + "parameters": { + "subject": "=AWS email {{Date.now()}}", + "body": "=Testing AWS SES node {{Date.now()}}", + "fromEmail": "node8qa@gmail.com", + "toAddresses": ["node8qa@gmail.com"], + "additionalFields": {} + }, + "name": "AWS SES6", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1350, 450], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "00af365e-6cc7-4006-acdf-6357a1fc80d2" + }, + { + "parameters": { + "resource": "customVerificationEmail", + "fromEmailAddress": "node8qa@gmail.com", + "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}", + "templateSubject": "=VerificationSubject{{Date.now()}}", + "successRedirectionURL": "http://n8n.io", + "failureRedirectionURL": "http://n8n.io" + }, + "name": "AWS SES7", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [600, 100], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "844157e9-3159-4ba1-9a6d-0d9a88622cb7" + }, + { + "parameters": { + "resource": "customVerificationEmail", + "operation": "get", + "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}" + }, + "name": "AWS SES8", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [800, 100], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "a43d3806-6471-4db1-ac5b-ebf3f85198ca" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "templateName", + "value": "=VerificationTemplate{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 100], + "id": "4c2fa60b-186d-49bc-8c1c-125c25553acb" + }, + { + "parameters": { + "resource": "customVerificationEmail", + "operation": "getAll", + "limit": 1 + }, + "name": "AWS SES9", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1000, 100], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "cfcaa069-6215-4adf-81cf-20a8d7d4da49" + }, + { + "parameters": { + "resource": "customVerificationEmail", + "operation": "update", + "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}", + "updateFields": { + "failureRedirectionURL": "https://community.n8n.io/" + } + }, + "name": "AWS SES10", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1200, 100], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "42712f43-3c40-48db-b031-f370b75efae6" + }, + { + "parameters": { + "resource": "customVerificationEmail", + "operation": "delete", + "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}" + }, + "name": "AWS SES11", + "type": "n8n-nodes-base.awsSes", + "typeVersion": 1, + "position": [1400, 100], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "ec9b73d3-c23c-4f14-9e2e-2c55910d508f" + } + ], + "connections": { + "AWS SES": { + "main": [ + [ + { + "node": "AWS SES1", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES1": { + "main": [ + [ + { + "node": "AWS SES2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "AWS SES", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES2": { + "main": [ + [ + { + "node": "AWS SES3", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES3": { + "main": [ + [ + { + "node": "AWS SES5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES5": { + "main": [ + [ + { + "node": "AWS SES6", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES6": { + "main": [ + [ + { + "node": "AWS SES4", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES7": { + "main": [ + [ + { + "node": "AWS SES8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "AWS SES7", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES8": { + "main": [ + [ + { + "node": "AWS SES9", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES9": { + "main": [ + [ + { + "node": "AWS SES10", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS SES10": { + "main": [ + [ + { + "node": "AWS SES11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/158.json b/packages/testing/playwright/test-workflows/workflows/158.json new file mode 100644 index 0000000000..c125b3fc5a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/158.json @@ -0,0 +1,236 @@ +{ + "createdAt": "2021-03-25T15:40:17.167Z", + "updatedAt": "2021-03-25T15:40:17.167Z", + "id": "158", + "name": "MicrosoftSQL:insert update executeQuery", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "07cfaafd-88a2-4563-9c2d-7ecfacc4a008" + }, + { + "parameters": { + "table": "TestTable", + "columns": "id,content" + }, + "name": "Microsoft SQL", + "type": "n8n-nodes-base.microsoftSql", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "microsoftSql": { + "id": "98", + "name": "Microsoft SQL" + } + }, + "id": "e854f1b2-572c-4697-8597-aaa1cbfb06cb" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "content", + "value": "=Content{{(new Date()).toISOString()}}" + } + ], + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*10000)}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "59f67b24-0711-4944-aec9-b3470e58ef3a" + }, + { + "parameters": { + "operation": "update", + "table": "TestTable", + "columns": "id,content" + }, + "name": "Microsoft SQL1", + "type": "n8n-nodes-base.microsoftSql", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "microsoftSql": { + "id": "98", + "name": "Microsoft SQL" + } + }, + "id": "7dd65584-a631-4365-aa97-d1eac48055dd" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "content", + "value": "=UpdatedContent{{(new Date()).toISOString()}}" + } + ], + "number": [] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [700, 300], + "id": "a7177030-713f-456c-97d8-2d1eeeabacd8" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "=SELECT * FROM TestTable WHERE id={{$node[\"Set\"].json[\"id\"]}};" + }, + "name": "Microsoft SQL2", + "type": "n8n-nodes-base.microsoftSql", + "typeVersion": 1, + "position": [1000, 300], + "notesInFlow": true, + "credentials": { + "microsoftSql": { + "id": "98", + "name": "Microsoft SQL" + } + }, + "notes": "Execute Query (SELECT one)", + "id": "66a5e1da-49ef-4b2a-a505-6d42985c72d3" + }, + { + "parameters": { + "operation": "delete", + "table": "TestTable" + }, + "name": "Microsoft SQL3", + "type": "n8n-nodes-base.microsoftSql", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "microsoftSql": { + "id": "98", + "name": "Microsoft SQL" + } + }, + "id": "43594a06-313c-40f6-b454-7bf217d8dfb8" + }, + { + "parameters": { + "operation": "executeQuery", + "query": "SELECT * FROM TestTable;" + }, + "name": "Microsoft SQL4", + "type": "n8n-nodes-base.microsoftSql", + "typeVersion": 1, + "position": [1300, 300], + "notesInFlow": true, + "credentials": { + "microsoftSql": { + "id": "98", + "name": "Microsoft SQL" + } + }, + "notes": "Execute Query (SELECT All)", + "id": "5c833fc6-917e-445b-b4bc-d7d2090c9e1a" + } + ], + "connections": { + "Microsoft SQL": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Microsoft SQL", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Microsoft SQL1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft SQL1": { + "main": [ + [ + { + "node": "Microsoft SQL2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft SQL2": { + "main": [ + [ + { + "node": "Microsoft SQL3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft SQL3": { + "main": [ + [ + { + "node": "Microsoft SQL4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/159.json b/packages/testing/playwright/test-workflows/workflows/159.json new file mode 100644 index 0000000000..1ae08be09d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/159.json @@ -0,0 +1,415 @@ +{ + "createdAt": "2021-03-25T16:19:55.787Z", + "updatedAt": "2021-03-25T16:30:10.075Z", + "id": "159", + "name": "Tapfiliate:Affiliate:create getAll get delete:ProgramAffiliate:add disapprove approve get getAll:AffiliateMetaData:add update remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "35279fb2-20b3-4fb0-b959-7a34dfdd053f" + }, + { + "parameters": { + "email": "=fake{{Date.now()}}@gmail.com", + "firstname": "=Fname{{Date.now()}}", + "lastname": "=Lname{{Date.now()}}", + "additionalFields": {} + }, + "name": "Tapfiliate", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "c69d2f6e-658d-4372-a697-f7e56b1a0f3e" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Tapfiliate1", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "448a390b-2bf9-4676-bb8a-a963a6662117" + }, + { + "parameters": { + "operation": "get", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" + }, + "name": "Tapfiliate2", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "6d5a78c3-8e56-4401-ada4-2de21b0710c6" + }, + { + "parameters": { + "operation": "delete", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" + }, + "name": "Tapfiliate3", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1850, 300], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "b30f84fe-d53f-485a-8362-509e66c19060" + }, + { + "parameters": { + "resource": "affiliateMetadata", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", + "metadataUi": { + "metadataValues": [ + { + "key": "source", + "value": "n8n" + } + ] + } + }, + "name": "Tapfiliate4", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [950, 400], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "a6109eae-d935-48c9-a9aa-b06f15f604c9" + }, + { + "parameters": { + "resource": "affiliateMetadata", + "operation": "update", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", + "key": "source", + "value": "n8n.io" + }, + "name": "Tapfiliate5", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1100, 400], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "0492bf9a-1a4b-4282-8a07-1319fe026e45" + }, + { + "parameters": { + "resource": "affiliateMetadata", + "operation": "remove", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", + "key": "source" + }, + "name": "Tapfiliate6", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "baf74150-4967-4c31-8bbf-602ffdeef566" + }, + { + "parameters": { + "resource": "programAffiliate", + "programId": "nodeqa-affiliate", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Tapfiliate7", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [950, 200], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "c909217e-f419-46b9-83fd-7a3b7c8203dc" + }, + { + "parameters": { + "resource": "programAffiliate", + "operation": "disapprove", + "programId": "nodeqa-affiliate", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" + }, + "name": "Tapfiliate8", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1100, 200], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "9178e7d7-d054-466d-83c3-e99b09705035" + }, + { + "parameters": { + "resource": "programAffiliate", + "operation": "approve", + "programId": "nodeqa-affiliate", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" + }, + "name": "Tapfiliate9", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1250, 200], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "8c873324-9d69-4bc8-97c8-3a3907aff5a2" + }, + { + "parameters": { + "resource": "programAffiliate", + "operation": "get", + "programId": "nodeqa-affiliate", + "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" + }, + "name": "Tapfiliate10", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1400, 200], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "16dc0791-f3b0-4d70-ba91-8f68eaceb7e0" + }, + { + "parameters": { + "resource": "programAffiliate", + "operation": "getAll", + "programId": "nodeqa-affiliate", + "limit": 1, + "filters": {} + }, + "name": "Tapfiliate11", + "type": "n8n-nodes-base.tapfiliate", + "typeVersion": 1, + "position": [1550, 200], + "credentials": { + "tapfiliateApi": { + "id": "125", + "name": "Tapfiliate API creds" + } + }, + "id": "56c57083-92db-4e64-97d8-34fc470147de" + }, + { + "parameters": { + "mode": "wait" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 1, + "position": [1700, 300], + "id": "8465e4b1-c77d-4522-8f59-df64f4582255" + } + ], + "connections": { + "Tapfiliate": { + "main": [ + [ + { + "node": "Tapfiliate1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate1": { + "main": [ + [ + { + "node": "Tapfiliate2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Tapfiliate", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate2": { + "main": [ + [ + { + "node": "Tapfiliate4", + "type": "main", + "index": 0 + }, + { + "node": "Tapfiliate7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate4": { + "main": [ + [ + { + "node": "Tapfiliate5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate5": { + "main": [ + [ + { + "node": "Tapfiliate6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate7": { + "main": [ + [ + { + "node": "Tapfiliate8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate8": { + "main": [ + [ + { + "node": "Tapfiliate9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate9": { + "main": [ + [ + { + "node": "Tapfiliate10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate10": { + "main": [ + [ + { + "node": "Tapfiliate11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate11": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Tapfiliate6": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "Tapfiliate3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/16.json b/packages/testing/playwright/test-workflows/workflows/16.json new file mode 100644 index 0000000000..c251a19a0b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/16.json @@ -0,0 +1,84 @@ +{ + "createdAt": "2021-02-16T12:21:52.835Z", + "updatedAt": "2021-07-15T14:40:02.810Z", + "id": "16", + "name": "OpenWeatherMap:: current-weather 5-day-forecast", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "3af2c46a-cc25-4094-8889-0539e80bbbfb" + }, + { + "parameters": { + "cityName": "berlin", + "language": "en" + }, + "name": "OpenWeatherMap", + "type": "n8n-nodes-base.openWeatherMap", + "typeVersion": 1, + "position": [490, 300], + "credentials": { + "openWeatherMapApi": { + "id": "9", + "name": "openweathermap token" + } + }, + "notes": "IGNORED_PROPERTIES=rain", + "id": "e12fb37d-8207-4219-a3df-20cbd5b9a4d8" + }, + { + "parameters": { + "operation": "5DayForecast", + "cityName": "berlin", + "language": "en" + }, + "name": "OpenWeatherMap1", + "type": "n8n-nodes-base.openWeatherMap", + "typeVersion": 1, + "position": [690, 300], + "credentials": { + "openWeatherMapApi": { + "id": "9", + "name": "openweathermap token" + } + }, + "id": "4923e536-3bc8-4659-b3bc-c15b7cf7352f" + } + ], + "connections": { + "OpenWeatherMap": { + "main": [ + [ + { + "node": "OpenWeatherMap1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "OpenWeatherMap", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/160.json b/packages/testing/playwright/test-workflows/workflows/160.json new file mode 100644 index 0000000000..da8b89a6bb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/160.json @@ -0,0 +1,266 @@ +{ + "createdAt": "2021-03-26T08:52:34.511Z", + "updatedAt": "2021-11-19T13:01:47.053Z", + "id": "160", + "name": "Wordpress:User:getAll get create update:Post:create get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "1a1d54e3-a566-4100-9ce1-3299836fbf11" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Wordpress", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "47be3700-b529-4ea0-b262-9230788cc460" + }, + { + "parameters": { + "resource": "user", + "username": "=username{{Date.now()}}", + "name": "=Name{{Date.now()}}", + "firstName": "=Fname{{Date.now()}}", + "lastName": "=Lname{{Date.now()}}", + "email": "=fake{{Date.now()}}@gmail.com", + "password": "={{new Array(12).fill().map(() => String.fromCharCode(Math.random()*25+66)).join(\"\")}}", + "additionalFields": {} + }, + "name": "Wordpress1", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "3195d3b1-4dad-4470-9707-cefbe4409813" + }, + { + "parameters": { + "resource": "user", + "operation": "get", + "userId": "={{$node[\"Wordpress\"].json[\"id\"]}}", + "options": {} + }, + "name": "Wordpress2", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "e1ef9cce-7248-470b-a827-b4bb27c3ce22" + }, + { + "parameters": { + "resource": "user", + "operation": "update", + "userId": "={{$node[\"Wordpress1\"].json[\"id\"]}}", + "updateFields": { + "slug": "=slug-updated{{$node[\"Wordpress1\"].json[\"slug\"]}}" + } + }, + "name": "Wordpress3", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [900, 150], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "cf5aa95b-d232-493e-9c8a-d35039ac13b4" + }, + { + "parameters": { + "title": "=Title{{Date.now()}}", + "additionalFields": { + "content": "=Post content {{Date.now()}}", + "status": "draft" + } + }, + "name": "Wordpress4", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "3e3bf3c6-e000-4034-9919-6ff705999f1a" + }, + { + "parameters": { + "operation": "get", + "postId": "={{$node[\"Wordpress4\"].json[\"id\"]}}", + "options": {} + }, + "name": "Wordpress5", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "761de321-3bf2-4c4d-9432-ffe80813bda9" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Wordpress6", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "2bf2fd5e-ed32-4964-95dd-2a94e7f0fb4d" + }, + { + "parameters": { + "operation": "update", + "postId": "={{$node[\"Wordpress4\"].json[\"id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Wordpress4\"].json[\"title\"][\"rendered\"]}}" + } + }, + "name": "Wordpress7", + "type": "n8n-nodes-base.wordpress", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "wordpressApi": { + "id": "126", + "name": "Wordpress API creds" + } + }, + "id": "f574c739-2015-4996-ace7-c9d6f7f170ba" + } + ], + "connections": { + "Wordpress": { + "main": [ + [ + { + "node": "Wordpress2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wordpress2": { + "main": [ + [ + { + "node": "Wordpress1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wordpress1": { + "main": [ + [ + { + "node": "Wordpress3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wordpress4": { + "main": [ + [ + { + "node": "Wordpress5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wordpress5": { + "main": [ + [ + { + "node": "Wordpress6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Wordpress", + "type": "main", + "index": 0 + }, + { + "node": "Wordpress4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wordpress6": { + "main": [ + [ + { + "node": "Wordpress7", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/161.json b/packages/testing/playwright/test-workflows/workflows/161.json new file mode 100644 index 0000000000..70589370cd --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/161.json @@ -0,0 +1,56 @@ +{ + "createdAt": "2021-03-29T08:38:31.241Z", + "updatedAt": "2021-03-29T08:39:51.181Z", + "id": "161", + "name": "Vonage:SMS:send", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e945a821-3ba5-4579-966a-2dad40345d27" + }, + { + "parameters": { + "from": "21624827732", + "to": "21624827732", + "message": "=Message{{Date.now()}}", + "additionalFields": {} + }, + "name": "Vonage", + "type": "n8n-nodes-base.vonage", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "vonageApi": { + "id": "128", + "name": "Vonage API creds" + } + }, + "id": "d92003eb-6352-45fe-9e96-7a4b98fdd513" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Vonage", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/162.json b/packages/testing/playwright/test-workflows/workflows/162.json new file mode 100644 index 0000000000..c89f1db38c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/162.json @@ -0,0 +1,101 @@ +{ + "createdAt": "2021-04-06T08:27:12.354Z", + "updatedAt": "2021-04-19T08:16:20.657Z", + "id": "162", + "name": "AWSSQS:sendMessage", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "61c9e1a4-21ab-4146-82ae-4c4388c1da30" + }, + { + "parameters": { + "queue": "https://sqs.us-east-1.amazonaws.com/589875339869/StandardTestQueue", + "sendInputData": false, + "message": "=StandardMessage{{Date.now()}}", + "options": { + "messageAttributes": { + "string": [ + { + "name": "type", + "value": "test" + } + ] + } + } + }, + "name": "AWS SQS", + "type": "n8n-nodes-base.awsSqs", + "typeVersion": 1, + "position": [550, 200], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "0194b047-c629-4f68-a629-12455de6ecf6" + }, + { + "parameters": { + "queue": "https://sqs.us-east-1.amazonaws.com/589875339869/FifoTestQueue.fifo", + "queueType": "fifo", + "sendInputData": false, + "message": "=FIFOMessage{{Date.now()}}", + "messageGroupId": "TestMessageGroupId", + "options": { + "messageAttributes": { + "string": [ + { + "name": "type", + "value": "test" + } + ] + }, + "messageDeduplicationId": "DedupTestMessageGroupId" + } + }, + "name": "AWS SQS1", + "type": "n8n-nodes-base.awsSqs", + "typeVersion": 1, + "position": [550, 380], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "25bc7b70-06c8-4605-8744-f27ab8765761" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "AWS SQS1", + "type": "main", + "index": 0 + }, + { + "node": "AWS SQS", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/163.json b/packages/testing/playwright/test-workflows/workflows/163.json new file mode 100644 index 0000000000..ab3a65b398 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/163.json @@ -0,0 +1,247 @@ +{ + "createdAt": "2021-04-06T10:52:29.924Z", + "updatedAt": "2021-04-06T12:05:26.358Z", + "id": "163", + "name": "GoogleSlides:Presentation:create get getSlides replaceText:Page:get getThumbnail", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "280bf9cc-7749-4adb-972f-17c43e386aa9" + }, + { + "parameters": { + "authentication": "serviceAccount", + "title": "=Slides{{(new Date()).toUTCString()}}" + }, + "name": "Google Slides", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [480, 220], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "4c2f181a-17c4-41d9-aef1-05c8e0641974" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "get", + "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}" + }, + "name": "Google Slides1", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [640, 220], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "1b3d04df-4bab-4b44-b1c3-1ed81e90c7f0" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "getSlides", + "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}" + }, + "name": "Google Slides2", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [800, 220], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "65882408-7d0c-4869-aa45-d454cc9e3c3f" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "replaceText", + "presentationId": "=1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", + "textUi": { + "textValues": [ + { + "pageObjectIds": ["p"], + "replaceText": "n8n", + "text": "Title" + } + ] + }, + "options": { + "revisionId": "" + } + }, + "name": "Google Slides3", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [500, 50], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "81aa81ed-04d3-4204-a583-9b31fda35266" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "page", + "operation": "getThumbnail", + "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}", + "pageObjectId": "p", + "download": true + }, + "name": "Google Slides4", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [640, 390], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "4b42479d-07ed-49ce-9bf6-4c13e7541d89" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "page", + "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}", + "pageObjectId": "p" + }, + "name": "Google Slides5", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [800, 390], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "4525257c-52bd-4520-87eb-b7327b01bccb" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "replaceText", + "presentationId": "=1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", + "textUi": { + "textValues": [ + { + "pageObjectIds": ["p"], + "replaceText": "Title", + "text": "n8n" + } + ] + }, + "options": { + "revisionId": "" + } + }, + "name": "Google Slides6", + "type": "n8n-nodes-base.googleSlides", + "typeVersion": 1, + "position": [650, 50], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "11ef0bd7-e0bf-4779-b21e-4a9f81327119" + } + ], + "connections": { + "Google Slides": { + "main": [ + [ + { + "node": "Google Slides1", + "type": "main", + "index": 0 + }, + { + "node": "Google Slides4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Slides1": { + "main": [ + [ + { + "node": "Google Slides2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Slides2": { + "main": [[]] + }, + "Google Slides4": { + "main": [ + [ + { + "node": "Google Slides5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Slides", + "type": "main", + "index": 0 + }, + { + "node": "Google Slides3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Slides3": { + "main": [ + [ + { + "node": "Google Slides6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/164.json b/packages/testing/playwright/test-workflows/workflows/164.json new file mode 100644 index 0000000000..92a29ceaec --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/164.json @@ -0,0 +1,731 @@ +{ + "createdAt": "2021-04-07T16:05:43.152Z", + "updatedAt": "2021-05-21T11:15:28.503Z", + "id": "164", + "name": "ClickUp:SpaceTag:create getAll update delete:TaskTag:add remove:TaskList:add remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e574628c-4213-42a6-9675-067f8663a712" + }, + { + "parameters": { + "resource": "spaceTag", + "space": "8716115", + "name": "={{$node[\"Set\"].json[\"name\"]}}", + "foregroundColor": "#fff", + "backgroundColor": "#FF6D5A" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "cac9ec08-3ee6-4e13-bf16-97e2f65384f3" + }, + { + "parameters": { + "resource": "spaceTag", + "operation": "getAll", + "space": "8716115", + "returnAll": false, + "limit": 1 + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "c23b91c3-7954-4779-ae69-6ba40d03c207" + }, + { + "parameters": { + "resource": "spaceTag", + "operation": "update", + "space": "8716115", + "name": "={{$node[\"Set\"].json[\"name\"].toLowerCase()}}", + "newName": "={{$node[\"Set1\"].json[\"updatedname\"]}}", + "foregroundColor": "#FF6D5A" + }, + "name": "ClickUp3", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "a242d8e6-7e91-4cf2-a092-677a156e72bd" + }, + { + "parameters": { + "resource": "spaceTag", + "operation": "delete", + "space": "8716115", + "name": "={{$node[\"Set1\"].json[\"updatedname\"].toLowerCase()}}" + }, + "name": "ClickUp4", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1600, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "8c4ab219-84b6-4bd6-8b31-babfd3971f5d" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=SpaceTag{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "52b9c2d4-d0e7-46f7-b62e-0c5e55d50bf4" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "updatedname", + "value": "=UpdatedSpaceTag{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1000, 300], + "id": "6da544fc-4cd1-479a-8692-7ed19d7b2125" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folderless": true, + "name": "=TestList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [400, 450], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "d4cec873-fa7d-46b5-80d8-99c1976cf787" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second", + "type": "n8n-nodes-base.function", + "position": [550, 500], + "typeVersion": 1, + "id": "e4f9c382-78bb-4eb3-b27a-408e5d696cce" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second1", + "type": "n8n-nodes-base.function", + "position": [700, 300], + "typeVersion": 1, + "id": "2dad6f1d-f2e3-48db-8593-e741e04bd5ae" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second2", + "type": "n8n-nodes-base.function", + "position": [1150, 300], + "typeVersion": 1, + "id": "f5f6b488-12be-4c2c-91f0-ff1b6a932a4c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second3", + "type": "n8n-nodes-base.function", + "position": [1450, 300], + "typeVersion": 1, + "id": "29ab4028-3ffd-4b2a-bad6-b1702f2709c2" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folderless": true, + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "name": "=testTask{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp5", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1000, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "8e04926c-2eca-41e2-b48a-bf3b679d4df4" + }, + { + "parameters": { + "resource": "taskList", + "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "listId": "={{$node[\"ClickUp7\"].json[\"id\"]}}" + }, + "name": "ClickUp6", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2050, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "55659b0d-1067-4a18-a849-72ce9bc20e39" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second4", + "type": "n8n-nodes-base.function", + "position": [1150, 500], + "typeVersion": 1, + "id": "94369ca0-c7c9-4b4e-ad64-7f400169ea24" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folderless": true, + "name": "=TestList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [700, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "5d662490-3d98-4427-98c8-308fba1ef216" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "name", + "value": "=TaskTag{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set2", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1300, 600], + "id": "d5d2592b-4e8e-4fef-b151-43a5d0f11d28" + }, + { + "parameters": { + "resource": "taskTag", + "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "tagName": "={{$node[\"Set2\"].json[\"name\"]}}", + "additionalFields": {} + }, + "name": "ClickUp8", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1450, 600], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "61f2fe7f-b3a9-495a-84a3-8c3d7a7865b8" + }, + { + "parameters": { + "resource": "taskTag", + "operation": "remove", + "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "tagName": "={{$node[\"Set2\"].json[\"name\"]}}", + "additionalFields": {} + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1750, 600], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "3a612843-f56e-450e-b570-597adb5c16e1" + }, + { + "parameters": { + "resource": "taskList", + "operation": "remove", + "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "listId": "={{$node[\"ClickUp7\"].json[\"id\"]}}" + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2350, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "419a6bd0-af51-4835-9357-d67592c5ac59" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"ClickUp5\"].json[\"id\"]}}" + }, + "name": "ClickUp11", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2550, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "b3d6e8db-f9b1-4ad5-bb07-67414b83c06e" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folderless": true, + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp12", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2700, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f864bc89-0fbd-4268-94bd-947f4bfbd283" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folderless": true, + "list": "={{$node[\"ClickUp7\"].json[\"id\"]}}" + }, + "name": "ClickUp13", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2850, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "a18e9bc1-c907-49a6-ad91-d06a3d08607a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second5", + "type": "n8n-nodes-base.function", + "position": [850, 500], + "typeVersion": 1, + "id": "88500c7b-e4da-4d5c-aef5-f533b1beca73" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second6", + "type": "n8n-nodes-base.function", + "position": [1600, 600], + "typeVersion": 1, + "id": "a65e5617-7265-44b4-a4f9-0b24e9bc8a63" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second7", + "type": "n8n-nodes-base.function", + "position": [1900, 500], + "typeVersion": 1, + "id": "b1abb9ec-9534-462e-9b87-c2b15d5fdd94" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second8", + "type": "n8n-nodes-base.function", + "position": [2200, 500], + "typeVersion": 1, + "id": "4bcf2ad3-34c5-4061-9c14-eb9033e726fa" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 0.8 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp2": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp3": { + "main": [ + [ + { + "node": "Sleep 0.8 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Sleep 0.8 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 0.8 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second1": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second2": { + "main": [ + [ + { + "node": "ClickUp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second3": { + "main": [ + [ + { + "node": "ClickUp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp5": { + "main": [ + [ + { + "node": "Sleep 0.8 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp6": { + "main": [ + [ + { + "node": "Sleep 0.8 second8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second4": { + "main": [ + [ + { + "node": "Set2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp7": { + "main": [ + [ + { + "node": "Sleep 0.8 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set2": { + "main": [ + [ + { + "node": "ClickUp8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp8": { + "main": [ + [ + { + "node": "Sleep 0.8 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp9": { + "main": [ + [ + { + "node": "Sleep 0.8 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "ClickUp11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp11": { + "main": [ + [ + { + "node": "ClickUp12", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp12": { + "main": [ + [ + { + "node": "ClickUp13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second5": { + "main": [ + [ + { + "node": "ClickUp5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second6": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second7": { + "main": [ + [ + { + "node": "ClickUp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second8": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/165.json b/packages/testing/playwright/test-workflows/workflows/165.json new file mode 100644 index 0000000000..d5ed9e5b4b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/165.json @@ -0,0 +1,237 @@ +{ + "createdAt": "2021-04-09T07:26:51.323Z", + "updatedAt": "2021-05-21T09:03:30.653Z", + "id": "165", + "name": "Emelia:Campaign:create addContact get getAll start pause:ContactList:getAll add", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e0161f99-f352-4391-a04c-4f5f35a5579d" + }, + { + "parameters": { + "operation": "addContact", + "campaignId": "={{$node[\"Emelia3\"].json[\"_id\"]}}", + "contactEmail": "=fake{{Date.now()}}@email.com", + "additionalFields": {} + }, + "name": "Emelia", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [590, 150], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "b01f183f-33bb-4f66-a35b-c3510f25566c" + }, + { + "parameters": { + "campaignId": "={{$node[\"Emelia3\"].json[\"_id\"]}}" + }, + "name": "Emelia1", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "a7748a81-f4c6-4412-81f3-a30433806180" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Emelia2", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "3915812e-9ccc-4106-9617-f8e4a0e86721" + }, + { + "parameters": { + "operation": "create", + "campaignName": "=TestCampaign{{Date.now()}}" + }, + "name": "Emelia3", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "2c3250bc-e6e8-4d96-ba6c-e48b7d4d7029" + }, + { + "parameters": { + "operation": "start", + "campaignId": "6076e11687008a0e9fc32356" + }, + "name": "Emelia4", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "425267c3-ceee-44b8-a225-8b9754df353d" + }, + { + "parameters": { + "operation": "pause", + "campaignId": "6076e11687008a0e9fc32356" + }, + "name": "Emelia5", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "385748b1-d93b-48f9-bcde-3f5dc8bbd72a" + }, + { + "parameters": { + "resource": "contactList", + "operation": "getAll", + "limit": 1 + }, + "name": "Emelia6", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "6026559f-751f-4cc0-9762-6be2c85011a0" + }, + { + "parameters": { + "resource": "contactList", + "operation": "add", + "contactListId": "={{$node[\"Emelia6\"].json[\"_id\"]}}", + "contactEmail": "=fakeContact{{Date.now()}}@email.com", + "additionalFields": {} + }, + "name": "Emelia7", + "type": "n8n-nodes-base.emelia", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "emeliaApi": { + "id": "136", + "name": "Emelia API creds" + } + }, + "id": "9b44146c-54be-48fe-868e-30029a235f7a" + } + ], + "connections": { + "Emelia": { + "main": [ + [ + { + "node": "Emelia1", + "type": "main", + "index": 0 + }, + { + "node": "Emelia2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Emelia3": { + "main": [ + [ + { + "node": "Emelia", + "type": "main", + "index": 0 + } + ] + ] + }, + "Emelia4": { + "main": [ + [ + { + "node": "Emelia5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Emelia6": { + "main": [ + [ + { + "node": "Emelia7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Emelia3", + "type": "main", + "index": 0 + }, + { + "node": "Emelia4", + "type": "main", + "index": 0 + }, + { + "node": "Emelia6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/166.json b/packages/testing/playwright/test-workflows/workflows/166.json new file mode 100644 index 0000000000..f69bab3b9d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/166.json @@ -0,0 +1,472 @@ +{ + "createdAt": "2021-04-09T07:48:03.152Z", + "updatedAt": "2021-04-16T10:57:50.621Z", + "id": "166", + "name": "Intercom:Company:create get getAll update users:Lead:create get getAll update delete:User:create get getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [270, 300], + "id": "64bf3c53-0178-4d4d-9512-03e5d4499dbd" + }, + { + "parameters": { + "resource": "company", + "companyId": "=Company{{Date.now()}}", + "additionalFields": { + "name": "=TestingCompany{{(new Date()).toISOString()}}" + }, + "customAttributesUi": { + "customAttributesValues": [] + } + }, + "name": "Intercom1", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [450, 140], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "58a9b746-7277-4ade-96cd-cbe1d7b043f1" + }, + { + "parameters": { + "resource": "company", + "operation": "get", + "selectBy": "companyId", + "value": "={{$node[\"Intercom1\"].json[\"company_id\"]}}" + }, + "name": "Intercom", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [600, 140], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "6dc0d8fe-d4f2-420b-aa34-dbae9b3720f7" + }, + { + "parameters": { + "resource": "company", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Intercom2", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [750, 140], + "alwaysOutputData": true, + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "ca96c3e9-1a42-4586-a59e-e020ff6bb533" + }, + { + "parameters": { + "resource": "company", + "operation": "update", + "companyId": "={{$node[\"Intercom1\"].json[\"company_id\"]}}", + "additionalFields": { + "name": "=Updated{{$node[\"Intercom\"].json[\"name\"]}}" + } + }, + "name": "Intercom3", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [900, 140], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "10bc6886-98c8-4abd-a43e-955b02228f32" + }, + { + "parameters": { + "resource": "company", + "operation": "users", + "listBy": "companyId", + "value": "={{$node[\"Intercom\"].json[\"company_id\"]}}" + }, + "name": "Intercom4", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [1050, 140], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "b9b67277-92d0-4f4f-ad58-c052bd7fdc1e" + }, + { + "parameters": { + "resource": "lead", + "email": "=fake{{Date.now()}}@email.com", + "additionalFields": { + "avatar": "https://static.intercomassets.com/ember/assets/images/onboarding/home/guide-assistants/phil-978b5567c644d4c0f67a4516c03c6b91.png" + } + }, + "name": "Intercom5", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "ee755a25-9b93-4041-9021-e4f81c3d7c69" + }, + { + "parameters": { + "resource": "lead", + "operation": "get", + "selectBy": "id", + "value": "={{$node[\"Intercom5\"].json[\"id\"]}}" + }, + "name": "Intercom6", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "fceb5905-6512-4c30-b0e8-de1720e7cace" + }, + { + "parameters": { + "resource": "lead", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Intercom7", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [750, 300], + "alwaysOutputData": true, + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "03ace0e9-3abc-4144-ba2a-6a3785887d39" + }, + { + "parameters": { + "resource": "lead", + "operation": "update", + "value": "={{$node[\"Intercom5\"].json[\"id\"]}}", + "additionalFields": { + "name": "=UpdatedLead" + } + }, + "name": "Intercom8", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "0deacb0c-d21c-4f03-85c1-83f6383f3c67" + }, + { + "parameters": { + "resource": "lead", + "operation": "delete", + "deleteBy": "id", + "value": "={{$node[\"Intercom5\"].json[\"id\"]}}" + }, + "name": "Intercom9", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "c4dbf1f2-2c89-4041-b409-64f83643c235" + }, + { + "parameters": { + "identifierType": "userId", + "idValue": "=User{{Date.now()}}", + "additionalFields": {} + }, + "name": "Intercom10", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [450, 440], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "3a93e3d0-b94e-4987-bf80-b272d9315472" + }, + { + "parameters": { + "operation": "get", + "selectBy": "id", + "value": "={{$node[\"Intercom10\"].json[\"id\"]}}" + }, + "name": "Intercom11", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [600, 440], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "7442311e-f761-47fb-8008-b884e434acd8" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Intercom12", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [740, 440], + "alwaysOutputData": true, + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "f82997b8-6501-4e4f-b36f-34571cbb4b84" + }, + { + "parameters": { + "operation": "update", + "value": "={{$node[\"Intercom10\"].json[\"id\"]}}", + "additionalFields": { + "name": "UpdatedUser" + } + }, + "name": "Intercom13", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [900, 440], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "a11ffecd-9647-4a31-846f-687b1f5146fd" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Intercom10\"].json[\"id\"]}}" + }, + "name": "Intercom14", + "type": "n8n-nodes-base.intercom", + "typeVersion": 1, + "position": [1050, 440], + "credentials": { + "intercomApi": { + "id": "137", + "name": "Intercom API creds" + } + }, + "id": "300d5a46-b105-4360-80d6-f60f8f4e8e35" + } + ], + "connections": { + "Intercom1": { + "main": [ + [ + { + "node": "Intercom", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom": { + "main": [ + [ + { + "node": "Intercom2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom2": { + "main": [ + [ + { + "node": "Intercom3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom3": { + "main": [ + [ + { + "node": "Intercom4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom5": { + "main": [ + [ + { + "node": "Intercom6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom6": { + "main": [ + [ + { + "node": "Intercom7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom7": { + "main": [ + [ + { + "node": "Intercom8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom8": { + "main": [ + [ + { + "node": "Intercom9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom10": { + "main": [ + [ + { + "node": "Intercom11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom11": { + "main": [ + [ + { + "node": "Intercom12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom12": { + "main": [ + [ + { + "node": "Intercom13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Intercom13": { + "main": [ + [ + { + "node": "Intercom14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Intercom5", + "type": "main", + "index": 0 + }, + { + "node": "Intercom10", + "type": "main", + "index": 0 + }, + { + "node": "Intercom1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/167.json b/packages/testing/playwright/test-workflows/workflows/167.json new file mode 100644 index 0000000000..f8973896e1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/167.json @@ -0,0 +1,335 @@ +{ + "createdAt": "2021-04-09T18:07:51.949Z", + "updatedAt": "2021-04-09T18:10:34.849Z", + "id": "167", + "name": "FreshDesk:Contact:create get update getAll delete:Ticket:create get getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "30b651f9-2126-4c0c-9574-2c52f2ebddc0" + }, + { + "parameters": { + "resource": "contact", + "name": "=Name{{Date.now()}}", + "email": "=Fake{{Date.now()}}@email.com", + "additionalFields": { + "company_id": 80000582589 + } + }, + "name": "Freshdesk", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "106ad001-92d8-4969-8bbb-44f90f77b2f0" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}" + }, + "name": "Freshdesk1", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "6953c12c-ddce-45c5-89f7-65179a5b8f5a" + }, + { + "parameters": { + "resource": "contact", + "operation": "update", + "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}", + "additionalFields": { + "job_title": "QA", + "tags": ["Test"] + } + }, + "name": "Freshdesk2", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "b31d99f6-5818-458c-98ca-17ba07e85319" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "filters": { + "email": "={{$node[\"Freshdesk1\"].json[\"email\"]}}" + } + }, + "name": "Freshdesk3", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "67a516db-2f2e-4963-a3e2-e1c692c4d271" + }, + { + "parameters": { + "resource": "contact", + "operation": "delete", + "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}" + }, + "name": "Freshdesk4", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1850, 300], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "f1658504-002f-4bd9-9323-87c9923953e2" + }, + { + "parameters": { + "requesterIdentificationValue": "={{$node[\"Freshdesk\"].json[\"id\"]}}", + "priority": "medium", + "options": { + "agent": 80014216011, + "company": 80000582589, + "description": "Testing Workflow", + "group": 80000368389, + "name": "=TicketTest", + "subject": "Testing ticket creation", + "tags": "test,", + "type": "Question" + } + }, + "name": "Freshdesk5", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1100, 400], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "6859ca0a-615c-451e-961f-2293fbd40ae0" + }, + { + "parameters": { + "operation": "get", + "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}" + }, + "name": "Freshdesk6", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "b20c4c3a-7bcb-4c22-995e-c4ce5f920c70" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Freshdesk7", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1400, 400], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "988bd8e4-4b99-4612-b0cf-8e77c652fd4b" + }, + { + "parameters": { + "operation": "update", + "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}", + "updateFields": { + "status": "open", + "tags": "test,updated" + } + }, + "name": "Freshdesk8", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1550, 400], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "421ede3f-463e-4262-b4a3-7f874e0866c1" + }, + { + "parameters": { + "operation": "delete", + "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}" + }, + "name": "Freshdesk9", + "type": "n8n-nodes-base.freshdesk", + "typeVersion": 1, + "position": [1700, 400], + "credentials": { + "freshdeskApi": { + "id": "134", + "name": "Freshdesk API creds" + } + }, + "id": "2a3e7a8e-b5e8-42a4-be76-b97d1c877942" + } + ], + "connections": { + "Freshdesk": { + "main": [ + [ + { + "node": "Freshdesk1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk1": { + "main": [ + [ + { + "node": "Freshdesk2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk2": { + "main": [ + [ + { + "node": "Freshdesk3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk3": { + "main": [ + [ + { + "node": "Freshdesk5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk5": { + "main": [ + [ + { + "node": "Freshdesk6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk6": { + "main": [ + [ + { + "node": "Freshdesk7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk7": { + "main": [ + [ + { + "node": "Freshdesk8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk8": { + "main": [ + [ + { + "node": "Freshdesk9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Freshdesk9": { + "main": [ + [ + { + "node": "Freshdesk4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Freshdesk", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/168.json b/packages/testing/playwright/test-workflows/workflows/168.json new file mode 100644 index 0000000000..214f486979 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/168.json @@ -0,0 +1,138 @@ +{ + "createdAt": "2021-04-13T14:55:34.780Z", + "updatedAt": "2021-05-26T08:10:22.923Z", + "id": "168", + "name": "Demio:Event:getAll get register:Report:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [400, 480], + "id": "47dbd966-77aa-4bda-96ed-e97f6a5981fd" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Demio", + "type": "n8n-nodes-base.demio", + "typeVersion": 1, + "position": [650, 420], + "credentials": { + "demioApi": { + "id": "135", + "name": "Demio API creds" + } + }, + "id": "57e082a8-354b-45a4-942d-11f7227fc3ce" + }, + { + "parameters": { + "eventId": "={{$node[\"Demio\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Demio1", + "type": "n8n-nodes-base.demio", + "typeVersion": 1, + "position": [790, 420], + "credentials": { + "demioApi": { + "id": "135", + "name": "Demio API creds" + } + }, + "id": "1e57d585-0f82-4111-8c63-f5b4e66cef5e" + }, + { + "parameters": { + "operation": "register", + "eventId": "={{$node[\"Demio\"].json[\"id\"]}}", + "firstName": "=Name{{Date.now()}}", + "email": "=Fake{{Date.now()}}@email.com", + "additionalFields": {} + }, + "name": "Demio2", + "type": "n8n-nodes-base.demio", + "typeVersion": 1, + "position": [940, 420], + "credentials": { + "demioApi": { + "id": "135", + "name": "Demio API creds" + } + }, + "id": "517f9682-cda3-406e-bf92-668fcc9feccb" + }, + { + "parameters": { + "resource": "report", + "eventId": 400538, + "dateId": 1967450, + "filters": {} + }, + "name": "Demio3", + "type": "n8n-nodes-base.demio", + "typeVersion": 1, + "position": [650, 570], + "credentials": { + "demioApi": { + "id": "135", + "name": "Demio API creds" + } + }, + "id": "3404303d-775a-4445-9458-a77f408726a7" + } + ], + "connections": { + "Demio": { + "main": [ + [ + { + "node": "Demio1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Demio1": { + "main": [ + [ + { + "node": "Demio2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Demio", + "type": "main", + "index": 0 + }, + { + "node": "Demio3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/169.json b/packages/testing/playwright/test-workflows/workflows/169.json new file mode 100644 index 0000000000..8522025f2b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/169.json @@ -0,0 +1,81 @@ +{ + "createdAt": "2021-04-19T08:59:29.617Z", + "updatedAt": "2021-04-19T08:59:29.617Z", + "id": "169", + "name": "Mocean:SMS:send", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "7f66f905-8236-4fe4-922b-8a7ab6921f26" + }, + { + "parameters": { + "from": "Nodeqa", + "to": "21624827732", + "message": "=SMS-TEST-{{Date.now()}}" + }, + "name": "Mocean", + "type": "n8n-nodes-base.mocean", + "typeVersion": 1, + "position": [500, 200], + "credentials": { + "moceanApi": { + "id": "138", + "name": "Mocean Api creds" + } + }, + "id": "3a8d2f48-5719-466e-95be-21d0c1d84c88" + }, + { + "parameters": { + "resource": "voice", + "from": "Nodeqa", + "to": "21624827732", + "language": "en-GB", + "message": "=SMS{{Date.now()}}" + }, + "name": "Mocean1", + "type": "n8n-nodes-base.mocean", + "typeVersion": 1, + "position": [500, 350], + "credentials": { + "moceanApi": { + "id": "138", + "name": "Mocean Api creds" + } + }, + "disabled": true, + "id": "2b80cb4d-4dda-4b2b-8c7a-05293a2ae063" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Mocean", + "type": "main", + "index": 0 + }, + { + "node": "Mocean1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/17.json b/packages/testing/playwright/test-workflows/workflows/17.json new file mode 100644 index 0000000000..18138dddcd --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/17.json @@ -0,0 +1,50 @@ +{ + "createdAt": "2021-02-16T12:25:56.509Z", + "updatedAt": "2021-02-16T12:26:09.769Z", + "id": "17", + "name": "OpenThesaurus:: Get Synonyms", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d7c16b8e-f8b9-42dc-8c13-b38f754dac42" + }, + { + "parameters": { + "text": "Wasser", + "options": { + "similar": true + } + }, + "name": "OpenThesaurus", + "type": "n8n-nodes-base.openThesaurus", + "typeVersion": 1, + "position": [500, 300], + "id": "54144d68-c88f-447d-8831-72754b58214a" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "OpenThesaurus", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/170.json b/packages/testing/playwright/test-workflows/workflows/170.json new file mode 100644 index 0000000000..758ff509b7 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/170.json @@ -0,0 +1,284 @@ +{ + "createdAt": "2021-04-19T09:55:16.357Z", + "updatedAt": "2021-05-25T13:38:12.376Z", + "id": "170", + "name": "Xero:Contact:create get getAll update:Invoice:create get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "f0c45c75-abab-4369-b823-165926299d4d" + }, + { + "parameters": { + "resource": "contact", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "name": "=Contact{{Date.now()}}", + "additionalFields": { + "firstName": "=FirstName{{Date.now()}}" + } + }, + "name": "Xero", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [500, 200], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "bef8a1fb-6608-4881-843a-3f1a0bf6d0df" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "contactId": "={{$node[\"Xero\"].json[\"ContactID\"]}}" + }, + "name": "Xero1", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [650, 200], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "04550831-0f26-471a-ac9d-4acd8d25e905" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "limit": 1, + "options": { + "orderBy": "UpdatedDateUTC", + "sortOrder": "ASC" + } + }, + "name": "Xero2", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [800, 200], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "db15691c-4eb1-4ada-81c0-deb62b1ad238" + }, + { + "parameters": { + "resource": "contact", + "operation": "update", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "contactId": "={{$node[\"Xero\"].json[\"ContactID\"]}}", + "updateFields": { + "firstName": "=Updated{{$node[\"Xero1\"].json[\"FirstName\"]}}" + } + }, + "name": "Xero3", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [950, 200], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "8ca6dfd8-8429-4ae8-809e-7f2167350cf2" + }, + { + "parameters": { + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "type": "ACCPAY", + "contactId": "={{$node[\"Xero1\"].json[\"ContactID\"]}}", + "lineItemsUi": { + "lineItemsValues": [ + { + "description": "Test", + "quantity": 3, + "unitAmount": "10", + "itemCode": "BOOK", + "accountCode": "300", + "taxType": "INPUT", + "taxAmount": "10" + } + ] + }, + "additionalFields": {} + }, + "name": "Xero4", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [800, 350], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "fd0adcca-b10b-4ae1-9a24-d088339623f7" + }, + { + "parameters": { + "operation": "get", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "invoiceId": "={{$node[\"Xero4\"].json[\"InvoiceID\"]}}" + }, + "name": "Xero5", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "576e9017-aabf-4651-b653-fa13d56de323" + }, + { + "parameters": { + "operation": "getAll", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "limit": 1, + "options": {} + }, + "name": "Xero6", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [1100, 350], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "fe2004ce-131e-448a-90c5-8c326a30b2dd" + }, + { + "parameters": { + "operation": "update", + "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", + "invoiceId": "={{$node[\"Xero4\"].json[\"InvoiceID\"]}}", + "updateFields": { + "dueDate": "2021-04-29T22:00:00.000Z", + "status": "SUBMITTED" + } + }, + "name": "Xero7", + "type": "n8n-nodes-base.xero", + "typeVersion": 1, + "position": [1250, 350], + "credentials": { + "xeroOAuth2Api": { + "id": "139", + "name": "Xero OAuth2 API creds" + } + }, + "id": "1e653ae8-8157-4d05-9dd2-2446a64385d1" + } + ], + "connections": { + "Xero": { + "main": [ + [ + { + "node": "Xero1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Xero1": { + "main": [ + [ + { + "node": "Xero2", + "type": "main", + "index": 0 + }, + { + "node": "Xero4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Xero2": { + "main": [ + [ + { + "node": "Xero3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Xero4": { + "main": [ + [ + { + "node": "Xero5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Xero5": { + "main": [ + [ + { + "node": "Xero6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Xero6": { + "main": [ + [ + { + "node": "Xero7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Xero", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/171.json b/packages/testing/playwright/test-workflows/workflows/171.json new file mode 100644 index 0000000000..f77a51d51f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/171.json @@ -0,0 +1,184 @@ +{ + "createdAt": "2021-04-19T10:15:58.189Z", + "updatedAt": "2021-06-04T14:55:29.008Z", + "id": "171", + "name": "Stackby:append read list delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "570ac713-7639-4d31-aed5-d813b6cb3f32" + }, + { + "parameters": { + "stackId": "stOgji6AOGIluLfusu", + "table": "TestTable", + "columns": "id,name" + }, + "name": "Stackby", + "type": "n8n-nodes-base.stackby", + "typeVersion": 1, + "position": [570, 300], + "credentials": { + "stackbyApi": { + "id": "140", + "name": "Stackby API creds" + } + }, + "id": "c5684dac-5284-4aee-ac91-fbf9cd9f0ee6" + }, + { + "parameters": { + "values": { + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*1000)}}" + } + ], + "string": [ + { + "name": "name", + "value": "=Test{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "31ebc435-4f59-42a7-813d-6d98eb59449e" + }, + { + "parameters": { + "operation": "read", + "stackId": "stOgji6AOGIluLfusu", + "table": "TestTable", + "id": "={{$node[\"Stackby\"].json[\"rowId\"]}}" + }, + "name": "Stackby1", + "type": "n8n-nodes-base.stackby", + "typeVersion": 1, + "position": [720, 300], + "credentials": { + "stackbyApi": { + "id": "140", + "name": "Stackby API creds" + } + }, + "id": "d78e9f09-6930-46d9-919b-80bfaeeac953" + }, + { + "parameters": { + "operation": "list", + "stackId": "stOgji6AOGIluLfusu", + "table": "TestTable", + "additionalFields": { + "view": "" + } + }, + "name": "Stackby2", + "type": "n8n-nodes-base.stackby", + "typeVersion": 1, + "position": [880, 300], + "credentials": { + "stackbyApi": { + "id": "140", + "name": "Stackby API creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "e94a8735-e82b-4388-8020-925e6e549c1b" + }, + { + "parameters": { + "operation": "delete", + "stackId": "stOgji6AOGIluLfusu", + "table": "TestTable", + "id": "={{$node[\"Stackby\"].json[\"rowId\"]}}" + }, + "name": "Stackby3", + "type": "n8n-nodes-base.stackby", + "typeVersion": 1, + "position": [1030, 300], + "executeOnce": true, + "credentials": { + "stackbyApi": { + "id": "140", + "name": "Stackby API creds" + } + }, + "id": "18174a44-9f60-4a2b-9635-1f5f5eb579c7" + } + ], + "connections": { + "Stackby": { + "main": [ + [ + { + "node": "Stackby1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Stackby", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Stackby1": { + "main": [ + [ + { + "node": "Stackby2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Stackby2": { + "main": [ + [ + { + "node": "Stackby3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/172.json b/packages/testing/playwright/test-workflows/workflows/172.json new file mode 100644 index 0000000000..63390bdd83 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/172.json @@ -0,0 +1,151 @@ +{ + "createdAt": "2021-04-19T13:01:49.487Z", + "updatedAt": "2021-06-08T09:29:29.798Z", + "id": "172", + "name": "Paypal:Payout:create get:PayoutItem:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c685e7cb-90e2-42d3-87d4-c8f8143c5a8c" + }, + { + "parameters": { + "senderBatchId": "={{Date.now()}}", + "itemsUi": { + "itemsValues": [ + { + "receiverValue": "sb-0ci8p5941871@business.example.com", + "amount": "20" + } + ] + }, + "additionalFields": {} + }, + "name": "PayPal", + "type": "n8n-nodes-base.payPal", + "typeVersion": 1, + "position": [450, 200], + "credentials": { + "payPalApi": { + "id": "141", + "name": "PayPal API creds" + } + }, + "id": "31bf4a9b-bc38-4b63-9990-4f08db26a285" + }, + { + "parameters": { + "operation": "get", + "payoutBatchId": "={{$node[\"PayPal\"].json[\"batch_header\"][\"payout_batch_id\"]}}", + "limit": 1 + }, + "name": "PayPal1", + "type": "n8n-nodes-base.payPal", + "typeVersion": 1, + "position": [600, 200], + "credentials": { + "payPalApi": { + "id": "141", + "name": "PayPal API creds" + } + }, + "notes": "IGNORED_PROPERTIES=errors", + "id": "d2fdb861-6f84-4ee1-86a4-a5b8c81b0656" + }, + { + "parameters": { + "resource": "payoutItem", + "payoutItemId": "={{$node[\"PayPal1\"].json[\"payout_item_id\"]}}" + }, + "name": "PayPal2", + "type": "n8n-nodes-base.payPal", + "typeVersion": 1, + "position": [750, 250], + "credentials": { + "payPalApi": { + "id": "141", + "name": "PayPal API creds" + } + }, + "notes": "IGNORED_PROPERTIES=errors", + "id": "0ef6ac4c-4aa1-4cb1-a4f7-3feb6a17208e" + }, + { + "parameters": { + "resource": "payoutItem", + "operation": "cancel", + "payoutItemId": "={{$node[\"PayPal1\"].json[\"payout_item_id\"]}}" + }, + "name": "PayPal3", + "type": "n8n-nodes-base.payPal", + "typeVersion": 1, + "position": [900, 250], + "credentials": { + "payPalApi": { + "id": "141", + "name": "PayPal API creds" + } + }, + "disabled": true, + "id": "bec01033-9ce1-4789-9115-7f07991ac6b1" + } + ], + "connections": { + "PayPal": { + "main": [ + [ + { + "node": "PayPal1", + "type": "main", + "index": 0 + } + ] + ] + }, + "PayPal1": { + "main": [ + [ + { + "node": "PayPal2", + "type": "main", + "index": 0 + } + ] + ] + }, + "PayPal2": { + "main": [ + [ + { + "node": "PayPal3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "PayPal", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/173.json b/packages/testing/playwright/test-workflows/workflows/173.json new file mode 100644 index 0000000000..15ad823ae3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/173.json @@ -0,0 +1,200 @@ +{ + "createdAt": "2021-04-19T15:04:14.654Z", + "updatedAt": "2021-04-20T08:10:42.292Z", + "id": "173", + "name": "GetResponse:Contact:create getAll get update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "5651ff0c-3724-4194-8070-66f3737a0762" + }, + { + "parameters": { + "operation": "create", + "email": "=fake{{Date.now()}}@email.com", + "campaignId": "MHDjt", + "additionalFields": { + "name": "=Name{{Date.now()}}" + } + }, + "name": "GetResponse", + "type": "n8n-nodes-base.getResponse", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "getResponseApi": { + "id": "143", + "name": "GetResponse API creds" + } + }, + "id": "a3fa00e2-6539-4066-ac49-a6e2561397a9" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": { + "sortBy": "createdOn", + "sortOrder": "DESC" + } + }, + "name": "GetResponse1", + "type": "n8n-nodes-base.getResponse", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "getResponseApi": { + "id": "143", + "name": "GetResponse API creds" + } + }, + "id": "6abe5d00-d52a-4624-a45b-e7508bdc8cbc" + }, + { + "parameters": { + "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", + "options": {} + }, + "name": "GetResponse2", + "type": "n8n-nodes-base.getResponse", + "typeVersion": 1, + "position": [1100, 300], + "credentials": { + "getResponseApi": { + "id": "143", + "name": "GetResponse API creds" + } + }, + "id": "f6ac6160-9cf1-4f5f-88e9-6c1fee5328bd" + }, + { + "parameters": { + "operation": "update", + "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", + "updateFields": { + "email": "=Updated{{$node[\"GetResponse1\"].json[\"email\"]}}", + "name": "=Updated{{$node[\"GetResponse1\"].json[\"name\"]}}" + } + }, + "name": "GetResponse3", + "type": "n8n-nodes-base.getResponse", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "getResponseApi": { + "id": "143", + "name": "GetResponse API creds" + } + }, + "id": "af223c10-9e82-4e4f-b4a2-fbcb87e3a81f" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", + "options": {} + }, + "name": "GetResponse4", + "type": "n8n-nodes-base.getResponse", + "typeVersion": 1, + "position": [1500, 300], + "credentials": { + "getResponseApi": { + "id": "143", + "name": "GetResponse API creds" + } + }, + "id": "85f302a7-b522-4e38-a88a-07e0705f0711" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 1 second", + "type": "n8n-nodes-base.function", + "position": [700, 300], + "typeVersion": 1, + "id": "994c0e7a-3a6d-4cdd-8fa6-f62d67f15a70" + } + ], + "connections": { + "GetResponse1": { + "main": [ + [ + { + "node": "GetResponse2", + "type": "main", + "index": 0 + } + ] + ] + }, + "GetResponse2": { + "main": [ + [ + { + "node": "GetResponse3", + "type": "main", + "index": 0 + } + ] + ] + }, + "GetResponse3": { + "main": [ + [ + { + "node": "GetResponse4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "GetResponse", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 1 second": { + "main": [ + [ + { + "node": "GetResponse1", + "type": "main", + "index": 0 + } + ] + ] + }, + "GetResponse": { + "main": [ + [ + { + "node": "Sleep 1 second", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/174.json b/packages/testing/playwright/test-workflows/workflows/174.json new file mode 100644 index 0000000000..317bbb43b4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/174.json @@ -0,0 +1,307 @@ +{ + "createdAt": "2021-04-20T08:36:34.927Z", + "updatedAt": "2021-04-20T08:36:34.927Z", + "id": "174", + "name": "Vero:User:create alias addTags removeTags unsubscribe resubscribe delete:Event:track", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b7de37cc-c85a-4eac-beec-1f0c1ea5190a" + }, + { + "parameters": { + "id": "={{$node[\"Set id & email\"].json[\"id\"]}}", + "additionalFields": { + "email": "={{$node[\"Set id & email\"].json[\"email\"]}}" + }, + "dataAttributesUi": { + "dataAttributesValues": [] + } + }, + "name": "Vero", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "d27a15f1-3855-42b0-b3d9-bca97501ed10" + }, + { + "parameters": { + "operation": "alias", + "id": "={{$node[\"Set id & email\"].json[\"id\"]}}", + "newId": "={{$node[\"Set id & email\"].json[\"email\"]}}" + }, + "name": "Vero1", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "ea140d44-f58b-4d57-9ac3-5bf93cddbe93" + }, + { + "parameters": { + "operation": "addTags", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", + "tags": "TEST," + }, + "name": "Vero2", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "903d206c-c3c4-4d20-81b7-a6ea73aeaebf" + }, + { + "parameters": { + "operation": "removeTags", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", + "tags": "TEST," + }, + "name": "Vero3", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "1e426c6f-88d4-4c23-8c01-9ffcca7bed76" + }, + { + "parameters": { + "operation": "unsubscribe", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" + }, + "name": "Vero4", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "a92a41ef-d98b-4ff8-931d-d2488777ecf8" + }, + { + "parameters": { + "operation": "resubscribe", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" + }, + "name": "Vero5", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "629e08e8-9f31-4824-afc1-f09c7fbfdf1a" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" + }, + "name": "Vero6", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [1600, 300], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "5da2dd1f-d40e-490c-bb38-9adaf10ebc92" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "string": [ + { + "name": "email", + "value": "=fake{{Date.now()}}@email.com" + } + ], + "number": [ + { + "name": "id", + "value": "={{Math.round(Math.random()*1000)}}" + } + ] + }, + "options": {} + }, + "name": "Set id & email", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "76d32334-89e0-4fc0-aa81-e56eaeb206c2" + }, + { + "parameters": { + "resource": "event", + "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", + "email": "={{$node[\"Set id & email\"].json[\"email\"]}}", + "eventName": "=Event{{Date.now()}}", + "dataAttributesUi": { + "dataAttributesValues": [ + { + "key": "Type", + "value": "Test" + } + ] + }, + "extraAttributesUi": { + "extraAttributesValues": [] + } + }, + "name": "Vero7", + "type": "n8n-nodes-base.vero", + "typeVersion": 1, + "position": [1450, 400], + "credentials": { + "veroApi": { + "id": "144", + "name": "Vero API creds" + } + }, + "id": "89b0e1de-a2b6-4f67-a63b-1d7dafdba2c2" + } + ], + "connections": { + "Vero1": { + "main": [ + [ + { + "node": "Vero2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set id & email", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero": { + "main": [ + [ + { + "node": "Vero1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero2": { + "main": [ + [ + { + "node": "Vero3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero3": { + "main": [ + [ + { + "node": "Vero4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero4": { + "main": [ + [ + { + "node": "Vero5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero5": { + "main": [ + [ + { + "node": "Vero7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set id & email": { + "main": [ + [ + { + "node": "Vero", + "type": "main", + "index": 0 + } + ] + ] + }, + "Vero7": { + "main": [ + [ + { + "node": "Vero6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/176.json b/packages/testing/playwright/test-workflows/workflows/176.json new file mode 100644 index 0000000000..ccbe22fd0f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/176.json @@ -0,0 +1,1084 @@ +{ + "createdAt": "2021-04-20T13:25:03.086Z", + "updatedAt": "2021-04-20T15:03:32.741Z", + "id": "176", + "name": "uProc:Audio:*:company:*;", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d0c17f4b-8961-440e-a16c-c2b24573ded4" + }, + { + "parameters": { + "group": "audio", + "text": "n8n rocks!", + "gender": "female", + "language": "american", + "additionalOptions": {} + }, + "name": "uProc", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [560, 200], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "93760945-e663-434d-929b-bde008a9048d" + }, + { + "parameters": { + "group": "audio", + "tool": "getAudioSpeechByText", + "text": "n8n rocks!", + "gender": "female", + "language": "american", + "additionalOptions": {} + }, + "name": "uProc1", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [740, 200], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "048ecc11-0c05-474f-b05c-758e4ed5debb" + }, + { + "parameters": { + "group": "company", + "tool": "getCifNormalized", + "cif": "B 12345 678", + "additionalOptions": {} + }, + "name": "uProc10", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [560, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a6e61a99-e759-45ce-9564-c07e9edd4ff9" + }, + { + "parameters": { + "group": "company", + "cif": "B 12345 678", + "additionalOptions": {} + }, + "name": "uProc11", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [690, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "3176fdab-d652-4402-883f-eb3b49173235" + }, + { + "parameters": { + "group": "company", + "tool": "checkNumberIsin", + "isin": "US0004026250", + "additionalOptions": {} + }, + "name": "uProc12", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [820, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "e015d1d9-aa1e-49e5-823c-9e6372d316ec" + }, + { + "parameters": { + "group": "company", + "tool": "checkNumberSsEs", + "number": "998239812282", + "additionalOptions": {} + }, + "name": "uProc13", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "90bde607-e419-4547-b8e2-e96a181dd152" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByCif", + "cif": "B 12345 678", + "additionalOptions": {} + }, + "name": "uProc14", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1080, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d4ad8ce2-d306-432d-a6de-a82826964eda" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc15", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1210, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d2852025-5de5-41fa-9f29-d9783cb3ec9d" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByDuns", + "duns": "150483782", + "additionalOptions": {} + }, + "name": "uProc16", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1340, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "88e58d49-0c18-42e4-84bf-d9752cf74fa7" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByEmail", + "email": "hello@n8n.io", + "additionalOptions": {} + }, + "name": "uProc17", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1470, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "74543b06-f296-417a-a9cb-cf5c9aeb8bf4" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc18", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1600, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "6cbbc927-2cef-4688-9824-50e15a2ab433" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByName", + "country": "DE", + "name": "n8n", + "additionalOptions": {} + }, + "name": "uProc19", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1730, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "b9198acf-94fb-4d58-81f6-9713d3588e64" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByPhone", + "phone": "932187670", + "additionalOptions": {} + }, + "name": "uProc20", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1860, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "2862f234-cc12-4df0-b994-26d38ee16414" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyByProfile", + "url": "https://twitter.com/n8n_io", + "additionalOptions": {} + }, + "name": "uProc21", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1990, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "b6c61930-8b49-4c7d-8831-93722da0f894" + }, + { + "parameters": { + "group": "company", + "tool": "getRoleClassified", + "role": "Junior web developer", + "additionalOptions": {} + }, + "name": "uProc22", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2120, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d051cee8-5bca-4c2a-b945-95cbf54a08b4" + }, + { + "parameters": { + "group": "company", + "tool": "checkCompanyDebtorByTaxid", + "taxid": "B12345678", + "additionalOptions": {} + }, + "name": "uProc23", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2250, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "421b79d2-8337-41f9-9f3b-e44d49040cb3" + }, + { + "parameters": { + "group": "company", + "tool": "getPersonDecisionMaker", + "company": "n8n.io", + "area": "Engineering", + "additionalOptions": {} + }, + "name": "uProc24", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2380, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "1e955a1c-eb87-4c24-af10-8f5bfc0728dd" + }, + { + "parameters": { + "group": "company", + "tool": "getPersonDecisionMakerBySearch", + "company": "n8n.io", + "area": "Product", + "clevel": "No", + "additionalOptions": {} + }, + "name": "uProc25", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2510, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d288cae2-b1d9-46e7-a4f2-339fc7a8fab1" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyDomainByName", + "name": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc26", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2640, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "896d6a19-4717-4e1e-9380-b7fa88e05a3b" + }, + { + "parameters": { + "group": "company", + "tool": "getPersonEmailsByDomainAndArea", + "domain": "n8n.io", + "area": "Engineering", + "additionalOptions": {} + }, + "name": "uProc27", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2770, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "c5b64761-444e-4ee1-8289-b3e3805b071d" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyExtendedByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc28", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2900, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "01cb8555-31bc-49ec-82a2-36b24bb48873" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyExtendedByEmail", + "email": "hello@n8n.io", + "additionalOptions": {} + }, + "name": "uProc29", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3030, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a801f605-1677-443b-8c86-fe636414c2ab" + }, + { + "parameters": { + "group": "company", + "tool": "getProfileFacebookByCompany", + "company": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc30", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3160, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a0f7131d-c121-4eb2-b6f5-bf72e3af23c0" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyFinancialByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc31", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3290, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "1b027a55-7122-4a63-8364-9dd7176f9672" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyFinancialByDuns", + "duns": "150483782", + "additionalOptions": {} + }, + "name": "uProc32", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3420, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "b046e6e6-34c2-4b91-ab6b-0f69905f85ce" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyFinancialByName", + "name": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc33", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3550, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a01a0c27-1386-45a7-a86e-8e118bf5d327" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyFinancialByTaxid", + "taxid": "B12345678", + "additionalOptions": {} + }, + "name": "uProc34", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3680, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "60c8d394-358a-47e1-9a2c-dd11553737a0" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyGeocodedByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc35", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3810, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a4efe1ed-b5da-4185-99e0-840da0544e4f" + }, + { + "parameters": { + "group": "company", + "tool": "getProfileLinkedinByCompany", + "company": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc36", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3940, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ad662983-c0b8-4650-9577-dd23ac9b3db7" + }, + { + "parameters": { + "group": "company", + "tool": "getPersonListByParams", + "country": "DE", + "phone": "932187670", + "email": "hello@n8n.io", + "company": "n8n.io", + "area": "Information technology", + "seniority": "Intermediate", + "additionalOptions": {} + }, + "name": "uProc37", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4070, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "aaaa41b2-d90e-4cb4-8083-87cd7bdcaf69" + }, + { + "parameters": { + "group": "company", + "tool": "getPersonMultipleDecisionMakerBySearch", + "company": "n8n.io", + "area": "Information technology", + "clevel": "No", + "additionalOptions": {} + }, + "name": "uProc38", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4200, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ba76171b-5070-4938-9e9d-923121f1c45a" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyNameByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc39", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4330, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d76f3d0a-9a82-4d93-a783-8f793c412c94" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyPhoneByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc40", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4460, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "f53778bf-935f-4f49-9281-552993ae1429" + }, + { + "parameters": { + "group": "company", + "tool": "getCompanyPhoneByName", + "name": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc41", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4590, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ab0ec7c3-397d-44de-b082-33e244ba1272" + }, + { + "parameters": { + "group": "company", + "tool": "getProfileTwitterByCompany", + "company": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc42", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [4720, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "bbe5a143-20db-49b7-a9ac-8600a895b74d" + } + ], + "connections": { + "uProc": { + "main": [ + [ + { + "node": "uProc1", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc10": { + "main": [ + [ + { + "node": "uProc11", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc11": { + "main": [ + [ + { + "node": "uProc12", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc12": { + "main": [ + [ + { + "node": "uProc13", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc13": { + "main": [ + [ + { + "node": "uProc14", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc14": { + "main": [ + [ + { + "node": "uProc15", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc15": { + "main": [ + [ + { + "node": "uProc16", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc16": { + "main": [ + [ + { + "node": "uProc17", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc17": { + "main": [ + [ + { + "node": "uProc18", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc18": { + "main": [ + [ + { + "node": "uProc19", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc19": { + "main": [ + [ + { + "node": "uProc20", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc20": { + "main": [ + [ + { + "node": "uProc21", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc21": { + "main": [ + [ + { + "node": "uProc22", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc22": { + "main": [ + [ + { + "node": "uProc23", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc23": { + "main": [ + [ + { + "node": "uProc24", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc24": { + "main": [ + [ + { + "node": "uProc25", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc25": { + "main": [ + [ + { + "node": "uProc26", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc26": { + "main": [ + [ + { + "node": "uProc27", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc27": { + "main": [ + [ + { + "node": "uProc28", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc28": { + "main": [ + [ + { + "node": "uProc29", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc29": { + "main": [ + [ + { + "node": "uProc30", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc30": { + "main": [ + [ + { + "node": "uProc31", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc31": { + "main": [ + [ + { + "node": "uProc32", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc32": { + "main": [ + [ + { + "node": "uProc33", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc33": { + "main": [ + [ + { + "node": "uProc34", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc34": { + "main": [ + [ + { + "node": "uProc35", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc35": { + "main": [ + [ + { + "node": "uProc36", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc36": { + "main": [ + [ + { + "node": "uProc37", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc37": { + "main": [ + [ + { + "node": "uProc38", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc38": { + "main": [ + [ + { + "node": "uProc39", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc39": { + "main": [ + [ + { + "node": "uProc40", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc40": { + "main": [ + [ + { + "node": "uProc41", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc41": { + "main": [ + [ + { + "node": "uProc42", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "uProc", + "type": "main", + "index": 0 + }, + { + "node": "uProc10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/177.json b/packages/testing/playwright/test-workflows/workflows/177.json new file mode 100644 index 0000000000..2ff98e738e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/177.json @@ -0,0 +1,750 @@ +{ + "createdAt": "2021-04-20T15:07:09.205Z", + "updatedAt": "2021-04-20T15:15:49.518Z", + "id": "177", + "name": "uProc:Finance:*;", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "6b5f7fea-a0f3-445b-8366-b6631683411e" + }, + { + "parameters": { + "group": "finance", + "tool": "checkCreditcardChecksum", + "credit_card": "5564456122310619", + "additionalOptions": {} + }, + "name": "uProc1", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [510, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "74ad2ff7-afc0-4327-9fad-600cb2675d92" + }, + { + "parameters": { + "group": "finance", + "tool": "getCreditcardType", + "credit_card": "5564456122310619", + "additionalOptions": {} + }, + "name": "uProc2", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [640, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "47cd053a-0375-4e02-944e-57ca74d30b3a" + }, + { + "parameters": { + "group": "finance", + "tool": "checkBankAccountValidEs", + "account": "5564456122310619", + "additionalOptions": {} + }, + "name": "uProc3", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [770, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "25a3db7b-f396-4cc4-bb1c-2d95c72a3e70" + }, + { + "parameters": { + "group": "finance", + "bic": "AYGBESMM", + "additionalOptions": {} + }, + "name": "uProc4", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [900, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a96d6b7d-de57-4b0f-9451-da49bcad0023" + }, + { + "parameters": { + "group": "finance", + "tool": "getBankIbanByAccount", + "account": "9121000418450200051332M", + "isocode": "ES", + "additionalOptions": {} + }, + "name": "uProc5", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1030, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "48f91455-d72d-404f-8edb-a3113272a656" + }, + { + "parameters": { + "group": "finance", + "tool": "getBankIbanLookup", + "iban": "ES9121000418450200051332M", + "additionalOptions": {} + }, + "name": "uProc6", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1160, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "2926e714-090d-4605-ad8a-a3fc6299d953" + }, + { + "parameters": { + "group": "finance", + "tool": "checkBankIbanValid", + "iban": "ES9121000418450200051332M", + "additionalOptions": {} + }, + "name": "uProc7", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1290, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "851c69bb-ca48-4be7-a536-00de1d6e1705" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyByCountry", + "country": "ES", + "additionalOptions": {} + }, + "name": "uProc8", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1420, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "0783831e-2de6-429b-8b65-0a891c43c524" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyByCountryIsocode", + "country_code": "ES", + "additionalOptions": {} + }, + "name": "uProc9", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1550, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "b34da6a8-3825-4d75-bb7f-33f2777bd05e" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc10", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1680, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a6d4a2b4-16bc-44d6-8f62-289fe44e3150" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyByIsocode", + "isocode": "ES", + "additionalOptions": {} + }, + "name": "uProc11", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1810, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "df8e1a41-aee5-45b2-96ce-743a871263e9" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyConvertedBetweenIsocodeDate", + "date": "104.21.37.3", + "amount": "10", + "isocode1": "EUR", + "isocode2": "JPY", + "additionalOptions": {} + }, + "name": "uProc12", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1940, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "1be97cfc-7d88-4308-8fcc-bf089c1a89a9" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyListByCountry", + "additionalOptions": {} + }, + "name": "uProc13", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2070, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "07c56b1c-ec2d-4041-96bb-976c33920f95" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyListByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc14", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2200, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "e8d0f97f-9d56-412c-9a05-0ba48a923a76" + }, + { + "parameters": { + "group": "finance", + "tool": "getCurrencyListByIsocode", + "isocode": "DE", + "additionalOptions": {} + }, + "name": "uProc15", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2330, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "804d201d-919c-4464-8280-49fd0c6126ca" + }, + { + "parameters": { + "group": "finance", + "tool": "checkCurrencyValidIso", + "isocode": "DE", + "additionalOptions": {} + }, + "name": "uProc16", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2460, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "dff16814-7b04-4e4c-82f4-a480686e490e" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByAddress", + "address": "10115, Berlin, Germany", + "additionalOptions": {} + }, + "name": "uProc17", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2590, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "919c88b5-7079-46c4-9c7a-e5c7e29adcce" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByCoordinates", + "coordinates": "52.52986092913615, 13.389315284523297", + "additionalOptions": {} + }, + "name": "uProc18", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2720, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "e93ca526-f829-4793-a05a-9ecab9b45b78" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc19", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2850, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "c90211c8-5e05-4f0b-bd91-fef5d2d51e3a" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByIsocode", + "isocode": "DE", + "additionalOptions": {} + }, + "name": "uProc20", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2980, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "c5be744b-9203-4e74-9626-37afc39a1577" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByNumber", + "isocode": "DE", + "tin": "44016116G", + "additionalOptions": {} + }, + "name": "uProc21", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3110, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "9a011b5c-ef1a-4b51-bb7a-6a2458116342" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByPhone", + "phone": "932187670", + "additionalOptions": {} + }, + "name": "uProc22", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3240, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "094bb0ed-9abf-47e1-8c35-dcb30e1c966a" + }, + { + "parameters": { + "group": "finance", + "tool": "getVatByZipcode", + "zipcode": "10115", + "additionalOptions": {} + }, + "name": "uProc23", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3370, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "644bf7bc-3fdf-4e27-91ea-8bbd7912a79c" + }, + { + "parameters": { + "group": "finance", + "tool": "checkVatExist", + "isocode": "ES", + "tin": "44016116G", + "additionalOptions": {} + }, + "name": "uProc24", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3500, 290], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "8d9a2640-f227-4184-8563-16a2054a5992" + } + ], + "connections": { + "uProc1": { + "main": [ + [ + { + "node": "uProc2", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc2": { + "main": [ + [ + { + "node": "uProc3", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc3": { + "main": [ + [ + { + "node": "uProc4", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc4": { + "main": [ + [ + { + "node": "uProc5", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc5": { + "main": [ + [ + { + "node": "uProc6", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc6": { + "main": [ + [ + { + "node": "uProc7", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc7": { + "main": [ + [ + { + "node": "uProc8", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc8": { + "main": [ + [ + { + "node": "uProc9", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc9": { + "main": [ + [ + { + "node": "uProc10", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc10": { + "main": [ + [ + { + "node": "uProc11", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc11": { + "main": [ + [ + { + "node": "uProc12", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc12": { + "main": [ + [ + { + "node": "uProc13", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc13": { + "main": [ + [ + { + "node": "uProc14", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc14": { + "main": [ + [ + { + "node": "uProc15", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc15": { + "main": [ + [ + { + "node": "uProc16", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc16": { + "main": [ + [ + { + "node": "uProc17", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc17": { + "main": [ + [ + { + "node": "uProc18", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc18": { + "main": [ + [ + { + "node": "uProc19", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc19": { + "main": [ + [ + { + "node": "uProc20", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc20": { + "main": [ + [ + { + "node": "uProc21", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc21": { + "main": [ + [ + { + "node": "uProc22", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc22": { + "main": [ + [ + { + "node": "uProc23", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc23": { + "main": [ + [ + { + "node": "uProc24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "uProc1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/179.json b/packages/testing/playwright/test-workflows/workflows/179.json new file mode 100644 index 0000000000..1aafd64b83 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/179.json @@ -0,0 +1,328 @@ +{ + "createdAt": "2021-04-21T07:53:05.959Z", + "updatedAt": "2021-04-21T07:53:05.959Z", + "id": "179", + "name": "uProc:Image:*:Security:*;", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "ea22a2a9-c7b7-4e4c-b89a-d123c4de7c63" + }, + { + "parameters": { + "group": "security", + "tool": "checkNumberUuid", + "uuid": "0c6a1543-6232-49d2-b50d-c1e70cd015a0", + "additionalOptions": {} + }, + "name": "uProc1", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [450, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "cd9469be-7495-4963-9e72-2946c8c9026b" + }, + { + "parameters": { + "group": "security", + "tool": "getDomainBlacklists", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc2", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [580, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "65d979d4-1b48-4e05-81ec-003ca73360ec" + }, + { + "parameters": { + "group": "security", + "tool": "getIpBlacklists", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc3", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [710, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a93216f3-6d7e-4e8e-808f-2a9781cd54d1" + }, + { + "parameters": { + "group": "security", + "luhn": "79927398713", + "additionalOptions": {} + }, + "name": "uProc4", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [840, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "c850df47-d882-4253-9912-87781ce9cca5" + }, + { + "parameters": { + "group": "security", + "tool": "checkPasswordStrong", + "password": "randompassword", + "additionalOptions": {} + }, + "name": "uProc5", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [970, 350], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "13527442-5599-40a4-aa97-69e88fc71dac" + }, + { + "parameters": { + "group": "image", + "tool": "getBarcodeEncoded", + "text": "n8n rocks!", + "bcid": "auspost", + "additionalOptions": {} + }, + "name": "uProc", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "826bf485-a60a-4835-8290-1259daf44305" + }, + { + "parameters": { + "group": "image", + "tool": "getImageExif", + "url": "https://n8n.io/_nuxt/img/df5be1c.png", + "additionalOptions": {} + }, + "name": "uProc8", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [840, 150], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "dcf2a843-5f5f-4f9f-ba27-1aaa9486dd58" + }, + { + "parameters": { + "group": "image", + "tool": "getImageWithText", + "text": "n8n rocks!", + "url": "https://n8n.io/_nuxt/img/df5be1c.png", + "size": "72", + "additionalOptions": {} + }, + "name": "uProc9", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [970, 150], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "5a42b133-730f-4288-aed9-8ef6ab9f9579" + }, + { + "parameters": { + "group": "image", + "tool": "getDomainLogo", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc10", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [580, 150], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "5a1a3be9-b954-4cab-8adc-a82fa4156780" + }, + { + "parameters": { + "group": "image", + "tool": "getUrlScreenshot", + "url": "n8n.io", + "useragent": "n8n-agent", + "width": "160", + "fullpage": "no", + "additionalOptions": {} + }, + "name": "uProc11", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [710, 150], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "65aa976a-1b8b-4ddf-bab6-f3308221ade0" + } + ], + "connections": { + "uProc1": { + "main": [ + [ + { + "node": "uProc2", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc2": { + "main": [ + [ + { + "node": "uProc3", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc3": { + "main": [ + [ + { + "node": "uProc4", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc4": { + "main": [ + [ + { + "node": "uProc5", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc": { + "main": [ + [ + { + "node": "uProc10", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc8": { + "main": [ + [ + { + "node": "uProc9", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc9": { + "main": [[]] + }, + "uProc10": { + "main": [ + [ + { + "node": "uProc11", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc11": { + "main": [ + [ + { + "node": "uProc8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "uProc", + "type": "main", + "index": 0 + }, + { + "node": "uProc1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/180.json b/packages/testing/playwright/test-workflows/workflows/180.json new file mode 100644 index 0000000000..5e3f1d23fa --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/180.json @@ -0,0 +1,1228 @@ +{ + "createdAt": "2021-04-21T08:02:44.895Z", + "updatedAt": "2021-04-21T08:23:47.669Z", + "id": "180", + "name": "uProc:Internet:*;", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "471ee767-0f84-4092-8848-b32bfa27c904" + }, + { + "parameters": { + "group": "internet", + "tool": "getDeviceByUa", + "useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "additionalOptions": {} + }, + "name": "uProc1", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [420, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "225c9e0c-c8df-4a5c-99c1-ab87c07c5747" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlByDomain", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc2", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "d05ce8e6-52bc-4cdf-8ca9-8e736dab51e7" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainByIp", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc3", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [680, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ec459164-9037-4974-86db-51572db34457" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainByUrl", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc4", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [810, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "de574cfe-b7b8-4d7e-bf9d-874994cd72a1" + }, + { + "parameters": { + "group": "internet", + "tool": "checkDomainCertificate", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc5", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [940, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "6a965548-4b41-4ec7-a171-b808fa56f874" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainCertificate", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc6", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1070, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "8c1aa668-7b5d-43cd-aa59-9c9fc7734514" + }, + { + "parameters": { + "group": "internet", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc7", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "221ef5e2-caf2-4454-b3e9-82f7741e1fe7" + }, + { + "parameters": { + "group": "internet", + "tool": "checkDomainFormat", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc8", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1330, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "3c2fbae3-b5d5-4a07-9d07-9dc12e18b96d" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainIsp", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc9", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1460, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "a05ff442-89be-4566-8ab4-a0a6be404b8c" + }, + { + "parameters": { + "group": "internet", + "tool": "checkDomainMx", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc10", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1590, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "28f8de7b-97db-4ba4-ae60-d7715a47b433" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlPdf", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc11", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1720, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "866ba0e4-3011-4c2a-aab6-dedd534b0ccf" + }, + { + "parameters": { + "group": "internet", + "tool": "checkDomainRecord", + "domain": "n8n.io", + "type": "NS", + "additionalOptions": {} + }, + "name": "uProc12", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1850, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "edd0634b-e73d-4b56-ac05-2ebc2986af7c" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainRecord", + "domain": "n8n.io", + "type": "NS", + "additionalOptions": {} + }, + "name": "uProc13", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1980, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "97d92f60-cf96-4f11-88c6-5f0c13466cc8" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainRecords", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc14", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2110, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "2b48dcec-a2bc-422f-bd74-60e237726f93" + }, + { + "parameters": { + "group": "internet", + "tool": "checkDomainReverse", + "ip": "104.21.37.3", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc15", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2240, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "25a7db94-89db-4c44-b5ea-610921ea78c5" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainReverseIp", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc16", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2370, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "4dcf45b3-9786-4c41-9b5a-be82a46927b1" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlShareableLinks", + "text": "n8n rocks!", + "url": "https://n8n.io/", + "additionalOptions": {} + }, + "name": "uProc17", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2500, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "bc8d869f-0f74-40aa-ad4f-a602e6703526" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainTechnologies", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc18", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2630, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "c19223f4-34f6-4fc0-8580-a706d079a0ff" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlTechnologies", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc19", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2760, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "cd0c931e-5ced-4300-8d38-4c6b13d7f9d7" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainVisits", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc20", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2890, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "e63b384c-db6c-4f60-867a-e0b1c185e13d" + }, + { + "parameters": { + "group": "internet", + "tool": "getDomainWhois", + "domain": "n8n.io", + "additionalOptions": {} + }, + "name": "uProc21", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [3020, 300], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "111d4ba6-cdb8-4879-94db-b26f52a0a8fd" + }, + { + "parameters": { + "group": "internet", + "tool": "getIpWhois", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc22", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [420, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "33cd2d4d-710a-485f-a54d-db721b95be59" + }, + { + "parameters": { + "group": "internet", + "tool": "getFileCopiedBetweenUrls", + "source": "https://n8n.io/_nuxt/img/df5be1c.png", + "destination": "test", + "additionalOptions": {} + }, + "name": "uProc23", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [550, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "01eadfc0-0bc0-4630-b54a-a254917686d3" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlAnalysis", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc24", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [680, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "309d8b34-9d8f-4f04-8487-5849906b23fb" + }, + { + "parameters": { + "group": "internet", + "tool": "getNetAton", + "ip": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc25", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [810, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "8560b080-f140-4dec-9ab6-a7135c9a0ccc" + }, + { + "parameters": { + "group": "internet", + "tool": "checkUrlContains", + "url": "104.21.37.3", + "regex": "n8n", + "additionalOptions": {} + }, + "name": "uProc26", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [940, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "9d7ea1fd-7b6c-4023-8452-de501689d0e0" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlContents", + "url": "https://n8n.io", + "selector": "h1", + "additionalOptions": {} + }, + "name": "uProc27", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1070, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "61e3e8c3-619e-430a-99fb-dc0e30c85177" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlContentsParsed", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc28", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1200, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "cd18157f-d519-4700-a0f6-acb17688bf38" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlDecode", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc29", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1330, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "94bac370-001b-42bd-aab8-0a3265166e43" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlEncode", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc30", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1460, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "8af8cfea-c432-404f-83a1-0fb46c7a86e3" + }, + { + "parameters": { + "group": "internet", + "tool": "checkUrlExist", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc31", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1590, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ec8594b3-8ae9-4a76-9f71-d1cec1508e00" + }, + { + "parameters": { + "group": "internet", + "tool": "getNetFixip", + "number": "104.21.37.3", + "additionalOptions": {} + }, + "name": "uProc32", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1720, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "7c981264-b095-4827-81a0-751991548cda" + }, + { + "parameters": { + "group": "internet", + "tool": "checkNetHostAlive", + "host": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc33", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1850, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ad04ee24-86dc-4972-ac6a-c6f5dd731c72" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlListContentsParsed", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc34", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [1980, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "b7a838aa-9b5a-41a8-ad4e-078d5bae0386" + }, + { + "parameters": { + "group": "internet", + "tool": "getNetNtoa", + "number": "10421373", + "additionalOptions": {} + }, + "name": "uProc35", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2110, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "99b81130-900a-4eff-afe1-9f812071071f" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlParsed", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc36", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2240, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "02263618-4341-43a3-97ff-579b3ae5849b" + }, + { + "parameters": { + "group": "internet", + "tool": "getNetScan", + "host": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc37", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2370, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "f12e7ab7-f2eb-419f-8a7d-5e630849ac5c" + }, + { + "parameters": { + "group": "internet", + "tool": "checkNetServiceUp", + "host": "https://n8n.io", + "port": "80", + "additionalOptions": {} + }, + "name": "uProc38", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2500, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "30cdf3be-b9eb-4c91-8c8a-979ed1672bea" + }, + { + "parameters": { + "group": "internet", + "tool": "getUrlTables", + "url": "https://n8n.io", + "table": "3", + "additionalOptions": {} + }, + "name": "uProc39", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2630, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "ed5bf95c-cdd4-4eb8-810f-ac18703f3743" + }, + { + "parameters": { + "group": "internet", + "tool": "checkUrlValid", + "url": "https://n8n.io", + "additionalOptions": {} + }, + "name": "uProc40", + "type": "n8n-nodes-base.uproc", + "typeVersion": 1, + "position": [2760, 470], + "credentials": { + "uprocApi": { + "id": "142", + "name": "uProc API creds" + } + }, + "id": "6f264af2-ffbe-44cc-9b31-2e64d2b83b9b" + } + ], + "connections": { + "uProc1": { + "main": [ + [ + { + "node": "uProc2", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc2": { + "main": [ + [ + { + "node": "uProc3", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc3": { + "main": [ + [ + { + "node": "uProc4", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc4": { + "main": [ + [ + { + "node": "uProc5", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc5": { + "main": [ + [ + { + "node": "uProc6", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc6": { + "main": [ + [ + { + "node": "uProc7", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc7": { + "main": [ + [ + { + "node": "uProc8", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc8": { + "main": [ + [ + { + "node": "uProc9", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc9": { + "main": [ + [ + { + "node": "uProc10", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc10": { + "main": [ + [ + { + "node": "uProc11", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc11": { + "main": [ + [ + { + "node": "uProc12", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc12": { + "main": [ + [ + { + "node": "uProc13", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc13": { + "main": [ + [ + { + "node": "uProc14", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc14": { + "main": [ + [ + { + "node": "uProc15", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc15": { + "main": [ + [ + { + "node": "uProc16", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc16": { + "main": [ + [ + { + "node": "uProc17", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc17": { + "main": [ + [ + { + "node": "uProc18", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc18": { + "main": [ + [ + { + "node": "uProc19", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc19": { + "main": [ + [ + { + "node": "uProc20", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc20": { + "main": [ + [ + { + "node": "uProc21", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc22": { + "main": [ + [ + { + "node": "uProc23", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc23": { + "main": [ + [ + { + "node": "uProc24", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc24": { + "main": [ + [ + { + "node": "uProc25", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc25": { + "main": [ + [ + { + "node": "uProc26", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc26": { + "main": [ + [ + { + "node": "uProc27", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc27": { + "main": [ + [ + { + "node": "uProc28", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc28": { + "main": [ + [ + { + "node": "uProc29", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc29": { + "main": [ + [ + { + "node": "uProc30", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc30": { + "main": [ + [ + { + "node": "uProc31", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc31": { + "main": [ + [ + { + "node": "uProc32", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc32": { + "main": [ + [ + { + "node": "uProc33", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc33": { + "main": [ + [ + { + "node": "uProc34", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc34": { + "main": [ + [ + { + "node": "uProc35", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc35": { + "main": [ + [ + { + "node": "uProc36", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc36": { + "main": [ + [ + { + "node": "uProc37", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc37": { + "main": [ + [ + { + "node": "uProc38", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc38": { + "main": [ + [ + { + "node": "uProc39", + "type": "main", + "index": 0 + } + ] + ] + }, + "uProc39": { + "main": [ + [ + { + "node": "uProc40", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "uProc1", + "type": "main", + "index": 0 + }, + { + "node": "uProc22", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/182.json b/packages/testing/playwright/test-workflows/workflows/182.json new file mode 100644 index 0000000000..68c3ddec35 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/182.json @@ -0,0 +1,214 @@ +{ + "createdAt": "2021-04-23T08:55:02.078Z", + "updatedAt": "2021-04-23T08:55:02.078Z", + "id": "182", + "name": "Webflow:Item:create get update delete getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "a462a0c7-cda9-4a9e-b447-99be5b8df6f2" + }, + { + "parameters": { + "operation": "create", + "siteId": "6082884ac940c371277833ae", + "collectionId": "608289f18593d40792d70d54", + "fieldsUi": { + "fieldValues": [ + { + "fieldId": "name", + "fieldValue": "=Item{{Date.now()}}" + }, + { + "fieldId": "slug", + "fieldValue": "=ItemSlug{{Date.now()}}" + }, + { + "fieldId": "_archived", + "fieldValue": "False" + }, + { + "fieldId": "_draft", + "fieldValue": "True" + } + ] + } + }, + "name": "Webflow", + "type": "n8n-nodes-base.webflow", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "webflowApi": { + "id": "147", + "name": "Webflow API creds" + } + }, + "id": "270ca4f8-df14-4629-95df-e5adb713d02d" + }, + { + "parameters": { + "siteId": "6082884ac940c371277833ae", + "collectionId": "608289f18593d40792d70d54", + "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}" + }, + "name": "Webflow1", + "type": "n8n-nodes-base.webflow", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "webflowApi": { + "id": "147", + "name": "Webflow API creds" + } + }, + "id": "fc5b71c8-e124-49aa-b15f-8fed15916ff1" + }, + { + "parameters": { + "operation": "update", + "siteId": "6082884ac940c371277833ae", + "collectionId": "608289f18593d40792d70d54", + "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}", + "fieldsUi": { + "fieldValues": [ + { + "fieldId": "_draft", + "fieldValue": "False" + }, + { + "fieldId": "_archived", + "fieldValue": "False" + }, + { + "fieldId": "slug", + "fieldValue": "=Updated{{$node[\"Webflow1\"].json[\"slug\"]}}" + }, + { + "fieldId": "name", + "fieldValue": "=Updated{{$node[\"Webflow1\"].json[\"name\"]}}" + } + ] + } + }, + "name": "Webflow2", + "type": "n8n-nodes-base.webflow", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "webflowApi": { + "id": "147", + "name": "Webflow API creds" + } + }, + "id": "07182187-0587-41b2-89e0-1a289070643d" + }, + { + "parameters": { + "operation": "delete", + "siteId": "6082884ac940c371277833ae", + "collectionId": "608289f18593d40792d70d54", + "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}" + }, + "name": "Webflow3", + "type": "n8n-nodes-base.webflow", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "webflowApi": { + "id": "147", + "name": "Webflow API creds" + } + }, + "id": "197f83d4-c767-4c4a-a776-6c28ec39c799" + }, + { + "parameters": { + "operation": "getAll", + "siteId": "6082884ac940c371277833ae", + "collectionId": "608289f18593d40792d70d54", + "limit": 1 + }, + "name": "Webflow4", + "type": "n8n-nodes-base.webflow", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "webflowApi": { + "id": "147", + "name": "Webflow API creds" + } + }, + "id": "acb4b42b-c8b1-4222-9227-10b8456505fb" + } + ], + "connections": { + "Webflow": { + "main": [ + [ + { + "node": "Webflow1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Webflow1": { + "main": [ + [ + { + "node": "Webflow2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Webflow2": { + "main": [ + [ + { + "node": "Webflow3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Webflow3": { + "main": [ + [ + { + "node": "Webflow4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Webflow", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/183.json b/packages/testing/playwright/test-workflows/workflows/183.json new file mode 100644 index 0000000000..db74d07d9f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/183.json @@ -0,0 +1,560 @@ +{ + "createdAt": "2021-04-23T11:00:16.427Z", + "updatedAt": "2021-04-23T16:04:29.271Z", + "id": "183", + "name": "Telegram:Chat:get setDescription setTitle member:Message: sendMessage editMessageText pinChatMessage unpinChatMessage sendPhoto sendSticker sendMediaGroup sendChatAction sendLocation sendDocument sendAudio sendAnimation sendVideo:File:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "2003127c-05c1-4e8d-a123-f50582b324d0" + }, + { + "parameters": { + "resource": "chat", + "chatId": "@FixedChannel123" + }, + "name": "Telegram", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [500, 200], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "b74ed6ec-dd64-46f1-bbd2-968a02e248bc" + }, + { + "parameters": { + "resource": "chat", + "operation": "setDescription", + "chatId": "@FixedChannel123", + "description": "=UpdatedDescription{{Date.now()}}" + }, + "name": "Telegram1", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [650, 200], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "b78da1c6-a208-490f-95a9-b359f8d9852c" + }, + { + "parameters": { + "resource": "chat", + "operation": "setTitle", + "chatId": "@FixedChannel123", + "title": "=Title{{Date.now()}}" + }, + "name": "Telegram2", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [800, 200], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "50e2a9f1-5cf4-4009-8952-9d9a7f798cf6" + }, + { + "parameters": { + "resource": "chat", + "operation": "member", + "chatId": "@FixedChannel123", + "userId": "1757347499" + }, + "name": "Telegram3", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [950, 200], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "26a5c251-d0c1-4cb4-83a8-b5722b6b086c" + }, + { + "parameters": { + "chatId": "@FixedChannel123", + "text": "=Test{{Date.now()}}", + "additionalFields": {} + }, + "name": "Telegram4", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [490, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "8b3c6634-82c9-433e-8492-8c670b0e0ffd" + }, + { + "parameters": { + "operation": "editMessageText", + "chatId": "@FixedChannel123", + "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}", + "text": "=UpdatedTest{{Date.now()}}", + "additionalFields": {} + }, + "name": "Telegram5", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [650, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "179251fc-335f-4f05-ab9c-9c712e11b778" + }, + { + "parameters": { + "operation": "pinChatMessage", + "chatId": "@FixedChannel123", + "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}", + "additionalFields": {} + }, + "name": "Telegram6", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [800, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "bb70b35e-a908-43d8-8f01-a9cb3d152d53" + }, + { + "parameters": { + "operation": "unpinChatMessage", + "chatId": "@FixedChannel123", + "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}" + }, + "name": "Telegram7", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [950, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "dce352dc-fdbe-49ee-bb47-7aa065d5c3e4" + }, + { + "parameters": { + "operation": "sendPhoto", + "chatId": "@FixedChannel123", + "file": "https://n8n.io/_nuxt/img/df5be1c.png", + "additionalFields": {} + }, + "name": "Telegram8", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1100, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "bdb4221e-41ad-42ad-8725-6d93a326abe4" + }, + { + "parameters": { + "operation": "sendSticker", + "chatId": "@FixedChannel123", + "file": "https://tlgrm.eu/_/stickers/22c/b26/22cb267f-a2ab-41e4-8360-fe35ac048c3b/192/12.webp", + "additionalFields": {} + }, + "name": "Telegram9", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "70f93d2c-1365-4a84-acb6-efe74de090a1" + }, + { + "parameters": { + "resource": "file", + "fileId": "={{$node[\"Telegram8\"].json[\"result\"][\"photo\"][0][\"file_id\"]}}" + }, + "name": "Telegram10", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1250, 600], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "53b7d1e7-462d-4843-b852-3491a1e69310" + }, + { + "parameters": { + "operation": "sendMediaGroup", + "chatId": "@FixedChannel123", + "media": { + "media": [ + { + "media": "https://n8n.io/_nuxt/img/df5be1c.png", + "additionalFields": {} + }, + { + "media": "https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-screenshot.png", + "additionalFields": {} + } + ] + }, + "additionalFields": {} + }, + "name": "Telegram11", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1400, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "f8727e6e-c697-4b6b-be71-aaa451f4dabb" + }, + { + "parameters": { + "operation": "sendChatAction", + "chatId": "@FixedChannel123", + "action": "find_location" + }, + "name": "Telegram12", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1550, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "045fd95c-e699-4568-b6a5-3e1289e686c1" + }, + { + "parameters": { + "operation": "sendLocation", + "chatId": "@FixedChannel123", + "latitude": 52.529776, + "longitude": 13.3893152845, + "additionalFields": {} + }, + "name": "Telegram13", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1700, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "fa2ee6c4-f697-4e88-a952-dfbe3b5806d2" + }, + { + "parameters": { + "operation": "sendDocument", + "chatId": "@FixedChannel123", + "file": "https://nx10458.your-storageshare.de/s/4w7bEHjjGyEzoXq/download", + "additionalFields": {} + }, + "name": "Telegram14", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [1850, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "777d6bca-1444-4da2-bc76-454702bbbd33" + }, + { + "parameters": { + "operation": "sendAudio", + "chatId": "@FixedChannel123", + "file": "http://websrvr90va.audiovideoweb.com/va90web25003/companions/Foundations%20of%20Rock/13.07.mp3", + "additionalFields": {} + }, + "name": "Telegram15", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [2000, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "d6eced32-26b0-417f-832f-0521976847ec" + }, + { + "parameters": { + "operation": "sendAnimation", + "chatId": "@FixedChannel123", + "file": "https://media.giphy.com/media/1nR6fu93A17vWZbO9c/giphy.gif", + "additionalFields": {} + }, + "name": "Telegram16", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [2150, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "64ed5e7e-fa11-447c-b9e8-f8ee091bc447" + }, + { + "parameters": { + "operation": "sendVideo", + "chatId": "@FixedChannel123", + "file": "http://vod-progressive.akamaized.net/exp=1619203691~acl=%2Fvimeo-prod-skyfire-std-us%2F01%2F3610%2F13%2F343052045%2F1373111309.mp4~hmac=8ede5174dfb91845afeae538f8144fe5d6819b4a4713f700e1ff805261445369/vimeo-prod-skyfire-std-us/01/3610/13/343052045/1373111309.mp4?download=1&filename=Pexels Videos 2519660.mp4", + "additionalFields": {} + }, + "name": "Telegram17", + "type": "n8n-nodes-base.telegram", + "typeVersion": 1, + "position": [2300, 400], + "credentials": { + "telegramApi": { + "id": "148", + "name": "Telegram API creds" + } + }, + "id": "735e6eeb-4dff-4a56-847f-ac2512d00a18" + } + ], + "connections": { + "Telegram": { + "main": [ + [ + { + "node": "Telegram1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram1": { + "main": [ + [ + { + "node": "Telegram2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram2": { + "main": [ + [ + { + "node": "Telegram3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram4": { + "main": [ + [ + { + "node": "Telegram5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram5": { + "main": [ + [ + { + "node": "Telegram6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram6": { + "main": [ + [ + { + "node": "Telegram7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram8": { + "main": [ + [ + { + "node": "Telegram10", + "type": "main", + "index": 0 + }, + { + "node": "Telegram9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram7": { + "main": [ + [ + { + "node": "Telegram8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram9": { + "main": [ + [ + { + "node": "Telegram11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Telegram", + "type": "main", + "index": 0 + }, + { + "node": "Telegram4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram11": { + "main": [ + [ + { + "node": "Telegram12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram12": { + "main": [ + [ + { + "node": "Telegram13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram13": { + "main": [ + [ + { + "node": "Telegram14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram14": { + "main": [ + [ + { + "node": "Telegram15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram15": { + "main": [ + [ + { + "node": "Telegram16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Telegram16": { + "main": [ + [ + { + "node": "Telegram17", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/184.json b/packages/testing/playwright/test-workflows/workflows/184.json new file mode 100644 index 0000000000..adad4aa22d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/184.json @@ -0,0 +1,837 @@ +{ + "createdAt": "2021-04-26T16:15:15.635Z", + "updatedAt": "2021-05-20T16:56:10.192Z", + "id": "184", + "name": "Salesforce:Account:create get addNote getAll getSummary update delete:Case:create get addComment getAll getSummary update delete:Attachment:create get getAll getSummary update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "66a1cb46-3115-4e3f-b986-589153ee056b" + }, + { + "parameters": { + "resource": "account", + "name": "=Account{{Date.now()}}", + "additionalFields": {} + }, + "name": "Salesforce", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [520, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "5b1a4927-ea99-4ad0-9166-87de446b39e2" + }, + { + "parameters": { + "resource": "account", + "operation": "get", + "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce1", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [770, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "78646575-42fb-4d9c-af75-f55fcac7a0e8" + }, + { + "parameters": { + "resource": "account", + "operation": "addNote", + "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "title": "=Note{{Date.now()}}", + "options": {} + }, + "name": "Salesforce2", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [930, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "3036a0b8-1700-4cac-afd9-0679461bbeb3" + }, + { + "parameters": { + "resource": "account", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce3", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1210, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "3025fb7e-2d06-4174-b60b-e31ae414b56e" + }, + { + "parameters": { + "resource": "account", + "operation": "getSummary" + }, + "name": "Salesforce4", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1360, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "f9572f72-55e8-4e58-9aac-aebc4476a91b" + }, + { + "parameters": { + "resource": "account", + "operation": "update", + "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Salesforce1\"].json[\"Name\"]}}" + } + }, + "name": "Salesforce5", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1650, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "50385d4f-bfbf-49ba-a620-6372ce9eb7e2" + }, + { + "parameters": { + "resource": "account", + "operation": "delete", + "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce6", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1800, 190], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "2baac145-ccd2-421a-8e57-0312264f64c6" + }, + { + "parameters": { + "resource": "case", + "type": "Other", + "additionalFields": { + "reason": "Installation", + "subject": "=Subject{{Date.now()}}" + } + }, + "name": "Salesforce7", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [530, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "6f52f121-1906-4583-9ab5-ace8a85c21f1" + }, + { + "parameters": { + "resource": "case", + "operation": "get", + "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}" + }, + "name": "Salesforce8", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [690, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "5623e57f-6a90-46d4-b4b1-2a295c4a97be" + }, + { + "parameters": { + "resource": "case", + "operation": "addComment", + "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}", + "options": { + "commentBody": "=Comment{{Date.now()}}" + } + }, + "name": "Salesforce9", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2490, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "2fd4dca0-4bfa-41d2-971e-0bd469242d21" + }, + { + "parameters": { + "resource": "case", + "operation": "getSummary" + }, + "name": "Salesforce10", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2750, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "93aa55e7-46e5-4576-a634-82ff1b94963b" + }, + { + "parameters": { + "resource": "case", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce11", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2910, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "3e12fbf3-547f-4444-84c8-82339fa49485" + }, + { + "parameters": { + "resource": "case", + "operation": "update", + "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}", + "updateFields": { + "subject": "=Updated{{$node[\"Salesforce8\"].json[\"Subject\"]}}" + } + }, + "name": "Salesforce12", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [3180, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "dc93d012-04c6-4b5b-85c8-6a6cdd2c37f1" + }, + { + "parameters": { + "resource": "case", + "operation": "delete", + "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}" + }, + "name": "Salesforce13", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [3340, 350], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "339d8458-fcf3-4717-8baf-33651e27e169" + }, + { + "parameters": { + "resource": "attachment", + "parentId": "={{$node[\"Salesforce8\"].json[\"Id\"]}}", + "name": "=Attachment{{Date.now()}}", + "additionalFields": {} + }, + "name": "Salesforce14", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1260, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "6cac533b-4965-4432-908e-5f9abf9d7e28" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "data", + "value": "=Attachment example" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [800, 500], + "id": "4e4a6a2b-ffb1-4ca1-93bd-39ace5d35c68" + }, + { + "parameters": { + "mode": "jsonToBinary", + "options": {} + }, + "name": "Move Binary Data", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [960, 500], + "id": "2436fc2e-c730-4cfc-aeb9-0fbeda60b653" + }, + { + "parameters": { + "resource": "attachment", + "operation": "get", + "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}" + }, + "name": "Salesforce15", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1410, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "044ebdfa-a4ba-4c6f-a6b8-73e557b01f5a" + }, + { + "parameters": { + "resource": "attachment", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce16", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1710, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "11d43928-769d-49b0-b0df-540b98dbb94e" + }, + { + "parameters": { + "resource": "attachment", + "operation": "getSummary" + }, + "name": "Salesforce17", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1860, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "677c0167-c2c3-43cd-87c8-6281f3bdbced" + }, + { + "parameters": { + "resource": "attachment", + "operation": "update", + "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}", + "updateFields": { + "isPrivate": true + } + }, + "name": "Salesforce18", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2140, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "0f9a0337-0b8e-4839-8507-4da0ae9cce8f" + }, + { + "parameters": { + "resource": "attachment", + "operation": "delete", + "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}" + }, + "name": "Salesforce19", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2290, 500], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "d3dee2a4-4a49-42c8-9965-8d3a4614dab7" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [650, 190], + "typeVersion": 1, + "id": "82031d82-409d-4921-8fd7-bdb9f5b30e44" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [1070, 190], + "typeVersion": 1, + "id": "ca22ae1e-464b-4c60-9411-d953f6274def" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1510, 190], + "typeVersion": 1, + "id": "b51888e4-e156-45dc-b04a-de238a40d59b" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [3050, 350], + "typeVersion": 1, + "id": "52d4818a-c5fa-4172-9a9d-754095a21f3b" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [2620, 350], + "typeVersion": 1, + "id": "8fdcf0f4-d8be-41dd-94c1-4c3802500701" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [1990, 500], + "typeVersion": 1, + "id": "98e604e1-ee39-43a5-8aad-53b423f88033" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second6", + "type": "n8n-nodes-base.function", + "position": [1580, 500], + "typeVersion": 1, + "id": "04e6ad3e-5031-4945-ac5e-84baaf8db3be" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second7", + "type": "n8n-nodes-base.function", + "position": [1120, 500], + "typeVersion": 1, + "id": "a61fabaa-a79e-4714-8910-4300cdb6c0b5" + } + ], + "connections": { + "Salesforce": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce1": { + "main": [ + [ + { + "node": "Salesforce2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce2": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce3": { + "main": [ + [ + { + "node": "Salesforce4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce4": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce5": { + "main": [ + [ + { + "node": "Salesforce6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce7": { + "main": [ + [ + { + "node": "Salesforce8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce8": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce9": { + "main": [ + [ + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce10": { + "main": [ + [ + { + "node": "Salesforce11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce11": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce12": { + "main": [ + [ + { + "node": "Salesforce13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Move Binary Data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Move Binary Data": { + "main": [ + [ + { + "node": "Sleep 0.5 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce14": { + "main": [ + [ + { + "node": "Salesforce15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce15": { + "main": [ + [ + { + "node": "Sleep 0.5 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce16": { + "main": [ + [ + { + "node": "Salesforce17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce17": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce18": { + "main": [ + [ + { + "node": "Salesforce19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce19": { + "main": [ + [ + { + "node": "Salesforce9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Salesforce7", + "type": "main", + "index": 0 + }, + { + "node": "Salesforce", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Salesforce1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "Salesforce3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "Salesforce5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "Salesforce12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "Salesforce10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "Salesforce18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second6": { + "main": [ + [ + { + "node": "Salesforce16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second7": { + "main": [ + [ + { + "node": "Salesforce14", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/185.json b/packages/testing/playwright/test-workflows/workflows/185.json new file mode 100644 index 0000000000..4cbf7589d1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/185.json @@ -0,0 +1,870 @@ +{ + "createdAt": "2021-04-26T16:57:16.077Z", + "updatedAt": "2021-05-20T16:55:37.548Z", + "id": "185", + "name": "Salesforce:Lead:create get addNote addToCampaign getAll getSummary update delete:Contact:create get addNote addToCampaign getAll getSummary update delete:CustomObject:create get getAll update delete:Flow:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "3e759fa8-73f9-4851-968b-65c1843c646c" + }, + { + "parameters": { + "resource": "contact", + "lastname": "=Contact{{Date.now()}}", + "additionalFields": {} + }, + "name": "Salesforce", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [450, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "0ae37230-15ba-4ff3-a4af-373fa3a1b0b4" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce1", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [600, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "a2dc5829-0aee-495e-a7e2-a8db3b8eacc5" + }, + { + "parameters": { + "resource": "contact", + "operation": "addNote", + "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "title": "=Note{{Date.now()}}", + "options": {} + }, + "name": "Salesforce2", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [940, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "75d1b33c-cb4d-429e-835d-06e3b59cecff" + }, + { + "parameters": { + "resource": "contact", + "operation": "getSummary" + }, + "name": "Salesforce3", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1090, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "6a0bda2d-3ba5-409f-b5c2-d1cce8e13206" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce4", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1400, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "bf879abe-b86e-44f9-819a-96dcde8ed019" + }, + { + "parameters": { + "resource": "contact", + "operation": "addToCampaign", + "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "campaignId": "70109000000TU12AAG", + "options": {} + }, + "name": "Salesforce5", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1550, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "a00bc642-9a77-4109-9de3-be96c3d9c615" + }, + { + "parameters": { + "resource": "contact", + "operation": "update", + "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "updateFields": { + "title": "=UpdatedTitle{{Date.now()}}" + } + }, + "name": "Salesforce6", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1910, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "f7354012-b9c7-4a0b-9ca6-d627443b24c5" + }, + { + "parameters": { + "resource": "contact", + "operation": "delete", + "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce7", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2060, 230], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "d1552ed3-73d6-4f8d-801c-d24e594044b7" + }, + { + "parameters": { + "resource": "customObject", + "customObject": "CustomObjectFixed__c", + "customFieldsUi": { + "customFieldsValues": [ + { + "fieldId": "Name", + "value": "TestCustomObjectFixed" + } + ] + } + }, + "name": "Salesforce8", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [460, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "1ca8c1bc-5e2b-45c5-ab7a-33b766fa906b" + }, + { + "parameters": { + "resource": "customObject", + "operation": "get", + "customObject": "CustomObjectFixed__c", + "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" + }, + "name": "Salesforce9", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [810, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "7ec96ddd-97b2-48c1-ba74-f0219d9f8df6" + }, + { + "parameters": { + "resource": "customObject", + "operation": "getAll", + "customObject": "CustomObjectFixed__c", + "limit": 1, + "options": {} + }, + "name": "Salesforce10", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [950, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "655e131b-ce30-4408-90c4-33c2bbf2509d" + }, + { + "parameters": { + "resource": "customObject", + "operation": "update", + "customObject": "CustomObjectFixed__c", + "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}", + "customFieldsUi": { + "customFieldsValues": [ + { + "fieldId": "Name", + "value": "UpdatedCustomObjectFixed" + } + ] + } + }, + "name": "Salesforce11", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1320, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "a8bbc9dc-095e-4977-8e7e-ab51105e067e" + }, + { + "parameters": { + "resource": "customObject", + "operation": "delete", + "customObject": "CustomObjectFixed__c", + "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" + }, + "name": "Salesforce12", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1470, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "079ed153-25b5-459d-8fa9-09ed6b6839a4" + }, + { + "parameters": { + "resource": "flow", + "operation": "getAll", + "limit": 1 + }, + "name": "Salesforce13", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [460, 560], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "f869a8a4-f0ac-4ad6-a594-2d51099aa226" + }, + { + "parameters": { + "resource": "flow", + "apiName": "={{$node[\"Salesforce13\"].json[\"name\"]}}" + }, + "name": "Salesforce14", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [600, 560], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "disabled": true, + "id": "f476766b-2817-4b3a-9220-21b5852609e2" + }, + { + "parameters": { + "company": "n8n", + "lastname": "=LastName{{Date.now()}}", + "additionalFields": {} + }, + "name": "Salesforce15", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [450, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "2881bb5a-12ff-41b6-9624-82bbadf392e2" + }, + { + "parameters": { + "operation": "get", + "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}" + }, + "name": "Salesforce16", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [600, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "79861ab0-f376-48df-aeba-08c297c7070f" + }, + { + "parameters": { + "operation": "addNote", + "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", + "title": "LeadNote", + "options": {} + }, + "name": "Salesforce17", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [940, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "19fd1281-ef46-4aa2-9b21-0c767bf2e050" + }, + { + "parameters": { + "operation": "getSummary" + }, + "name": "Salesforce18", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1090, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "f1b56cfe-41c8-4f8b-9ce5-ba48744907fd" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce19", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1400, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "b80c3c9c-9f27-459c-b4c7-8d581923dced" + }, + { + "parameters": { + "operation": "addToCampaign", + "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", + "campaignId": "70109000000TU12AAG", + "options": {} + }, + "name": "Salesforce20", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1550, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "b7fa794c-495a-4d41-9416-9b318522e236" + }, + { + "parameters": { + "operation": "update", + "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", + "updateFields": { + "description": "Updated Description" + } + }, + "name": "Salesforce21", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1910, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "c26d4856-782a-47e9-aa17-aecb7705610a" + }, + { + "parameters": { + "operation": "delete", + "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}" + }, + "name": "Salesforce22", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [2060, 50], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "02fc2ba8-33ae-4ffe-9e18-ed113a5b75e6" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [770, 50], + "typeVersion": 1, + "id": "c004a09e-09fd-4ac2-8d5c-270a15b204b1" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [770, 230], + "typeVersion": 1, + "id": "4939f605-622d-4f84-8da2-6565fc63b42f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1240, 50], + "typeVersion": 1, + "id": "e44a9ad5-a103-49da-956c-53ff4993450c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [1250, 230], + "typeVersion": 1, + "id": "75c555b9-1b6f-426a-9dab-b691918843a2" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [1730, 50], + "typeVersion": 1, + "id": "523558db-379a-4eac-8ce0-03e3ce08ff6a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [1730, 230], + "typeVersion": 1, + "id": "077e1d54-864f-47f9-b248-a5b482946e13" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second6", + "type": "n8n-nodes-base.function", + "position": [1150, 400], + "typeVersion": 1, + "id": "d6328f6e-5944-4f30-8911-1f691fbfbd4c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second7", + "type": "n8n-nodes-base.function", + "position": [620, 400], + "typeVersion": 1, + "id": "feb9fe8d-176e-442e-85e5-f58a42603a35" + } + ], + "connections": { + "Salesforce": { + "main": [ + [ + { + "node": "Salesforce1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce1": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce2": { + "main": [ + [ + { + "node": "Salesforce3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce3": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce4": { + "main": [ + [ + { + "node": "Salesforce5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce5": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce6": { + "main": [ + [ + { + "node": "Salesforce7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Salesforce", + "type": "main", + "index": 0 + }, + { + "node": "Salesforce8", + "type": "main", + "index": 0 + }, + { + "node": "Salesforce13", + "type": "main", + "index": 0 + }, + { + "node": "Salesforce15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce8": { + "main": [ + [ + { + "node": "Sleep 0.5 second7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce9": { + "main": [ + [ + { + "node": "Salesforce10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce10": { + "main": [ + [ + { + "node": "Sleep 0.5 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce11": { + "main": [ + [ + { + "node": "Salesforce12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce13": { + "main": [ + [ + { + "node": "Salesforce14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce15": { + "main": [ + [ + { + "node": "Salesforce16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce16": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce17": { + "main": [ + [ + { + "node": "Salesforce18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce18": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce19": { + "main": [ + [ + { + "node": "Salesforce20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce20": { + "main": [ + [ + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce21": { + "main": [ + [ + { + "node": "Salesforce22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "Salesforce21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "Salesforce6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "Salesforce19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "Salesforce4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Salesforce17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "Salesforce2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second6": { + "main": [ + [ + { + "node": "Salesforce11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second7": { + "main": [ + [ + { + "node": "Salesforce9", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/186.json b/packages/testing/playwright/test-workflows/workflows/186.json new file mode 100644 index 0000000000..c88fd349d6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/186.json @@ -0,0 +1,555 @@ +{ + "createdAt": "2021-04-26T17:42:22.794Z", + "updatedAt": "2021-05-21T12:39:59.740Z", + "id": "186", + "name": "Salesforce:Opportunity:create get addNote getAll getSummary update delete:Task:create get getAll getSummary update delete:Query:search", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0c8d4ebe-b490-4418-a240-32e15a25879c" + }, + { + "parameters": { + "resource": "opportunity", + "name": "=Opp{{Date.now()}}", + "closeDate": "2021-03-31T22:00:00.000Z", + "stageName": "Value Proposition", + "additionalFields": {} + }, + "name": "Salesforce", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "611612e2-cd0e-413c-a8c0-ca011830d3f3" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "get", + "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce1", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [780, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "76c5bb71-c7a5-41fe-bab8-8ab5a4e3bd02" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "addNote", + "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "title": "OppNote", + "options": {} + }, + "name": "Salesforce2", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [910, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "863c2685-0e4a-45ae-a838-570cd2b328be" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "getSummary" + }, + "name": "Salesforce3", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1180, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "531dba66-59fa-4274-abd9-fa424c6068d2" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce4", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1330, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "95bef426-8b35-43d0-a0cb-274650ee2f64" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "update", + "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}", + "updateFields": { + "name": "UpdatedOpp" + } + }, + "name": "Salesforce5", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1580, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "9806aa1f-fe25-4e09-83c7-7412d6897d52" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "delete", + "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}" + }, + "name": "Salesforce6", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1730, 250], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "7e5cf8e8-0935-4ea0-b58e-896cd0a1d7a2" + }, + { + "parameters": { + "resource": "search", + "query": "SELECT Id, Name, BillingCity FROM Account LIMIT 1" + }, + "name": "Salesforce7", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "b338d5c8-ce76-4faa-9764-f86e4b346b87" + }, + { + "parameters": { + "resource": "task", + "status": "In Progress", + "additionalFields": {} + }, + "name": "Salesforce8", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [600, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "2c2811e3-2dc0-42c1-ab13-0940503318fd" + }, + { + "parameters": { + "resource": "task", + "operation": "get", + "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" + }, + "name": "Salesforce9", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [750, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "0e61e836-069b-45f3-8ea7-298610c170b2" + }, + { + "parameters": { + "resource": "task", + "operation": "getSummary" + }, + "name": "Salesforce10", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1010, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "ff0c0a0f-16c9-44e5-9aef-531039f7985c" + }, + { + "parameters": { + "resource": "task", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Salesforce11", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1150, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "cbf534bd-9db5-4e10-abfa-8cae05cf147b" + }, + { + "parameters": { + "resource": "task", + "operation": "update", + "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}", + "updateFields": { + "status": "Completed" + } + }, + "name": "Salesforce12", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1460, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "04afbeb0-d437-4060-8966-e35cef872f79" + }, + { + "parameters": { + "resource": "task", + "operation": "delete", + "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" + }, + "name": "Salesforce13", + "type": "n8n-nodes-base.salesforce", + "typeVersion": 1, + "position": [1610, 550], + "credentials": { + "salesforceOAuth2Api": { + "id": "149", + "name": "Salesforce OAuth2 API creds" + } + }, + "id": "5f800e5f-7be2-483a-8633-70e258e9ce69" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [640, 250], + "typeVersion": 1, + "id": "74e93e34-a272-40a3-a976-98f7da373e49" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [1050, 250], + "typeVersion": 1, + "id": "c4d53540-e46f-4e9f-b61a-cdfa72df1730" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1450, 250], + "typeVersion": 1, + "id": "1fc2b051-cd25-4fc4-8c6f-819c24ca1f49" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [880, 550], + "typeVersion": 1, + "id": "a7794510-cd2c-4265-b7ce-505aceb813c8" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [480, 550], + "typeVersion": 1, + "id": "f50da613-c2c9-4823-9ba8-2969ed4899c1" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [1290, 550], + "typeVersion": 1, + "id": "3259acd2-fd46-4348-b7d0-48d4396041df" + } + ], + "connections": { + "Salesforce": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce1": { + "main": [ + [ + { + "node": "Salesforce2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce3": { + "main": [ + [ + { + "node": "Salesforce4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce4": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce5": { + "main": [ + [ + { + "node": "Salesforce6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Salesforce", + "type": "main", + "index": 0 + }, + { + "node": "Salesforce7", + "type": "main", + "index": 0 + }, + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce8": { + "main": [ + [ + { + "node": "Salesforce9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce9": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce10": { + "main": [ + [ + { + "node": "Salesforce11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce11": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce12": { + "main": [ + [ + { + "node": "Salesforce13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "Salesforce8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "Salesforce3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Salesforce1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "Salesforce10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "Salesforce5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "Salesforce12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesforce2": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/187.json b/packages/testing/playwright/test-workflows/workflows/187.json new file mode 100644 index 0000000000..e72234cc0c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/187.json @@ -0,0 +1,242 @@ +{ + "createdAt": "2021-04-29T08:02:29.441Z", + "updatedAt": "2021-04-29T08:02:29.441Z", + "id": "187", + "name": "Strapi:Entry:create get getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e4175f5f-af4e-4fe5-b5e4-c7a00de9330c" + }, + { + "parameters": { + "operation": "create", + "contentType": "Tests", + "columns": "test,random" + }, + "name": "Strapi", + "type": "n8n-nodes-base.strapi", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "strapiApi": { + "id": "150", + "name": "Strapi API creds" + } + }, + "id": "d3173ece-7c5a-42c5-95d8-cb11b4444741" + }, + { + "parameters": { + "values": { + "number": [ + { + "name": "random", + "value": "={{Math.round(Math.random()*1000)}}" + } + ], + "string": [ + { + "name": "test", + "value": "=Entry{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "f4431416-b2cf-49d9-b61f-8629fb40f97b" + }, + { + "parameters": { + "contentType": "Tests", + "entryId": "={{$node[\"Strapi\"].json[\"id\"]}}" + }, + "name": "Strapi1", + "type": "n8n-nodes-base.strapi", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "strapiApi": { + "id": "150", + "name": "Strapi API creds" + } + }, + "id": "2160d0d9-f5f3-45c5-9925-3e6449a71097" + }, + { + "parameters": { + "operation": "getAll", + "contentType": "Tests", + "limit": 1, + "options": {} + }, + "name": "Strapi2", + "type": "n8n-nodes-base.strapi", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "strapiApi": { + "id": "150", + "name": "Strapi API creds" + } + }, + "id": "bebbc112-21a2-48f8-9291-89f264057fff" + }, + { + "parameters": { + "operation": "update", + "contentType": "Tests", + "columns": "test" + }, + "name": "Strapi3", + "type": "n8n-nodes-base.strapi", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "strapiApi": { + "id": "150", + "name": "Strapi API creds" + } + }, + "id": "275f4cc2-4ebb-42fe-9fee-ef709df4df6b" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "number": [ + { + "name": "id", + "value": "={{$node[\"Strapi1\"].json[\"id\"]}}" + } + ], + "string": [ + { + "name": "test", + "value": "=Updated{{$node[\"Set\"].json[\"test\"]}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1000, 300], + "id": "bcff9dc4-914a-4494-b08f-321f541511d2" + }, + { + "parameters": { + "operation": "delete", + "contentType": "Tests", + "entryId": "={{$node[\"Strapi\"].json[\"id\"]}}" + }, + "name": "Strapi4", + "type": "n8n-nodes-base.strapi", + "typeVersion": 1, + "position": [1290, 300], + "credentials": { + "strapiApi": { + "id": "150", + "name": "Strapi API creds" + } + }, + "id": "f60abebb-e54e-4bf6-805e-7a3c22769dbc" + } + ], + "connections": { + "Strapi": { + "main": [ + [ + { + "node": "Strapi1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Strapi", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strapi1": { + "main": [ + [ + { + "node": "Strapi2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strapi2": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Strapi3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strapi3": { + "main": [ + [ + { + "node": "Strapi4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/188.json b/packages/testing/playwright/test-workflows/workflows/188.json new file mode 100644 index 0000000000..5006611668 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/188.json @@ -0,0 +1,77 @@ +{ + "createdAt": "2021-04-29T08:16:23.227Z", + "updatedAt": "2021-04-29T08:16:23.227Z", + "id": "188", + "name": "Uplead:Company:enrich:Person:enrich", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "1a29e4a7-f246-40dc-b79c-b786d4c806b1" + }, + { + "parameters": { + "company": "amazon" + }, + "name": "Uplead", + "type": "n8n-nodes-base.uplead", + "typeVersion": 1, + "position": [550, 200], + "credentials": { + "upleadApi": { + "id": "151", + "name": "Uplead API creds" + } + }, + "id": "879b9140-4c58-4d4d-86ab-a483fd617922" + }, + { + "parameters": { + "resource": "person", + "firstname": "Werner ", + "lastname": "Vogels", + "domain": "amazon.com" + }, + "name": "Uplead1", + "type": "n8n-nodes-base.uplead", + "typeVersion": 1, + "position": [550, 350], + "credentials": { + "upleadApi": { + "id": "151", + "name": "Uplead API creds" + } + }, + "id": "e97bccd6-c107-4099-9141-040cebe56ed8" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Uplead", + "type": "main", + "index": 0 + }, + { + "node": "Uplead1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/189.json b/packages/testing/playwright/test-workflows/workflows/189.json new file mode 100644 index 0000000000..bc55e74c5c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/189.json @@ -0,0 +1,481 @@ +{ + "createdAt": "2021-04-29T08:53:09.807Z", + "updatedAt": "2021-05-12T17:31:21.682Z", + "id": "189", + "name": "Affinity:Organization:create get update delete getAll:List:getAll get:ListEntry:create get getAll delete:Person:create get update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "87d46406-85dc-49d6-bf83-b69e094d6873" + }, + { + "parameters": { + "name": "=TESTCOMPANY{{Date.now()}}", + "domain": "test.com", + "additionalFields": {} + }, + "name": "Affinity", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "1be8b362-0d29-48ef-8f70-f98b408ac154" + }, + { + "parameters": { + "operation": "get", + "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}", + "options": {} + }, + "name": "Affinity1", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "5797c0f2-ace5-41ef-aabf-1104f582ae02" + }, + { + "parameters": { + "operation": "update", + "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}", + "updateFields": { + "name": "={{$node[\"Affinity1\"].json[\"name\"]}}-UPDATED" + } + }, + "name": "Affinity2", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "1a74bdc8-4e0e-4d9c-9af0-4e80dba7a290" + }, + { + "parameters": { + "operation": "delete", + "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}" + }, + "name": "Affinity3", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "781cad97-11a9-47ba-8de2-0b1863513c0f" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Affinity4", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [500, 450], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "d803cdfd-b2ea-4f74-9839-56c26276a9d4" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "limit": 1 + }, + "name": "Affinity5", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [500, 150], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "d2f43144-3321-4b65-9aed-91ed98d8b26d" + }, + { + "parameters": { + "resource": "list", + "listId": "={{$node[\"Affinity5\"].json[\"id\"]}}" + }, + "name": "Affinity6", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [650, 150], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "7f3f2a9b-d82c-451f-bf94-785afba42af9" + }, + { + "parameters": { + "resource": "person", + "firstName": "=Fname_{{(new Date).toISOString()}}", + "lastName": "=Lname_{{(new Date).toISOString()}}", + "additionalFields": {} + }, + "name": "Affinity7", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [500, 600], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "a7a2a691-028c-4c01-a8ed-392e2c026f94" + }, + { + "parameters": { + "resource": "person", + "operation": "get", + "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}", + "options": {} + }, + "name": "Affinity8", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [650, 600], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "12399f87-e27c-443b-809e-812eaa0e41fb" + }, + { + "parameters": { + "resource": "person", + "operation": "update", + "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}", + "updateFields": {}, + "emails": ["=email_{{Date.now()}}@test.com"] + }, + "name": "Affinity9", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [800, 600], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "b28eb5fe-e6f9-487e-b947-469f21addca5" + }, + { + "parameters": { + "resource": "person", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Affinity10", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [950, 600], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "aadcf4a8-89eb-49b6-a1cf-36df4aff4c3b" + }, + { + "parameters": { + "resource": "person", + "operation": "delete", + "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}" + }, + "name": "Affinity11", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [1100, 600], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "013b336c-1062-4f12-90f4-b3204fde09df" + }, + { + "parameters": { + "resource": "listEntry", + "listId": 51365, + "entityId": "={{$node[\"Affinity\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Affinity12", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [650, 450], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "99544ad9-75e7-4927-9070-a1d88df5631a" + }, + { + "parameters": { + "resource": "listEntry", + "operation": "get", + "listId": 51365, + "listEntryId": "={{$node[\"Affinity12\"].json[\"id\"]}}" + }, + "name": "Affinity13", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [800, 450], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "8a4abe86-e2d3-4bb5-9f1a-2dc77c0668fa" + }, + { + "parameters": { + "resource": "listEntry", + "operation": "getAll", + "listId": 51365, + "limit": 1 + }, + "name": "Affinity14", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [950, 450], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "a1e54a4a-19a1-4705-bb5e-36a3074a987a" + }, + { + "parameters": { + "resource": "listEntry", + "operation": "delete", + "listId": 51365, + "listEntryId": "={{$node[\"Affinity12\"].json[\"id\"]}}" + }, + "name": "Affinity15", + "type": "n8n-nodes-base.affinity", + "typeVersion": 1, + "position": [1100, 450], + "credentials": { + "affinityApi": { + "id": "152", + "name": "Affinity API creds" + } + }, + "id": "a1f2281d-3a7f-4632-9d76-8696703fda14" + } + ], + "connections": { + "Affinity": { + "main": [ + [ + { + "node": "Affinity12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity1": { + "main": [ + [ + { + "node": "Affinity2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity2": { + "main": [ + [ + { + "node": "Affinity3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Affinity", + "type": "main", + "index": 0 + }, + { + "node": "Affinity4", + "type": "main", + "index": 0 + }, + { + "node": "Affinity5", + "type": "main", + "index": 0 + }, + { + "node": "Affinity7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity5": { + "main": [ + [ + { + "node": "Affinity6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity7": { + "main": [ + [ + { + "node": "Affinity8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity8": { + "main": [ + [ + { + "node": "Affinity9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity9": { + "main": [ + [ + { + "node": "Affinity10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity10": { + "main": [ + [ + { + "node": "Affinity11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity12": { + "main": [ + [ + { + "node": "Affinity13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity13": { + "main": [ + [ + { + "node": "Affinity14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity14": { + "main": [ + [ + { + "node": "Affinity15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Affinity15": { + "main": [ + [ + { + "node": "Affinity1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/19.json b/packages/testing/playwright/test-workflows/workflows/19.json new file mode 100644 index 0000000000..092216a5d9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/19.json @@ -0,0 +1,719 @@ +{ + "createdAt": "2021-02-16T14:22:05.872Z", + "updatedAt": "2021-07-15T13:45:13.306Z", + "id": "19", + "name": "SentryIo:Organization:create get getAll update:Team:create get getAll update delete:Project:create getAll get update delete:Issue:getAll get update:Event:getAll get:Release:create get getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [210, 580], + "id": "3ae6a472-ef2b-4e70-b1b8-34f11865656a" + }, + { + "parameters": { + "resource": "organization", + "operation": "create", + "name": "=Org{{Date.now()}}", + "agreeTerms": true, + "additionalFields": {} + }, + "name": "Sentry.io", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [420, 300], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "3b9b06b9-024b-411b-b074-b5d26419c178" + }, + { + "parameters": { + "resource": "organization", + "organizationSlug": "={{$node[\"Sentry.io\"].json[\"slug\"]}}" + }, + "name": "Sentry.io1", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [610, 300], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "214cd123-0b74-4e6b-b70b-fc715226309b" + }, + { + "parameters": { + "resource": "organization", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Sentry.io2", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [980, 300], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "b39920cd-5e8e-4cb7-a5f6-781665b22b53" + }, + { + "parameters": { + "resource": "team", + "operation": "create", + "organizationSlug": "n8n-iq", + "name": "=Team{{Date.now()}}", + "additionalFields": {} + }, + "name": "Sentry.io3", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [420, 140], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "9f460480-4b55-4f2d-b0ab-7e1f1dc1e974" + }, + { + "parameters": { + "resource": "team", + "organizationSlug": "n8n-iq", + "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}" + }, + "name": "Sentry.io4", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [580, 140], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "c095b56c-c87b-41e4-9dd1-a529b963dd47" + }, + { + "parameters": { + "resource": "team", + "operation": "getAll", + "organizationSlug": "n8n-iq", + "limit": 1 + }, + "name": "Sentry.io5", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [930, 140], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "83e5e140-a7fa-497a-9154-84b33f1f43a7" + }, + { + "parameters": { + "resource": "project", + "operation": "getAll", + "limit": 1 + }, + "name": "Sentry.io6", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [590, 470], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "674a3f1a-9812-43b9-b95b-e3de0106df02" + }, + { + "parameters": { + "resource": "project", + "organizationSlug": "n8n-iq", + "projectSlug": "={{$node[\"Sentry.io22\"].json[\"slug\"]}}" + }, + "name": "Sentry.io7", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [780, 470], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "78b758fd-29a0-4444-b8b6-128e942b1075" + }, + { + "parameters": { + "resource": "issue", + "issueId": "={{$json[\"id\"]}}" + }, + "name": "Sentry.io8", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [610, 630], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "15c4106f-e73e-492f-8ea4-bfcfbd15ae6d" + }, + { + "parameters": { + "resource": "issue", + "operation": "getAll", + "organizationSlug": "n8n-iq", + "projectSlug": "javascript", + "limit": 1, + "additionalFields": {} + }, + "name": "Sentry.io9", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [430, 630], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "ee504fe3-dec7-4225-8ba9-3e978f5186aa" + }, + { + "parameters": { + "resource": "issue", + "operation": "update", + "issueId": "={{$json[\"id\"]}}", + "additionalFields": { + "isBookmarked": "={{!$json[\"isBookmarked\"]}}" + } + }, + "name": "Sentry.io10", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [780, 630], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "33d3a8d7-1f90-47ab-b890-f3689bb2c4c2" + }, + { + "parameters": { + "operation": "getAll", + "organizationSlug": "n8n-iq", + "projectSlug": "javascript", + "full": false, + "limit": 1 + }, + "name": "Sentry.io11", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [430, 780], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "9bb47894-f507-49da-9b4e-5b69629bbfcf" + }, + { + "parameters": { + "organizationSlug": "n8n-iq", + "projectSlug": "javascript", + "eventId": "={{$json[\"id\"]}}" + }, + "name": "Sentry.io12", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [610, 780], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "b99e1b5d-f5c9-448b-84fe-f14fadda556b" + }, + { + "parameters": { + "resource": "release", + "operation": "create", + "organizationSlug": "n8n-iq", + "version": "={{Date.now().toString()}}", + "url": "http://n8n.io", + "projects": "={{[$node[\"Sentry.io22\"].json[\"slug\"]]}}", + "additionalFields": {} + }, + "name": "Sentry.io13", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1100, 530], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "c20a70e0-852e-4e75-9ea5-52196890f619" + }, + { + "parameters": { + "resource": "release", + "organizationSlug": "n8n-iq", + "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}" + }, + "name": "Sentry.io14", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1260, 530], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "b962d75f-256b-4e10-9da0-750913bf4b21" + }, + { + "parameters": { + "resource": "release", + "operation": "getAll", + "organizationSlug": "n8n-iq", + "limit": 1, + "additionalFields": {} + }, + "name": "Sentry.io15", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1440, 530], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "253e52a4-18a3-4ce8-b3a9-f9ece3eb6230" + }, + { + "parameters": { + "resource": "team", + "operation": "update", + "organizationSlug": "n8n-iq", + "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}", + "updateFields": {} + }, + "name": "Sentry.io16", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [750, 140], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "8e6fe7c5-6475-4404-87e4-20441ddb887f" + }, + { + "parameters": { + "resource": "team", + "operation": "delete", + "organizationSlug": "n8n-iq", + "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}" + }, + "name": "Sentry.io17", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1100, 140], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "860e3e1b-139d-487b-8cfc-cc141044c446" + }, + { + "parameters": { + "resource": "organization", + "operation": "update", + "organization_slug": "={{$node[\"Sentry.io\"].json[\"slug\"]}}", + "updateFields": {} + }, + "name": "Sentry.io18", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [790, 300], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "9265dc47-fd2c-458e-991c-ff781cf7fbcd" + }, + { + "parameters": { + "resource": "project", + "operation": "update", + "organizationSlug": "n8n-iq", + "projectSlug": "={{$node[\"Sentry.io6\"].json[\"slug\"]}}", + "updateFields": {} + }, + "name": "Sentry.io19", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [950, 470], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "60e51eaa-b5a3-4871-9514-462c11b9b640" + }, + { + "parameters": { + "resource": "release", + "operation": "update", + "organizationSlug": "n8n-iq", + "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}", + "updateFields": {} + }, + "name": "Sentry.io20", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1600, 530], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "0c4c5b23-1127-4dc4-be96-50ccca58c89e" + }, + { + "parameters": { + "resource": "release", + "operation": "delete", + "organizationSlug": "n8n-iq", + "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}" + }, + "name": "Sentry.io21", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1750, 530], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "61a5111f-5290-429a-9513-c26789af0bd6" + }, + { + "parameters": { + "resource": "project", + "operation": "create", + "organizationSlug": "n8n-iq", + "teamSlug": "n8nteam", + "name": "=ProjectTest{{Date.now()}}", + "additionalFields": {} + }, + "name": "Sentry.io22", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [430, 470], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "dc68e4b1-7874-4f7a-b44f-5222ae7fe47e" + }, + { + "parameters": { + "resource": "project", + "operation": "delete", + "organizationSlug": "n8n-iq", + "projectSlug": "={{$node[\"Sentry.io22\"].json[\"slug\"]}}" + }, + "name": "Sentry.io23", + "type": "n8n-nodes-base.sentryIo", + "typeVersion": 1, + "position": [1900, 480], + "credentials": { + "sentryIoApi": { + "id": "10", + "name": "sentry io token" + } + }, + "id": "8143174a-4e94-4e6b-a75f-080c71f08227" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Sentry.io", + "type": "main", + "index": 0 + }, + { + "node": "Sentry.io3", + "type": "main", + "index": 0 + }, + { + "node": "Sentry.io22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io": { + "main": [ + [ + { + "node": "Sentry.io1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io1": { + "main": [ + [ + { + "node": "Sentry.io18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io3": { + "main": [ + [ + { + "node": "Sentry.io4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io4": { + "main": [ + [ + { + "node": "Sentry.io16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io6": { + "main": [ + [ + { + "node": "Sentry.io7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io8": { + "main": [ + [ + { + "node": "Sentry.io10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io9": { + "main": [ + [ + { + "node": "Sentry.io8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io11": { + "main": [ + [ + { + "node": "Sentry.io12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io13": { + "main": [ + [ + { + "node": "Sentry.io14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io14": { + "main": [ + [ + { + "node": "Sentry.io15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io16": { + "main": [ + [ + { + "node": "Sentry.io5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io5": { + "main": [ + [ + { + "node": "Sentry.io17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io18": { + "main": [ + [ + { + "node": "Sentry.io2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io7": { + "main": [ + [ + { + "node": "Sentry.io19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io19": { + "main": [ + [ + { + "node": "Sentry.io13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io15": { + "main": [ + [ + { + "node": "Sentry.io20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io20": { + "main": [ + [ + { + "node": "Sentry.io21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io22": { + "main": [ + [ + { + "node": "Sentry.io6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sentry.io21": { + "main": [ + [ + { + "node": "Sentry.io23", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/190.json b/packages/testing/playwright/test-workflows/workflows/190.json new file mode 100644 index 0000000000..c317e99311 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/190.json @@ -0,0 +1,507 @@ +{ + "createdAt": "2021-04-29T10:21:23.768Z", + "updatedAt": "2021-06-04T14:59:28.116Z", + "id": "190", + "name": "Discourse:User:create get getAll:Category:create update getAll:Group:create update get getAll:UserGroup:add remove:Post:create update get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "84717a95-a963-4bf8-9398-1b47ae0ddea8" + }, + { + "parameters": { + "resource": "category", + "name": "=Category{{Date.now()}}", + "color": "FF6D5A" + }, + "name": "Discourse", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "1f50403d-2276-4adb-827d-b7c4259f4966" + }, + { + "parameters": { + "resource": "category", + "operation": "update", + "categoryId": "={{$node[\"Discourse\"].json[\"id\"]}}", + "name": "=Updated{{$node[\"Discourse\"].json[\"name\"]}}", + "updateFields": {} + }, + "name": "Discourse1", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [650, 250], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "1719b47a-1de6-470f-a6f5-a92b8bc4c7d2" + }, + { + "parameters": { + "resource": "category", + "operation": "getAll", + "limit": 1 + }, + "name": "Discourse2", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [800, 250], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "dcddf8d2-7e35-4075-9302-11c69187ac8a" + }, + { + "parameters": { + "resource": "group", + "name": "=Group{{Date.now()}}" + }, + "name": "Discourse3", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [500, 410], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "a7c4475b-bf7c-4660-a402-0d8f28237caf" + }, + { + "parameters": { + "resource": "group", + "operation": "update", + "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}", + "name": "=Up{{$node[\"Discourse3\"].json[\"name\"]}}" + }, + "name": "Discourse4", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [650, 410], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "c0f711d4-45e0-4f3e-add9-982e643294c9" + }, + { + "parameters": { + "resource": "group", + "operation": "get", + "name": "=Up{{$node[\"Discourse3\"].json[\"name\"]}}" + }, + "name": "Discourse5", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [800, 410], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "4c795130-79c3-4f7d-982d-25b7c70b9e0e" + }, + { + "parameters": { + "resource": "group", + "operation": "getAll", + "limit": 1 + }, + "name": "Discourse6", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [950, 410], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "f25ab7e3-e2fb-45e5-871f-d3770301b03f" + }, + { + "parameters": { + "title": "=Post {{Date.now()}}", + "content": "=Content {{(new Date()).toString()}}", + "additionalFields": {} + }, + "name": "Discourse7", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [500, 710], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "854b71d1-dd7c-4d89-b9cf-4a583803907f" + }, + { + "parameters": { + "operation": "update", + "postId": "={{$node[\"Discourse7\"].json[\"id\"]}}", + "content": "=updated{{$node[\"Discourse7\"].json[\"cooked\"]}}", + "updateFields": {} + }, + "name": "Discourse8", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [650, 710], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "747331c5-f73a-4ae4-888f-559d83aa03ca" + }, + { + "parameters": { + "operation": "get", + "postId": "={{$node[\"Discourse7\"].json[\"id\"]}}" + }, + "name": "Discourse9", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [800, 710], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "3f9bb0d0-7a38-452c-a717-080fc9e75404" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Discourse10", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [950, 710], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "29df1627-7bc8-4968-8df3-5cfb7566e626" + }, + { + "parameters": { + "resource": "user", + "name": "=User{{Math.round(Math.random()*1000)}}", + "email": "=fake{{Date.now()}}@test.com", + "username": "={{$node[\"Set\"].json[\"username\"]}}", + "password": "=A{{Date.now()}}Z", + "additionalFields": { + "active": true, + "approved": true + } + }, + "name": "Discourse11", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [500, 100], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "notes": "IGNORED_PROPERTIES=errors,values,is_developer,active,user_id", + "id": "731fa606-fcdd-4920-ac0c-ba357877b20f" + }, + { + "parameters": { + "resource": "user", + "operation": "get", + "username": "={{$node[\"Set\"].json[\"username\"]}}" + }, + "name": "Discourse12", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [650, 100], + "alwaysOutputData": true, + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "continueOnFail": true, + "id": "33d82113-445b-4a03-ac01-c921318a1d6c" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "flag": "active", + "limit": 1 + }, + "name": "Discourse13", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [800, 100], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "38e8bf81-979b-4b0d-bf78-c8347366e008" + }, + { + "parameters": { + "resource": "userGroup", + "usernames": "nodeqa,", + "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}" + }, + "name": "Discourse14", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [650, 560], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "620970bb-377a-4ae5-9ad9-be380be5fbbd" + }, + { + "parameters": { + "resource": "userGroup", + "operation": "remove", + "usernames": "nodeqa,", + "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}" + }, + "name": "Discourse15", + "type": "n8n-nodes-base.discourse", + "typeVersion": 1, + "position": [800, 560], + "credentials": { + "discourseApi": { + "id": "153", + "name": "Discourse API" + } + }, + "id": "54683239-ffe0-4360-a276-36cdd22aa272" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "username", + "value": "=Username{{Math.round(Math.random()*1000)}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [360, 100], + "id": "9be1116c-5e9e-491d-8ab1-038416cf9560" + } + ], + "connections": { + "Discourse": { + "main": [ + [ + { + "node": "Discourse1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse1": { + "main": [ + [ + { + "node": "Discourse2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Discourse", + "type": "main", + "index": 0 + }, + { + "node": "Discourse3", + "type": "main", + "index": 0 + }, + { + "node": "Discourse7", + "type": "main", + "index": 0 + }, + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse3": { + "main": [ + [ + { + "node": "Discourse4", + "type": "main", + "index": 0 + }, + { + "node": "Discourse14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse4": { + "main": [ + [ + { + "node": "Discourse5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse5": { + "main": [ + [ + { + "node": "Discourse6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse7": { + "main": [ + [ + { + "node": "Discourse8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse8": { + "main": [ + [ + { + "node": "Discourse9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse9": { + "main": [ + [ + { + "node": "Discourse10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse14": { + "main": [ + [ + { + "node": "Discourse15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse11": { + "main": [ + [ + { + "node": "Discourse12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Discourse12": { + "main": [ + [ + { + "node": "Discourse13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Discourse11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/191.json b/packages/testing/playwright/test-workflows/workflows/191.json new file mode 100644 index 0000000000..10e2355908 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/191.json @@ -0,0 +1,142 @@ +{ + "createdAt": "2021-04-30T07:16:09.288Z", + "updatedAt": "2021-04-30T07:16:09.288Z", + "id": "191", + "name": "Mailerlite:Subscriber:create get update getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c998f9cf-a589-4a12-8f24-c5ad324ba4ad" + }, + { + "parameters": { + "email": "=fake{{Date.now()}}@test.com", + "additionalFields": {} + }, + "name": "MailerLite", + "type": "n8n-nodes-base.mailerLite", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "mailerLiteApi": { + "id": "154", + "name": "Mailer Lite API creds" + } + }, + "id": "4de4bbd8-1214-4d0d-81fa-879332f6bca5" + }, + { + "parameters": { + "operation": "get", + "subscriberId": "={{$node[\"MailerLite\"].json[\"email\"]}}" + }, + "name": "MailerLite1", + "type": "n8n-nodes-base.mailerLite", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "mailerLiteApi": { + "id": "154", + "name": "Mailer Lite API creds" + } + }, + "id": "d539fbfb-0228-4101-9e31-493abab14049" + }, + { + "parameters": { + "operation": "update", + "subscriberId": "={{$node[\"MailerLite\"].json[\"email\"]}}", + "updateFields": { + "name": "=UpdatedName{{Date.now()}}" + } + }, + "name": "MailerLite2", + "type": "n8n-nodes-base.mailerLite", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "mailerLiteApi": { + "id": "154", + "name": "Mailer Lite API creds" + } + }, + "id": "a56e6d61-cab2-4556-8d6d-e2f1f549c9d0" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "MailerLite3", + "type": "n8n-nodes-base.mailerLite", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "mailerLiteApi": { + "id": "154", + "name": "Mailer Lite API creds" + } + }, + "id": "6083faa2-8837-49df-8eac-3515986418b2" + } + ], + "connections": { + "MailerLite": { + "main": [ + [ + { + "node": "MailerLite1", + "type": "main", + "index": 0 + } + ] + ] + }, + "MailerLite1": { + "main": [ + [ + { + "node": "MailerLite2", + "type": "main", + "index": 0 + } + ] + ] + }, + "MailerLite2": { + "main": [ + [ + { + "node": "MailerLite3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "MailerLite", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/192.json b/packages/testing/playwright/test-workflows/workflows/192.json new file mode 100644 index 0000000000..d2aadb6beb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/192.json @@ -0,0 +1,590 @@ +{ + "createdAt": "2021-04-30T08:31:10.410Z", + "updatedAt": "2021-04-30T08:46:44.441Z", + "id": "192", + "name": "Mattermost:Channel:create addUser members statistics delete restore:Message:post postEphemeral delete:Reaction:create getAll delete:User:create getById getByEmail getAll invite deactive", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "f0a6807e-f707-401a-a50c-7ef643be9447" + }, + { + "parameters": { + "resource": "channel", + "teamId": "y1p853gfspdrxre5oextbii7wh", + "displayName": "=TestChannel{{Date.now()}}", + "channel": "=testchannel{{Date.now()}}" + }, + "name": "Mattermost", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [430, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "adeecdf6-f6ea-4065-b1ec-6273ed507467" + }, + { + "parameters": { + "resource": "channel", + "operation": "addUser", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", + "userId": "4yp7tpa3sbgk9qrf38egttbioo" + }, + "name": "Mattermost1", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [580, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "85887926-1b04-4ed2-a6d5-0627fb9e408f" + }, + { + "parameters": { + "resource": "channel", + "operation": "members", + "teamId": "y1p853gfspdrxre5oextbii7wh", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", + "returnAll": false, + "limit": 1 + }, + "name": "Mattermost2", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1650, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "ad9c7a0c-ff3c-4538-a243-81316472e888" + }, + { + "parameters": { + "resource": "channel", + "operation": "statistics", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" + }, + "name": "Mattermost3", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1800, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "724755bb-157b-43cf-8153-d0ff0a00bb26" + }, + { + "parameters": { + "resource": "channel", + "operation": "delete", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" + }, + "name": "Mattermost4", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1950, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "474eb599-04f2-4e43-a472-b6fd4e94d97e" + }, + { + "parameters": { + "resource": "channel", + "operation": "restore", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" + }, + "name": "Mattermost5", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [2100, 300], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "46fb131b-3338-4e49-a9f8-85130fe56e17" + }, + { + "parameters": { + "resource": "channel", + "operation": "delete", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" + }, + "name": "Mattermost6", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [2240, 190], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "10595228-5484-4c14-bbb2-429a52a5d2c9" + }, + { + "parameters": { + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", + "message": "=Message{{Date.now()}}", + "attachments": [], + "otherOptions": {} + }, + "name": "Mattermost7", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [730, 450], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "a48c3b43-1402-40cd-ad28-dfa306c1e17c" + }, + { + "parameters": { + "operation": "postEphemeral", + "userId": "4yp7tpa3sbgk9qrf38egttbioo", + "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", + "message": "=EpheMessage{{Date.now()}}" + }, + "name": "Mattermost8", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [900, 450], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "84efb0d3-0dd2-4942-b188-3e4bf1e258b3" + }, + { + "parameters": { + "operation": "delete", + "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}" + }, + "name": "Mattermost9", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1500, 450], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "d1a5ed6b-2eaf-434c-9bac-de823f6112c6" + }, + { + "parameters": { + "resource": "reaction", + "userId": "fo4frgcntiy6jfc63wor76kxpy", + "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", + "emojiName": "rocket" + }, + "name": "Mattermost10", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1050, 550], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "5b0cedd2-5bfd-4a46-ae99-7eecfb3ab70b" + }, + { + "parameters": { + "resource": "reaction", + "operation": "getAll", + "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", + "returnAll": false, + "limit": 1 + }, + "name": "Mattermost11", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1200, 550], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "345bbd7e-f443-45be-bec2-016b0aa64758" + }, + { + "parameters": { + "resource": "reaction", + "operation": "delete", + "userId": "fo4frgcntiy6jfc63wor76kxpy", + "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", + "emojiName": "rocket" + }, + "name": "Mattermost12", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1350, 550], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "e3e339f3-5aae-4b43-b227-aa1ee65700fb" + }, + { + "parameters": { + "resource": "user", + "operation": "create", + "username": "=Username{{Date.now()}}", + "authService": "email", + "email": "=fake{{Date.now()}}@test.com", + "password": "=a{{Math.round(Math.random()*1000000)}}z", + "additionalFields": {} + }, + "name": "Mattermost13", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [440, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "bd6fa681-3999-4bee-ab30-29ab39bc0a67" + }, + { + "parameters": { + "resource": "user", + "operation": "getById", + "userIds": "={{$node[\"Mattermost13\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Mattermost14", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "5cd54641-5d32-48a7-97c8-8bd5f7cdd22e" + }, + { + "parameters": { + "resource": "user", + "operation": "getByEmail", + "email": "={{$node[\"Mattermost13\"].json[\"email\"]}}" + }, + "name": "Mattermost15", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "239a7d42-4b04-401a-a4f2-8818d904e223" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "returnAll": false, + "limit": 1, + "additionalFields": {} + }, + "name": "Mattermost16", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [900, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "438a00e9-77fb-4d53-903f-3e67c5a3e8d8" + }, + { + "parameters": { + "resource": "user", + "operation": "invite", + "teamId": "y1p853gfspdrxre5oextbii7wh", + "emails": "={{$node[\"Mattermost13\"].json[\"email\"]}}" + }, + "name": "Mattermost17", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1050, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "59055891-8e15-4c74-8832-5a3a8db69b58" + }, + { + "parameters": { + "resource": "user", + "operation": "deactive", + "userId": "={{$node[\"Mattermost13\"].json[\"id\"]}}" + }, + "name": "Mattermost18", + "type": "n8n-nodes-base.mattermost", + "typeVersion": 1, + "position": [1200, 150], + "credentials": { + "mattermostApi": { + "id": "155", + "name": "Mattermost API creds" + } + }, + "id": "0a74598f-31d7-4011-a447-72d092178f02" + } + ], + "connections": { + "Mattermost": { + "main": [ + [ + { + "node": "Mattermost1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost1": { + "main": [ + [ + { + "node": "Mattermost7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost2": { + "main": [ + [ + { + "node": "Mattermost3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost3": { + "main": [ + [ + { + "node": "Mattermost4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost4": { + "main": [ + [ + { + "node": "Mattermost5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost5": { + "main": [ + [ + { + "node": "Mattermost6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Mattermost", + "type": "main", + "index": 0 + }, + { + "node": "Mattermost13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost7": { + "main": [ + [ + { + "node": "Mattermost8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost9": { + "main": [ + [ + { + "node": "Mattermost2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost8": { + "main": [ + [ + { + "node": "Mattermost10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost10": { + "main": [ + [ + { + "node": "Mattermost11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost11": { + "main": [ + [ + { + "node": "Mattermost12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost12": { + "main": [ + [ + { + "node": "Mattermost9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost13": { + "main": [ + [ + { + "node": "Mattermost14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost14": { + "main": [ + [ + { + "node": "Mattermost15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost15": { + "main": [ + [ + { + "node": "Mattermost16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost16": { + "main": [ + [ + { + "node": "Mattermost17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Mattermost17": { + "main": [ + [ + { + "node": "Mattermost18", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/193.json b/packages/testing/playwright/test-workflows/workflows/193.json new file mode 100644 index 0000000000..9b6ae0a654 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/193.json @@ -0,0 +1,141 @@ +{ + "createdAt": "2021-04-30T10:29:23.378Z", + "updatedAt": "2021-04-30T10:29:23.378Z", + "id": "193", + "name": "ChargeBee:Customer:create:Invoice:list pdfUrl", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0bd35ca2-b8f6-4357-9315-f2f1d91289ae" + }, + { + "parameters": { + "resource": "customer", + "properties": { + "id": "=Customer{{Date.now()}}", + "first_name": "=FirstName{{Date.now()}}" + } + }, + "name": "Chargebee", + "type": "n8n-nodes-base.chargebee", + "typeVersion": 1, + "position": [510, 270], + "credentials": { + "chargebeeApi": { + "id": "156", + "name": "Chargebee API creds" + } + }, + "id": "5fe5d283-a430-4963-8fb1-1954889f2682" + }, + { + "parameters": { + "maxResults": 1 + }, + "name": "Chargebee1", + "type": "n8n-nodes-base.chargebee", + "typeVersion": 1, + "position": [510, 420], + "credentials": { + "chargebeeApi": { + "id": "156", + "name": "Chargebee API creds" + } + }, + "id": "7a957a3b-449c-4b38-b9aa-ecc8f67dc431" + }, + { + "parameters": { + "operation": "pdfUrl", + "invoiceId": "={{$node[\"Chargebee1\"].json[\"id\"]}}" + }, + "name": "Chargebee2", + "type": "n8n-nodes-base.chargebee", + "typeVersion": 1, + "position": [640, 420], + "credentials": { + "chargebeeApi": { + "id": "156", + "name": "Chargebee API creds" + } + }, + "id": "484868c1-c294-4998-83cc-7b698d7f77ab" + }, + { + "parameters": { + "resource": "subscription", + "operation": "cancel" + }, + "name": "Chargebee3", + "type": "n8n-nodes-base.chargebee", + "typeVersion": 1, + "position": [520, 120], + "credentials": { + "chargebeeApi": { + "id": "156", + "name": "Chargebee API creds" + } + }, + "disabled": true, + "id": "1dd03d89-9883-46d6-923b-bff5c8f40af9" + }, + { + "parameters": { + "resource": "subscription" + }, + "name": "Chargebee4", + "type": "n8n-nodes-base.chargebee", + "typeVersion": 1, + "position": [670, 120], + "credentials": { + "chargebeeApi": { + "id": "156", + "name": "Chargebee API creds" + } + }, + "disabled": true, + "id": "08be587e-e655-400a-b1d1-e0f637f7c415" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Chargebee", + "type": "main", + "index": 0 + }, + { + "node": "Chargebee1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Chargebee1": { + "main": [ + [ + { + "node": "Chargebee2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/194.json b/packages/testing/playwright/test-workflows/workflows/194.json new file mode 100644 index 0000000000..773f602250 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/194.json @@ -0,0 +1,113 @@ +{ + "createdAt": "2021-04-30T10:58:10.188Z", + "updatedAt": "2021-04-30T10:58:10.188Z", + "id": "194", + "name": "Mailjet:Email:send sendTemplate", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0a7bd7bf-38ad-4d4f-9e74-390a5a008663" + }, + { + "parameters": { + "operation": "sendTemplate", + "subject": "test", + "fromEmail": "node8qa@gmail.com", + "toEmail": "node8qa@gmail.com", + "templateId": "2850185", + "additionalFields": {} + }, + "name": "Mailjet", + "type": "n8n-nodes-base.mailjet", + "typeVersion": 1, + "position": [480, 240], + "credentials": { + "mailjetEmailApi": { + "id": "157", + "name": "Mailjet Email API creds" + } + }, + "id": "ad66d136-3fcc-4173-871e-545e451c3fdb" + }, + { + "parameters": { + "fromEmail": "node8qa@gmail.com", + "toEmail": "node8qa@gmail.com", + "subject": "test", + "text": "test", + "additionalFields": {} + }, + "name": "Mailjet1", + "type": "n8n-nodes-base.mailjet", + "typeVersion": 1, + "position": [620, 240], + "credentials": { + "mailjetEmailApi": { + "id": "157", + "name": "Mailjet Email API creds" + } + }, + "id": "9a786724-7be7-4cc8-bac6-f168b1afa8b7" + }, + { + "parameters": { + "resource": "sms", + "subject": "test", + "text": "test" + }, + "name": "Mailjet2", + "type": "n8n-nodes-base.mailjet", + "typeVersion": 1, + "position": [480, 390], + "credentials": { + "mailjetSmsApi": { + "id": "158", + "name": "Mailjet SMS API creds" + } + }, + "disabled": true, + "id": "20d1d0dd-e801-41c9-a1b1-1aae62a2a1bf" + } + ], + "connections": { + "Mailjet": { + "main": [ + [ + { + "node": "Mailjet1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Mailjet", + "type": "main", + "index": 0 + }, + { + "node": "Mailjet2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/195.json b/packages/testing/playwright/test-workflows/workflows/195.json new file mode 100644 index 0000000000..f013d8e59a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/195.json @@ -0,0 +1,209 @@ +{ + "createdAt": "2021-05-03T07:34:19.371Z", + "updatedAt": "2021-05-03T07:34:19.371Z", + "id": "195", + "name": "Kitemaker:Organization:get:Space:getAll:User:getAll:WorkItem:create get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "ad2433c4-6d81-4195-a812-f036e3f63181" + }, + { + "parameters": { + "resource": "organization" + }, + "name": "Kitemaker", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "3714c961-e9eb-4c84-b712-8e30572a0b71" + }, + { + "parameters": { + "resource": "space", + "limit": 1 + }, + "name": "Kitemaker1", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "1e1fb5db-906c-4b93-a411-dfe137207a51" + }, + { + "parameters": { + "resource": "user", + "limit": 1 + }, + "name": "Kitemaker2", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "ab77571b-c9e8-478a-bb3d-e3cda0e7efee" + }, + { + "parameters": { + "operation": "create", + "title": "=WorkItem{{Date.now()}}", + "statusId": "0f42cd20f9617405", + "additionalFields": {} + }, + "name": "Kitemaker3", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [450, 600], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "67de6dc9-c5c6-464e-b92d-64e839f7ae57" + }, + { + "parameters": { + "workItemId": "={{$node[\"Kitemaker3\"].json[\"id\"]}}" + }, + "name": "Kitemaker4", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [600, 600], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "623c86bc-c0e6-4974-aede-669fd25b3e49" + }, + { + "parameters": { + "operation": "getAll", + "spaceId": "0f42cd20b0617400", + "limit": 1 + }, + "name": "Kitemaker5", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [750, 600], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "0282eaab-cfe7-46ab-b0b1-958789c39eb6" + }, + { + "parameters": { + "operation": "update", + "workItemId": "={{$node[\"Kitemaker3\"].json[\"id\"]}}", + "updateFields": { + "statusId": "0f42cd20f9617401", + "title": "=Updated{{$node[\"Kitemaker3\"].json[\"title\"]}}" + } + }, + "name": "Kitemaker6", + "type": "n8n-nodes-base.kitemaker", + "typeVersion": 1, + "position": [900, 600], + "credentials": { + "kitemakerApi": { + "id": "159", + "name": "Kitemaker API creds" + } + }, + "id": "af8e0085-242b-4d5c-9efd-ded439b41aba" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Kitemaker1", + "type": "main", + "index": 0 + }, + { + "node": "Kitemaker", + "type": "main", + "index": 0 + }, + { + "node": "Kitemaker2", + "type": "main", + "index": 0 + }, + { + "node": "Kitemaker3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Kitemaker3": { + "main": [ + [ + { + "node": "Kitemaker4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Kitemaker4": { + "main": [ + [ + { + "node": "Kitemaker5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Kitemaker5": { + "main": [ + [ + { + "node": "Kitemaker6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/196.json b/packages/testing/playwright/test-workflows/workflows/196.json new file mode 100644 index 0000000000..7b38f2a266 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/196.json @@ -0,0 +1,1108 @@ +{ + "createdAt": "2021-05-04T09:29:11.382Z", + "updatedAt": "2021-05-04T10:32:51.938Z", + "id": "196", + "name": "QuickBooks:Bill:create get update getAll delete:Item:getAll:get:Vendor:create get getAll update:Employee:create get update getAll:Customer:create get update getAll:Estimate:create get update getAll send delete:Invoice:create get update getAll send delete:Payment:create get update getAll send delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e0188874-3b1d-4dfb-881d-74e79e543722" + }, + { + "parameters": { + "operation": "create", + "displayName": "=Customer{{Date.now()}}", + "additionalFields": {} + }, + "name": "QuickBooks", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 390], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "689e8fe0-7b26-4a93-926e-221bd869ed8c" + }, + { + "parameters": { + "customerId": "={{$node[\"QuickBooks\"].json[\"Id\"]}}" + }, + "name": "QuickBooks1", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 390], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "39187a1b-c5f9-4a8e-a60c-ae87771be5eb" + }, + { + "parameters": { + "operation": "update", + "customerId": "={{$node[\"QuickBooks\"].json[\"Id\"]}}", + "updateFields": { + "Active": false + } + }, + "name": "QuickBooks2", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 390], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "4b0c15be-a7fa-440f-918a-3d197305640e" + }, + { + "parameters": { + "operation": "getAll", + "filters": {} + }, + "name": "QuickBooks3", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 390], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "9219c2cd-e3df-4afd-9a49-ca83c2b7b1ce" + }, + { + "parameters": { + "resource": "employee", + "operation": "create", + "FamilyName": "=Fname{{Date.now()}}", + "GivenName": "=Name{{Date.now()}}", + "additionalFields": {} + }, + "name": "QuickBooks4", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 240], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "e66647c5-fdd7-4d10-b029-033cd7a71076" + }, + { + "parameters": { + "resource": "employee", + "employeeId": "={{$node[\"QuickBooks4\"].json[\"Id\"]}}" + }, + "name": "QuickBooks5", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 240], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "6d100355-e163-43ab-affa-850a3e547f0e" + }, + { + "parameters": { + "resource": "employee", + "operation": "update", + "employeeId": "={{$node[\"QuickBooks4\"].json[\"Id\"]}}", + "updateFields": { + "Active": false + } + }, + "name": "QuickBooks6", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 240], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "f53f7640-f512-4beb-beb1-61edbf24e164" + }, + { + "parameters": { + "resource": "employee", + "operation": "getAll", + "filters": {} + }, + "name": "QuickBooks7", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 240], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "489b4d87-a2b1-4111-a165-b36762dc6de2" + }, + { + "parameters": { + "resource": "estimate", + "operation": "create", + "CustomerRef": "1", + "Line": [ + { + "itemId": "3", + "DetailType": "SalesItemLineDetail", + "Amount": 3, + "Description": "test" + } + ], + "additionalFields": {} + }, + "name": "QuickBooks8", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "f47dca6a-81eb-41ab-bf6f-34993f8333bc" + }, + { + "parameters": { + "resource": "estimate", + "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}" + }, + "name": "QuickBooks9", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "dc22140e-affa-4da1-9636-c0bd04987c39" + }, + { + "parameters": { + "resource": "estimate", + "operation": "update", + "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}", + "updateFields": { + "BillEmail": "fake@test.com" + } + }, + "name": "QuickBooks10", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "bf4a83d1-dfbb-4a38-8140-fefe9ee06195" + }, + { + "parameters": { + "resource": "estimate", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks11", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "8403016a-222f-4f05-80cf-2982bdeac426" + }, + { + "parameters": { + "resource": "estimate", + "operation": "send", + "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}", + "email": "fake@test.com" + }, + "name": "QuickBooks12", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1050, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "c00d2656-596b-4a09-ae82-09d5c71dcaab" + }, + { + "parameters": { + "resource": "estimate", + "operation": "delete", + "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}" + }, + "name": "QuickBooks13", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1200, 540], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "0b7f754f-a7d9-49fe-b629-3c0cf1b1b7f5" + }, + { + "parameters": { + "resource": "invoice", + "operation": "create", + "CustomerRef": "5", + "Line": [ + { + "DetailType": "SalesItemLineDetail", + "itemId": "7", + "Amount": 0, + "Description": "test" + } + ], + "additionalFields": {} + }, + "name": "QuickBooks14", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "c5d80817-5c5a-4a78-bc72-4ca29b4757f4" + }, + { + "parameters": { + "resource": "invoice", + "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}" + }, + "name": "QuickBooks15", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "6ad6231c-b645-4e00-b61f-ab4031b9f4f2" + }, + { + "parameters": { + "resource": "invoice", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks16", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "88333b7b-f905-4c83-960e-3eb650f17d00" + }, + { + "parameters": { + "resource": "invoice", + "operation": "update", + "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}", + "updateFields": { + "CustomerMemo": "test" + } + }, + "name": "QuickBooks17", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "e625f0d1-a0bb-4f8d-83b2-9dc62d3a526d" + }, + { + "parameters": { + "resource": "invoice", + "operation": "send", + "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}", + "email": "fake@test.com" + }, + "name": "QuickBooks18", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1050, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "59851dc6-1aee-4c49-9cb1-3447df019be1" + }, + { + "parameters": { + "resource": "invoice", + "operation": "delete", + "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}" + }, + "name": "QuickBooks19", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1190, 690], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "68dda52d-9455-491e-b7b9-8dc10d6e8460" + }, + { + "parameters": { + "resource": "item", + "itemId": "={{$node[\"QuickBooks21\"].json[\"Id\"]}}" + }, + "name": "QuickBooks22", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, -60], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "98c8ad9c-5053-4376-9dc0-95545e6f3d23" + }, + { + "parameters": { + "resource": "item", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks21", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, -60], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "e1b294da-dea1-4318-a487-390aa95c9287" + }, + { + "parameters": { + "resource": "payment", + "operation": "create", + "CustomerRef": "1", + "TotalAmt": 50, + "additionalFields": {} + }, + "name": "QuickBooks20", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "aa58f15e-a22b-402c-8af3-39aeea6de874" + }, + { + "parameters": { + "resource": "payment", + "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}" + }, + "name": "QuickBooks23", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "f0226998-0489-4b64-ba0e-c06e13e75a9d" + }, + { + "parameters": { + "resource": "payment", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks24", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "49554443-c484-4f7b-ad8f-8694e3163150" + }, + { + "parameters": { + "resource": "payment", + "operation": "update", + "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}", + "updateFields": { + "TxnDate": "2021-04-30T22:00:00.000Z" + } + }, + "name": "QuickBooks25", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "65fb3536-c40a-48a4-9e6a-ce4d4f24628a" + }, + { + "parameters": { + "resource": "payment", + "operation": "send", + "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}", + "email": "fake@test.com" + }, + "name": "QuickBooks26", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1050, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "33f3a73e-799e-4dc0-a8fc-5c9aa492a953" + }, + { + "parameters": { + "resource": "payment", + "operation": "delete", + "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}" + }, + "name": "QuickBooks27", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1200, 840], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "fb87ee2d-7fad-4cbe-82a4-aede0b3462c1" + }, + { + "parameters": { + "resource": "vendor", + "operation": "create", + "displayName": "=Vendor{{Date.now()}}", + "additionalFields": {} + }, + "name": "QuickBooks28", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, 90], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "09a16143-613f-4812-926a-acacbefb63d1" + }, + { + "parameters": { + "resource": "vendor", + "vendorId": "={{$node[\"QuickBooks28\"].json[\"Id\"]}}" + }, + "name": "QuickBooks29", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, 90], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "ec53abeb-83ad-4cdb-b419-56eff8ed7de7" + }, + { + "parameters": { + "resource": "vendor", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks30", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, 90], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "f3c16a5c-83c6-410c-b382-1b22dd7404e1" + }, + { + "parameters": { + "resource": "vendor", + "operation": "update", + "vendorId": "={{$node[\"QuickBooks28\"].json[\"Id\"]}}", + "updateFields": { + "Active": false + } + }, + "name": "QuickBooks31", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, 90], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "0bf8d78c-d02e-4b3c-a1fc-98a7afe4f7b9" + }, + { + "parameters": { + "resource": "bill", + "operation": "create", + "VendorRef": "46", + "Line": [ + { + "DetailType": "AccountBasedExpenseLineDetail", + "Amount": 152, + "Description": "test", + "accountId": "78" + } + ], + "additionalFields": {} + }, + "name": "QuickBooks37", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [450, -210], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "2f7af95b-cbb8-4272-bdaf-64cd9906ae47" + }, + { + "parameters": { + "resource": "bill", + "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}" + }, + "name": "QuickBooks38", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [600, -210], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "28dbf9b4-288b-4726-8796-718e9b586cca" + }, + { + "parameters": { + "resource": "bill", + "operation": "update", + "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}", + "updateFields": { + "DueDate": "2021-04-30T22:00:00.000Z" + } + }, + "name": "QuickBooks39", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [750, -210], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "2843f656-3ee4-4e51-a376-315d92f8d9fd" + }, + { + "parameters": { + "resource": "bill", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "QuickBooks40", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [900, -210], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "624d0f96-d465-448b-b9a1-50483479e032" + }, + { + "parameters": { + "resource": "bill", + "operation": "delete", + "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}" + }, + "name": "QuickBooks41", + "type": "n8n-nodes-base.quickbooks", + "typeVersion": 1, + "position": [1050, -210], + "credentials": { + "quickBooksOAuth2Api": { + "id": "160", + "name": "QuickBooks OAuth2 API creds" + } + }, + "id": "0c89671b-1312-46b7-92af-4b879dbd5ff0" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "QuickBooks28", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks21", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks4", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks37", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks8", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks14", + "type": "main", + "index": 0 + }, + { + "node": "QuickBooks20", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks": { + "main": [ + [ + { + "node": "QuickBooks1", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks1": { + "main": [ + [ + { + "node": "QuickBooks2", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks2": { + "main": [ + [ + { + "node": "QuickBooks3", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks4": { + "main": [ + [ + { + "node": "QuickBooks5", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks5": { + "main": [ + [ + { + "node": "QuickBooks6", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks6": { + "main": [ + [ + { + "node": "QuickBooks7", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks8": { + "main": [ + [ + { + "node": "QuickBooks9", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks9": { + "main": [ + [ + { + "node": "QuickBooks10", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks10": { + "main": [ + [ + { + "node": "QuickBooks11", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks11": { + "main": [ + [ + { + "node": "QuickBooks12", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks12": { + "main": [ + [ + { + "node": "QuickBooks13", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks14": { + "main": [ + [ + { + "node": "QuickBooks15", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks15": { + "main": [ + [ + { + "node": "QuickBooks16", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks16": { + "main": [ + [ + { + "node": "QuickBooks17", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks17": { + "main": [ + [ + { + "node": "QuickBooks18", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks18": { + "main": [ + [ + { + "node": "QuickBooks19", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks21": { + "main": [ + [ + { + "node": "QuickBooks22", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks20": { + "main": [ + [ + { + "node": "QuickBooks23", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks23": { + "main": [ + [ + { + "node": "QuickBooks24", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks24": { + "main": [ + [ + { + "node": "QuickBooks25", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks25": { + "main": [ + [ + { + "node": "QuickBooks26", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks26": { + "main": [ + [ + { + "node": "QuickBooks27", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks28": { + "main": [ + [ + { + "node": "QuickBooks29", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks29": { + "main": [ + [ + { + "node": "QuickBooks30", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks30": { + "main": [ + [ + { + "node": "QuickBooks31", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks37": { + "main": [ + [ + { + "node": "QuickBooks38", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks38": { + "main": [ + [ + { + "node": "QuickBooks39", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks39": { + "main": [ + [ + { + "node": "QuickBooks40", + "type": "main", + "index": 0 + } + ] + ] + }, + "QuickBooks40": { + "main": [ + [ + { + "node": "QuickBooks41", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/197.json b/packages/testing/playwright/test-workflows/workflows/197.json new file mode 100644 index 0000000000..7c50f867b5 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/197.json @@ -0,0 +1,129 @@ +{ + "createdAt": "2021-05-06T09:34:45.652Z", + "updatedAt": "2021-05-06T09:39:48.494Z", + "id": "197", + "name": "MQTT:sendMessage", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "850eb506-8c40-4257-92f9-13b39588d01a" + }, + { + "parameters": { + "topic": "TestTopic", + "sendInputData": false, + "message": "=MQTT-message{{Date.now()}}", + "options": { + "qos": 0 + } + }, + "name": "MQTT qos:1", + "type": "n8n-nodes-base.mqtt", + "typeVersion": 1, + "position": [450, 160], + "credentials": { + "mqtt": { + "id": "131", + "name": "MQTT creds" + } + }, + "id": "af2b9c5f-2b44-43d6-852f-436ebfc72c3c" + }, + { + "parameters": { + "topic": "TestTopic", + "sendInputData": false, + "message": "=MQTT-message{{Date.now()}}", + "options": { + "qos": 1 + } + }, + "name": "MQTT1 qos:0", + "type": "n8n-nodes-base.mqtt", + "typeVersion": 1, + "position": [450, 310], + "credentials": { + "mqtt": { + "id": "131", + "name": "MQTT creds" + } + }, + "id": "37d6e4f3-b06b-4bb3-8f68-ca54de4e41a9" + }, + { + "parameters": { + "topic": "TestTopic", + "options": { + "qos": 2 + } + }, + "name": "MQTT2 qos:2", + "type": "n8n-nodes-base.mqtt", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "mqtt": { + "id": "131", + "name": "MQTT creds" + } + }, + "id": "6e4693bb-23e5-4622-aa4f-2e93ce916f86" + }, + { + "parameters": { + "functionCode": "items = [\n {\n json:{\n \"message\":`MQTT-item-message${Date.now()}`\n }\n }\n]\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [450, 450], + "id": "37ef3107-c80c-4bad-a5d6-3d9a349ca76a" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "MQTT qos:1", + "type": "main", + "index": 0 + }, + { + "node": "MQTT1 qos:0", + "type": "main", + "index": 0 + }, + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "MQTT2 qos:2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/198.json b/packages/testing/playwright/test-workflows/workflows/198.json new file mode 100644 index 0000000000..9c42594683 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/198.json @@ -0,0 +1,299 @@ +{ + "createdAt": "2021-05-07T14:37:14.511Z", + "updatedAt": "2021-05-12T17:39:44.046Z", + "id": "198", + "name": "GoogleCloudFirestore:Document:create get upset getAll query delete:Collection:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "68fcd431-1e94-4928-b19a-1749502c6ec5" + }, + { + "parameters": { + "operation": "create", + "projectId": "fixedtestproject", + "collection": "FixedCollection", + "columns": "number,boolean" + }, + "name": "Google Cloud Firestore", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [600, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "d5788046-8872-44f7-83c4-4d1b66480b22" + }, + { + "parameters": { + "values": { + "number": [ + { + "name": "number", + "value": 3 + } + ], + "boolean": [ + { + "name": "boolean", + "value": true + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 250], + "id": "b4b9cc8e-7496-40ed-ad8a-eb02421546e0" + }, + { + "parameters": { + "projectId": "fixedtestproject", + "collection": "FixedCollection", + "documentId": "={{$node[\"Google Cloud Firestore\"].json[\"_id\"]}}" + }, + "name": "Google Cloud Firestore1", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [800, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "56bff4bf-504c-4dca-bcef-0dbd4f881303" + }, + { + "parameters": { + "operation": "upsert", + "projectId": "fixedtestproject", + "collection": "FixedCollection", + "updateKey": "={{$node[\"Google Cloud Firestore1\"].json[\"_id\"]}}", + "columns": "number" + }, + "name": "Google Cloud Firestore2", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [1100, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "fe3abd23-d891-4bcf-aa5e-64e9a0961332" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "number": [ + { + "name": "number", + "value": 100 + } + ], + "boolean": [ + { + "name": "boolean", + "value": true + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [950, 250], + "id": "3bbbae32-f56a-4252-8e4b-4f0f4854fe22" + }, + { + "parameters": { + "operation": "getAll", + "projectId": "fixedtestproject", + "collection": "FixedCollection", + "limit": 1 + }, + "name": "Google Cloud Firestore3", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [1250, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "77e69936-c4c5-4aee-918b-1246e25e0446" + }, + { + "parameters": { + "operation": "query", + "projectId": "fixedtestproject", + "query": "{\n \"structuredQuery\":{\n \"where\":{\n \"fieldFilter\":{\n \"field\":{\n \"fieldPath\": \"number\"\n },\n \"op\":\"EQUAL\",\n \"value\":{\n \"integerValue\": 100\n }\n }\n },\n \"from\":[\n {\n \"collectionId\":\"FixedCollection\"\n }\n ]\n }\n}" + }, + "name": "Google Cloud Firestore4", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [1450, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "0f0d74da-fbc7-4078-9462-d8c40322b9e7" + }, + { + "parameters": { + "resource": "collection", + "projectId": "fixedtestproject", + "limit": 1 + }, + "name": "Google Cloud Firestore5", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [450, 400], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "bda9b450-d8d2-46a0-b3f2-d38fe8bfb6e8" + }, + { + "parameters": { + "operation": "delete", + "projectId": "fixedtestproject", + "collection": "FixedCollection", + "documentId": "={{$node[\"Google Cloud Firestore\"].json[\"_id\"]}}" + }, + "name": "Google Cloud Firestore6", + "type": "n8n-nodes-base.googleFirebaseCloudFirestore", + "typeVersion": 1, + "position": [1650, 250], + "credentials": { + "googleFirebaseCloudFirestoreOAuth2Api": { + "id": "167", + "name": "Google Firebase Cloud Firestore OAuth2 API creds" + } + }, + "id": "62f8a14b-34de-48c6-87d9-6292203427e1" + } + ], + "connections": { + "Google Cloud Firestore": { + "main": [ + [ + { + "node": "Google Cloud Firestore1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Google Cloud Firestore", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Cloud Firestore1": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Google Cloud Firestore2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Cloud Firestore2": { + "main": [ + [ + { + "node": "Google Cloud Firestore3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Cloud Firestore3": { + "main": [ + [ + { + "node": "Google Cloud Firestore4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Google Cloud Firestore5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Cloud Firestore4": { + "main": [ + [ + { + "node": "Google Cloud Firestore6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/199.json b/packages/testing/playwright/test-workflows/workflows/199.json new file mode 100644 index 0000000000..2c351d45d9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/199.json @@ -0,0 +1,60 @@ +{ + "createdAt": "2021-05-10T11:24:19.202Z", + "updatedAt": "2021-05-10T13:18:56.388Z", + "id": "199", + "name": "MailCheck:Email:check", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "77ccc40b-307c-479e-882d-6f2700b67b8d" + }, + { + "parameters": { + "email": "jan@n8n.io" + }, + "name": "Mailcheck", + "type": "n8n-nodes-base.mailcheck", + "typeVersion": 1, + "position": [470, 300], + "credentials": { + "mailcheckApi": { + "id": "169", + "name": "Mailcheck API creds" + } + }, + "id": "01a36e75-0cbd-4536-896e-1fe4cf9a8179" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Mailcheck", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "timezone": "Europe/Berlin" + }, + "staticData": { + "node:Clockify Trigger": { + "userId": "60335ad2f24e660123d7fdeb", + "lastTimeChecked": "2021-05-10T14:49:24Z" + } + }, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/20.json b/packages/testing/playwright/test-workflows/workflows/20.json new file mode 100644 index 0000000000..0f0c733e00 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/20.json @@ -0,0 +1,526 @@ +{ + "createdAt": "2021-02-16T15:33:11.177Z", + "updatedAt": "2021-06-04T17:17:22.109Z", + "id": "20", + "name": "Hubspot:Contact:upsert getall search getRecentlyCreatedUpdated get delete:Company:getall searchByDomain getRecentlyCreated update getRecentlyModified delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d8cbfb90-51ba-45b9-a701-1d278992b7d5" + }, + { + "parameters": { + "resource": "contact", + "email": "nodeqa@n8n.io", + "additionalFields": {} + }, + "name": "Hubspot", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [410, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "notes": "IGNORED_PROPERTIES=associated-company", + "id": "6b417cab-bf37-4b57-8fdf-24f011106618" + }, + { + "parameters": { + "resource": "contact", + "operation": "getRecentlyCreatedUpdated", + "limit": 1, + "filters": {} + }, + "name": "Hubspot1", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1320, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "0be3e59d-9094-4422-a834-bcc945725a75" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Hubspot2", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [710, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "5180a058-b5ff-481b-90aa-421f8609b091" + }, + { + "parameters": { + "resource": "contact", + "operation": "search", + "limit": 1, + "filterGroupsUi": { + "filterGroupsValues": [] + }, + "additionalFields": {} + }, + "name": "Hubspot3", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1000, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "2e18e4b1-d379-4fa4-b9ad-2da493c43a22" + }, + { + "parameters": { + "resource": "contact", + "operation": "delete", + "contactId": "={{$json[\"vid\"]}}" + }, + "name": "Hubspot4", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1880, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "573f1fdf-4d4e-44e4-a086-b1389dab7ff8" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "contactId": "={{$json[\"vid\"]}}", + "additionalFields": {} + }, + "name": "Hubspot5", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1600, 260], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "notes": "IGNORED_PROPERTIES=associated-company", + "id": "ae17da34-808d-4e19-81f1-42546ec64dbc" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1500);\n\nreturn [items[0]];" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1140, 260], + "notesInFlow": true, + "notes": "Limit Contacts to single one", + "id": "702edf3d-4e2e-4091-875f-b477c842802c" + }, + { + "parameters": { + "resource": "company", + "name": "n8n", + "additionalFields": { + "companyDomainName": "n8n.io" + } + }, + "name": "Hubspot6", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [410, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "30467fe0-8ba4-4b71-942e-0cfa7adde3c1" + }, + { + "parameters": { + "resource": "company", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Hubspot7", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [570, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "2d35a462-2a30-4297-a7df-1aca9be285c3" + }, + { + "parameters": { + "resource": "company", + "operation": "getRecentlyCreated", + "limit": 1 + }, + "name": "Hubspot8", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [910, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "98a71897-123f-4c6e-a0c7-ba79e5947823" + }, + { + "parameters": { + "resource": "company", + "operation": "searchByDomain", + "domain": "n8n.io", + "limit": 1, + "options": {} + }, + "name": "Hubspot9", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [740, 430], + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "46d6962d-f16a-4d89-92d6-bce6506f6e58" + }, + { + "parameters": { + "resource": "company", + "operation": "update", + "companyId": "={{$node[\"Hubspot6\"].json[\"companyId\"]}}", + "updateFields": { + "city": "berlin" + } + }, + "name": "Hubspot10", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1060, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "b69304b8-5093-4988-8304-89d3ee8e2c2e" + }, + { + "parameters": { + "resource": "company", + "operation": "getRecentlyModified", + "limit": 1, + "filters": {} + }, + "name": "Hubspot11", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1220, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "c0f52b10-af2e-41d2-a902-6892f14742e6" + }, + { + "parameters": { + "resource": "company", + "operation": "delete", + "companyId": "={{$node[\"Hubspot6\"].json[\"companyId\"]}}" + }, + "name": "Hubspot12", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1390, 430], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "cc00b5ca-2611-472d-89da-4649e12afa89" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [550, 260], + "typeVersion": 1, + "notes": "IGNORED_PROPERTIES=associated-company", + "id": "d8a86813-0d02-4b5d-89f9-41818194c326" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [850, 260], + "typeVersion": 1, + "id": "9276f38e-185a-4844-8764-ef4e91b0bd68" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1480, 260], + "typeVersion": 1, + "id": "ea72ad5a-b5b1-40f3-8f5f-9ac4fb5c37c4" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [1730, 260], + "typeVersion": 1, + "notes": "IGNORED_PROPERTIES=associated-company", + "id": "0a60605e-e573-4386-9fe5-2198a3c838d8" + } + ], + "connections": { + "Hubspot": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot1": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot2": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot3": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Hubspot6", + "type": "main", + "index": 0 + }, + { + "node": "Hubspot", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot5": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Hubspot1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot6": { + "main": [ + [ + { + "node": "Hubspot7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot7": { + "main": [ + [ + { + "node": "Hubspot9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot8": { + "main": [ + [ + { + "node": "Hubspot10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot9": { + "main": [ + [ + { + "node": "Hubspot8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot10": { + "main": [ + [ + { + "node": "Hubspot11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot11": { + "main": [ + [ + { + "node": "Hubspot12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Hubspot2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "Hubspot3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "Hubspot5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "Hubspot4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/200.json b/packages/testing/playwright/test-workflows/workflows/200.json new file mode 100644 index 0000000000..990ed36c16 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/200.json @@ -0,0 +1,1016 @@ +{ + "createdAt": "2021-05-11T07:41:09.199Z", + "updatedAt": "2021-05-11T08:09:44.364Z", + "id": "200", + "name": "Pipedrive:Activity:create get update getAll delete:Deal:create get update duplicate getAll delete:Person:create get update getAll search delete:File:create get download delete:Organization:create get update getAll delete:Note:create get update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "1424805b-9720-4fc3-99a3-96b39b1b2d4c" + }, + { + "parameters": { + "resource": "activity", + "subject": "=Activity{{(new Date).toISOString()}}", + "type": "meeting", + "additionalFields": {} + }, + "name": "Pipedrive", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [500, 200], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "c137d42d-46da-4fea-aa3f-098b56e0828d" + }, + { + "parameters": { + "resource": "activity", + "operation": "get", + "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}" + }, + "name": "Pipedrive1", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [650, 200], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "3f597274-830b-4dcb-b0c6-0f1df94e6e9b" + }, + { + "parameters": { + "resource": "activity", + "operation": "update", + "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}", + "updateFields": { + "done": "1", + "note": "Used for testing", + "subject": "=Updated{{$node[\"Pipedrive\"].json[\"subject\"]}}", + "type": "call" + } + }, + "name": "Pipedrive2", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [800, 200], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "14248e74-036b-4817-92b9-c9f549cb9c4f" + }, + { + "parameters": { + "resource": "activity", + "operation": "getAll", + "limit": 1 + }, + "name": "Pipedrive3", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [950, 200], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "a073500e-83c6-4d69-a205-b053396c213e" + }, + { + "parameters": { + "resource": "activity", + "operation": "delete", + "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}" + }, + "name": "Pipedrive4", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1100, 200], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "25501736-984e-47c8-890e-187307524392" + }, + { + "parameters": { + "title": "=Deal{{(new Date).toISOString()}}", + "additionalFields": { + "status": "open" + } + }, + "name": "Pipedrive5", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [500, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "dfa82f60-7728-4318-9125-229db86ce994" + }, + { + "parameters": { + "operation": "get", + "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" + }, + "name": "Pipedrive6", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [650, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "ddc83c7e-1434-4f19-963b-08e52484dbb6" + }, + { + "parameters": { + "operation": "update", + "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}", + "updateFields": { + "status": "won", + "title": "=Updated{{$node[\"Pipedrive5\"].json[\"title\"]}}" + } + }, + "name": "Pipedrive7", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [800, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "00491412-62f0-45b4-ad3b-27cbac938293" + }, + { + "parameters": { + "operation": "duplicate", + "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" + }, + "name": "Pipedrive8", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "b72444fe-3667-468a-89ef-9bbb6c05ff96" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Pipedrive9", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1100, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "4f5d8819-5573-4214-bdf4-711dd2426277" + }, + { + "parameters": { + "operation": "delete", + "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" + }, + "name": "Pipedrive10", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1250, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "d9540101-e05b-4599-8e26-283e4da6a4bf" + }, + { + "parameters": { + "operation": "delete", + "dealId": "={{$node[\"Pipedrive8\"].json[\"id\"]}}" + }, + "name": "Pipedrive11", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1400, 350], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "967d2d73-6ae2-46e5-9c9c-3325fd47a0f5" + }, + { + "parameters": { + "resource": "file", + "additionalFields": {} + }, + "name": "Pipedrive12", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [800, 500], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "751fb956-96d4-4b31-92c7-34159e7c83d1" + }, + { + "parameters": { + "values": { + "number": [], + "string": [ + { + "name": "file", + "value": "=Testing file" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [500, 500], + "id": "aa58167e-6c9e-4be6-9049-f280204d8eba" + }, + { + "parameters": { + "mode": "jsonToBinary", + "convertAllData": false, + "sourceKey": "file", + "options": { + "fileName": "testFile", + "mimeType": "text" + } + }, + "name": "Move Binary Data", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [650, 500], + "id": "3ba06dd7-c49e-4b72-9785-2e5e3fc01f53" + }, + { + "parameters": { + "resource": "file", + "operation": "get", + "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" + }, + "name": "Pipedrive13", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [950, 500], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "e769e423-dcff-4d51-8200-3c5a3fbe01e2" + }, + { + "parameters": { + "resource": "file", + "operation": "download", + "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" + }, + "name": "Pipedrive14", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1100, 500], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "c973182a-5d43-4a12-92c2-1ece40b66f22" + }, + { + "parameters": { + "resource": "file", + "operation": "delete", + "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" + }, + "name": "Pipedrive15", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1250, 500], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "0d2cac69-6912-4156-8bb5-57c174a53e82" + }, + { + "parameters": { + "resource": "organization", + "name": "=Organization_{{(new Date).toISOString()}}", + "additionalFields": { + "label": 3 + } + }, + "name": "Pipedrive16", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [500, 650], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "45b73830-24ac-486f-b1e1-cfa76d621624" + }, + { + "parameters": { + "resource": "organization", + "operation": "get", + "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" + }, + "name": "Pipedrive17", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [670, 650], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "0fd8d1b6-4851-4c91-b3ea-cf7a2759286e" + }, + { + "parameters": { + "resource": "organization", + "operation": "update", + "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}", + "updateFields": { + "label": 2, + "name": "=Updated{{$node[\"Pipedrive16\"].json[\"name\"]}}", + "visible_to": "3" + } + }, + "name": "Pipedrive18", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [820, 650], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "00c38f10-591e-43b4-8e1e-875383f0846b" + }, + { + "parameters": { + "resource": "organization", + "operation": "getAll", + "limit": 1 + }, + "name": "Pipedrive19", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [970, 650], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "c528c1e6-aee8-46ae-a573-b770d61a5462" + }, + { + "parameters": { + "resource": "organization", + "operation": "delete", + "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" + }, + "name": "Pipedrive20", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1120, 650], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "95f50030-a435-470c-910d-990fd4bde80d" + }, + { + "parameters": { + "resource": "note", + "content": "=Note_{{(new Date).toISOString()}}", + "additionalFields": { + "org_id": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" + } + }, + "name": "Pipedrive21", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [650, 800], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "dcdc4d84-f8c2-4402-bfc9-1b38740bc70a" + }, + { + "parameters": { + "resource": "note", + "operation": "get", + "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}" + }, + "name": "Pipedrive22", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [800, 800], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "4128895d-8656-49fb-a196-099f2ec336a3" + }, + { + "parameters": { + "resource": "note", + "operation": "update", + "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}", + "updateFields": { + "content": "=Updated{{$node[\"Pipedrive21\"].json[\"content\"]}}" + } + }, + "name": "Pipedrive23", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [950, 800], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "d1900e79-4b29-4f56-9110-311ea321dc78" + }, + { + "parameters": { + "resource": "note", + "operation": "getAll", + "additionalFields": {}, + "limit": 1 + }, + "name": "Pipedrive24", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1100, 800], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "64d156ea-828b-42da-88d5-170e48d1b11b" + }, + { + "parameters": { + "resource": "note", + "operation": "delete", + "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}" + }, + "name": "Pipedrive25", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1250, 800], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "40e8dea1-279c-44d6-ae6a-cc79ab5e123b" + }, + { + "parameters": { + "resource": "person", + "name": "=Person_{{(new Date).toISOString()}}", + "additionalFields": { + "label": 1, + "visible_to": "3" + } + }, + "name": "Pipedrive26", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [500, 50], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "c1b68ae7-37ac-42d5-9ff8-43c88223122a" + }, + { + "parameters": { + "resource": "person", + "operation": "get", + "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}" + }, + "name": "Pipedrive27", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [650, 50], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "c9dcd61f-c456-40e8-ace3-05c9e5f961c7" + }, + { + "parameters": { + "resource": "person", + "operation": "update", + "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}", + "updateFields": { + "label": 2, + "name": "=Updated{{$node[\"Pipedrive31302926\"].json[\"first_name\"]}}" + } + }, + "name": "Pipedrive28", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [800, 50], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "04f88fba-4196-400e-9147-760c9253b423" + }, + { + "parameters": { + "resource": "person", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Pipedrive29", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [950, 50], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "2e72dc73-d6f5-4641-bb17-15def44c8481" + }, + { + "parameters": { + "resource": "person", + "operation": "search", + "limit": 1, + "term": "updated", + "additionalFields": {} + }, + "name": "Pipedrive30", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1100, 50], + "alwaysOutputData": true, + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "3b2617a2-e33d-40fa-8e1b-5a7c402a2898" + }, + { + "parameters": { + "resource": "person", + "operation": "delete", + "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}" + }, + "name": "Pipedrive31", + "type": "n8n-nodes-base.pipedrive", + "typeVersion": 1, + "position": [1250, 50], + "credentials": { + "pipedriveApi": { + "id": "171", + "name": "Pipedrive API creds" + } + }, + "id": "094f29de-6d5b-4433-a673-3a5127f8438d" + } + ], + "connections": { + "Pipedrive": { + "main": [ + [ + { + "node": "Pipedrive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive1": { + "main": [ + [ + { + "node": "Pipedrive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive2": { + "main": [ + [ + { + "node": "Pipedrive3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive3": { + "main": [ + [ + { + "node": "Pipedrive4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Pipedrive", + "type": "main", + "index": 0 + }, + { + "node": "Pipedrive5", + "type": "main", + "index": 0 + }, + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Pipedrive16", + "type": "main", + "index": 0 + }, + { + "node": "Pipedrive26", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive5": { + "main": [ + [ + { + "node": "Pipedrive6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive6": { + "main": [ + [ + { + "node": "Pipedrive7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive7": { + "main": [ + [ + { + "node": "Pipedrive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive8": { + "main": [ + [ + { + "node": "Pipedrive9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive9": { + "main": [ + [ + { + "node": "Pipedrive10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive10": { + "main": [ + [ + { + "node": "Pipedrive11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Move Binary Data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Move Binary Data": { + "main": [ + [ + { + "node": "Pipedrive12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive12": { + "main": [ + [ + { + "node": "Pipedrive13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive13": { + "main": [ + [ + { + "node": "Pipedrive14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive14": { + "main": [ + [ + { + "node": "Pipedrive15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive16": { + "main": [ + [ + { + "node": "Pipedrive21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive17": { + "main": [ + [ + { + "node": "Pipedrive18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive18": { + "main": [ + [ + { + "node": "Pipedrive19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive19": { + "main": [ + [ + { + "node": "Pipedrive20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive21": { + "main": [ + [ + { + "node": "Pipedrive22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive22": { + "main": [ + [ + { + "node": "Pipedrive23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive23": { + "main": [ + [ + { + "node": "Pipedrive24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive24": { + "main": [ + [ + { + "node": "Pipedrive25", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive25": { + "main": [ + [ + { + "node": "Pipedrive17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive26": { + "main": [ + [ + { + "node": "Pipedrive27", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive27": { + "main": [ + [ + { + "node": "Pipedrive28", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive28": { + "main": [ + [ + { + "node": "Pipedrive29", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive29": { + "main": [ + [ + { + "node": "Pipedrive30", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pipedrive30": { + "main": [ + [ + { + "node": "Pipedrive31", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/201.json b/packages/testing/playwright/test-workflows/workflows/201.json new file mode 100644 index 0000000000..138c049499 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/201.json @@ -0,0 +1,269 @@ +{ + "createdAt": "2021-05-12T07:38:44.391Z", + "updatedAt": "2021-06-04T17:24:19.887Z", + "id": "201", + "name": "Iterable:User:upsert get delete:UserList:add remove:Event:track", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "87df2205-aeb2-453f-920f-89f4d9da9608" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "userId", + "value": "=User_{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 220], + "id": "5d51609e-46fa-4c57-b1ed-447eb36ff334" + }, + { + "parameters": { + "identifier": "userId", + "value": "={{$node[\"Set\"].json[\"userId\"]}}", + "additionalFields": { + "dataFieldsUi": { + "dataFieldValues": [] + } + } + }, + "name": "Iterable", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [590, 220], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "id": "11659a29-db59-49ad-a74c-02702ce391d1" + }, + { + "parameters": { + "operation": "get", + "by": "userId", + "userId": "={{$node[\"Set\"].json[\"userId\"]}}" + }, + "name": "Iterable1", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [900, 220], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "notes": "IGNORED_PROPERTIES=dataFields", + "id": "d8af6ed5-9797-4904-880d-d3a68abb7457" + }, + { + "parameters": { + "resource": "userList", + "listId": 798932, + "identifier": "userId", + "value": "={{$node[\"Set\"].json[\"userId\"]}}" + }, + "name": "Iterable2", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [1050, 320], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "id": "d5799965-0693-4d2e-bfd7-450d0022e355" + }, + { + "parameters": { + "resource": "userList", + "operation": "remove", + "listId": 798932, + "identifier": "userId", + "value": "={{$node[\"Set\"].json[\"userId\"]}}", + "additionalFields": {} + }, + "name": "Iterable3", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [1200, 320], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "id": "d66b3b48-e631-47e0-ade1-fe4b6137623b" + }, + { + "parameters": { + "resource": "event", + "name": "TestEvent", + "additionalFields": { + "id": "={{$node[\"Set\"].json[\"userId\"]}}", + "userId": "={{$node[\"Set\"].json[\"userId\"]}}" + } + }, + "name": "Iterable4", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [1350, 390], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "id": "73e5dc94-d847-4ade-95ef-98ea69237245" + }, + { + "parameters": { + "operation": "delete", + "email": "={{$node[\"Iterable1\"].json[\"email\"]}}" + }, + "name": "Iterable5", + "type": "n8n-nodes-base.iterable", + "typeVersion": 1, + "position": [1500, 210], + "credentials": { + "iterableApi": { + "id": "174", + "name": "Iterable API creds" + } + }, + "id": "650fa586-231c-4544-bb92-772ac561f0ee" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [740, 220], + "typeVersion": 1, + "id": "a4cdbbb5-a101-40f3-9f52-efe768d27e62" + } + ], + "connections": { + "Set": { + "main": [ + [ + { + "node": "Iterable", + "type": "main", + "index": 0 + } + ] + ] + }, + "Iterable": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Iterable1": { + "main": [ + [ + { + "node": "Iterable2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Iterable2": { + "main": [ + [ + { + "node": "Iterable3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Iterable3": { + "main": [ + [ + { + "node": "Iterable4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Iterable4": { + "main": [ + [ + { + "node": "Iterable5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Iterable1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "timezone": "Europe/Berlin", + "saveExecutionProgress": "DEFAULT" + }, + "staticData": { + "node:Clockify Trigger": { + "userId": "60335ad2f24e660123d7fdeb", + "lastTimeChecked": "2021-05-12T10:25:03Z" + } + }, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/202.json b/packages/testing/playwright/test-workflows/workflows/202.json new file mode 100644 index 0000000000..bf5219f06c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/202.json @@ -0,0 +1,174 @@ +{ + "createdAt": "2021-05-12T08:49:01.587Z", + "updatedAt": "2021-05-12T08:49:01.587Z", + "id": "202", + "name": "Beeminder:Datapoint:create getAll update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b22f554d-032b-49a3-8d93-72bdf0e14c89" + }, + { + "parameters": { + "goalName": "testing", + "additionalFields": {} + }, + "name": "Beeminder", + "type": "n8n-nodes-base.beeminder", + "typeVersion": 1, + "position": [490, 300], + "credentials": { + "beeminderApi": { + "id": "175", + "name": "Beeminder API creds" + } + }, + "id": "7a4b7543-ff45-418a-921c-ceec717d1350" + }, + { + "parameters": { + "operation": "getAll", + "goalName": "testing", + "limit": 1, + "options": {} + }, + "name": "Beeminder1", + "type": "n8n-nodes-base.beeminder", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "beeminderApi": { + "id": "175", + "name": "Beeminder API creds" + } + }, + "id": "625eea7d-b4cd-4f48-a939-379f20e92d88" + }, + { + "parameters": { + "operation": "update", + "goalName": "testing", + "datapointId": "={{$node[\"Beeminder\"].json[\"id\"]}}", + "updateFields": { + "value": 10 + } + }, + "name": "Beeminder2", + "type": "n8n-nodes-base.beeminder", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "beeminderApi": { + "id": "175", + "name": "Beeminder API creds" + } + }, + "id": "92817af4-a51b-49ee-a4d9-8839330b5f94" + }, + { + "parameters": { + "operation": "delete", + "goalName": "testing", + "datapointId": "={{$node[\"Beeminder4\"].json[\"id\"]}}" + }, + "name": "Beeminder3", + "type": "n8n-nodes-base.beeminder", + "typeVersion": 1, + "position": [1100, 350], + "credentials": { + "beeminderApi": { + "id": "175", + "name": "Beeminder API creds" + } + }, + "id": "085ad031-f3d0-48d9-b1d0-f9bc3d5b9a1b" + }, + { + "parameters": { + "goalName": "testing", + "value": 3, + "additionalFields": {} + }, + "name": "Beeminder4", + "type": "n8n-nodes-base.beeminder", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "beeminderApi": { + "id": "175", + "name": "Beeminder API creds" + } + }, + "id": "fbd1b086-506b-42cd-8b1c-cad5a3401fe7" + } + ], + "connections": { + "Beeminder": { + "main": [ + [ + { + "node": "Beeminder1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Beeminder1": { + "main": [ + [ + { + "node": "Beeminder2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Beeminder2": { + "main": [ + [ + { + "node": "Beeminder4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Beeminder4": { + "main": [ + [ + { + "node": "Beeminder3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Beeminder", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/203.json b/packages/testing/playwright/test-workflows/workflows/203.json new file mode 100644 index 0000000000..1b5cff7594 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/203.json @@ -0,0 +1,307 @@ +{ + "createdAt": "2021-05-12T10:06:38.839Z", + "updatedAt": "2021-06-02T10:31:43.824Z", + "id": "203", + "name": "Paddle:Payment:getAll reschedule:Plan:getAll get:Product:getAll:Coupon:create update getAll:User:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "6dca848e-e78f-4e1e-b637-c5b7a9b6d4cd" + }, + { + "parameters": { + "resource": "plan", + "operation": "getAll", + "limit": 1 + }, + "name": "Paddle", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [450, 230], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "552a93b0-4047-4ba5-8542-858e843045a5" + }, + { + "parameters": { + "resource": "plan", + "planId": "={{$node[\"Paddle\"].json[\"id\"]}}" + }, + "name": "Paddle1", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [600, 230], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "330027d9-fb24-4cd1-98bd-07b388ed3d0c" + }, + { + "parameters": { + "resource": "product", + "limit": 1 + }, + "name": "Paddle2", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [450, 380], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "a88765a6-f48f-428e-a13d-94e3c711e1eb" + }, + { + "parameters": { + "resource": "user", + "limit": 1, + "additionalFields": {} + }, + "name": "Paddle3", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [450, 530], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "a6911282-01de-4125-9479-b7ec3111edee" + }, + { + "parameters": { + "resource": "payment", + "limit": 1, + "additionalFields": {} + }, + "name": "Paddle4", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [450, 80], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "53405b18-8d3a-42b3-9c28-fa0416a1c240" + }, + { + "parameters": { + "couponType": "product", + "productIds": "={{$node[\"Paddle2\"].json[\"id\"]}}", + "discountAmount": 50, + "currency": "USD", + "additionalFields": {} + }, + "name": "Paddle5", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [600, 430], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "b2d6f9c0-6134-4723-b9b1-67b68e0cfb6f" + }, + { + "parameters": { + "operation": "update", + "couponCode": "={{$node[\"Paddle5\"].json[\"coupon\"]}}", + "additionalFields": { + "discount": { + "discountProperties": { + "currency": "USD", + "discountAmount": 5 + } + } + } + }, + "name": "Paddle6", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [750, 430], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "9f0c228c-f1c8-47ca-9702-2e373cc0b632" + }, + { + "parameters": { + "operation": "getAll", + "productId": "={{$node[\"Paddle2\"].json[\"id\"]}}", + "returnAll": true + }, + "name": "Paddle7", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [900, 430], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "86d2cc5d-93f5-4aa5-803e-c5995c89be66" + }, + { + "parameters": { + "resource": "payment", + "operation": "reschedule", + "paymentId": "={{$node[\"Paddle4\"].json[\"id\"]}}", + "date": "={{$node[\"Date & Time\"].json[\"data\"]}}" + }, + "name": "Paddle8", + "type": "n8n-nodes-base.paddle", + "typeVersion": 1, + "position": [760, 80], + "credentials": { + "paddleApi": { + "id": "173", + "name": "Paddle API sandbox creds" + } + }, + "id": "2b7076a8-2563-4808-970a-934e1389b517" + }, + { + "parameters": { + "action": "calculate", + "value": "={{Date.now()}}", + "duration": 5, + "options": {} + }, + "name": "Date & Time", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [600, 80], + "id": "8282ff84-da5e-4da6-97d7-84c4d08e9947" + } + ], + "connections": { + "Paddle": { + "main": [ + [ + { + "node": "Paddle1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Paddle2": { + "main": [ + [ + { + "node": "Paddle5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Paddle4": { + "main": [ + [ + { + "node": "Date & Time", + "type": "main", + "index": 0 + } + ] + ] + }, + "Paddle5": { + "main": [ + [ + { + "node": "Paddle6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Paddle6": { + "main": [ + [ + { + "node": "Paddle7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Paddle", + "type": "main", + "index": 0 + }, + { + "node": "Paddle2", + "type": "main", + "index": 0 + }, + { + "node": "Paddle3", + "type": "main", + "index": 0 + }, + { + "node": "Paddle4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time": { + "main": [ + [ + { + "node": "Paddle8", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": { + "node:Clockify Trigger": { + "userId": "60335ad2f24e660123d7fdeb", + "lastTimeChecked": "2021-05-12T08:09:47Z" + } + }, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/204.json b/packages/testing/playwright/test-workflows/workflows/204.json new file mode 100644 index 0000000000..5097cc6525 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/204.json @@ -0,0 +1,417 @@ +{ + "createdAt": "2021-05-14T09:31:14.466Z", + "updatedAt": "2021-06-08T08:48:10.045Z", + "id": "204", + "name": "HelpScout:Mailbox:getAll get:Customer:create get update getAll properties:Conversation:create get getAll delete:Thread:create getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "134a1cd7-83e3-4237-b289-20302a26d111" + }, + { + "parameters": { + "resource": "customer", + "additionalFields": { + "firstName": "=Fname_{{(new Date).toISOString()}}" + } + }, + "name": "HelpScout", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "d338cf1d-360e-499d-8c97-f3256b62cde4" + }, + { + "parameters": { + "resource": "customer", + "operation": "get", + "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" + }, + "name": "HelpScout1", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "aec33ae5-41da-476a-80b6-052bb06e6d13" + }, + { + "parameters": { + "resource": "customer", + "operation": "update", + "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}", + "updateFields": { + "jobTitle": "=UpdatedJobTitle" + } + }, + "name": "HelpScout2", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "895e41cb-bd06-454f-8c1f-68f632829c18" + }, + { + "parameters": { + "resource": "customer", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "HelpScout3", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "5b52d840-a8bd-4cb7-b1f8-f451a5be3d76" + }, + { + "parameters": { + "resource": "customer", + "operation": "properties" + }, + "name": "HelpScout4", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "31ebb207-80e5-417d-89ca-a1aeef540218" + }, + { + "parameters": { + "mailboxId": 224189, + "status": "active", + "subject": "=Subject_{{(new Date).toISOString()}}", + "type": "chat", + "additionalFields": { + "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" + }, + "threadsUi": { + "threadsValues": [ + { + "type": "chat", + "text": "Initial Thread" + } + ] + } + }, + "name": "HelpScout5", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "notes": "IGNORED_PROPERTIES=preview", + "id": "dac34f58-aadc-4c27-bb53-797160518e38" + }, + { + "parameters": { + "operation": "get", + "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}" + }, + "name": "HelpScout6", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [750, 450], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "notes": "IGNORED_PROPERTIES=preview", + "id": "54b304e7-e089-4b9e-ab0b-b8d768b2bb57" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "HelpScout7", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [900, 450], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "fef75568-538b-4ce2-83c5-07d779e6393e" + }, + { + "parameters": { + "operation": "delete", + "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}" + }, + "name": "HelpScout8", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [1050, 450], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "b082f9a9-352c-4624-a287-c167aa820875" + }, + { + "parameters": { + "resource": "mailbox", + "operation": "getAll", + "limit": 1 + }, + "name": "HelpScout9", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "4c07019c-6818-484d-8865-ef7bcef8ff39" + }, + { + "parameters": { + "resource": "mailbox", + "mailboxId": "={{$node[\"HelpScout9\"].json[\"id\"]}}" + }, + "name": "HelpScout10", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "89e6ba09-db18-444c-99da-91bf95d2353b" + }, + { + "parameters": { + "resource": "thread", + "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}", + "type": "chat", + "text": "=Thread_{{(new Date).toISOString()}}", + "additionalFields": { + "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" + } + }, + "name": "HelpScout11", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [750, 600], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "6bc6666d-dda1-485b-97de-a4b08407f22f" + }, + { + "parameters": { + "resource": "thread", + "operation": "getAll", + "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "HelpScout12", + "type": "n8n-nodes-base.helpScout", + "typeVersion": 1, + "position": [900, 600], + "credentials": { + "helpScoutOAuth2Api": { + "id": "163", + "name": "HelpScout OAuth2 API creds" + } + }, + "id": "740d4be3-b1b7-4383-a2ce-716270774df7" + } + ], + "connections": { + "HelpScout": { + "main": [ + [ + { + "node": "HelpScout5", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout1": { + "main": [ + [ + { + "node": "HelpScout2", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout2": { + "main": [ + [ + { + "node": "HelpScout3", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout3": { + "main": [ + [ + { + "node": "HelpScout4", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout5": { + "main": [ + [ + { + "node": "HelpScout11", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout6": { + "main": [ + [ + { + "node": "HelpScout7", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout7": { + "main": [ + [ + { + "node": "HelpScout8", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout8": { + "main": [ + [ + { + "node": "HelpScout1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout9": { + "main": [ + [ + { + "node": "HelpScout10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "HelpScout", + "type": "main", + "index": 0 + }, + { + "node": "HelpScout9", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout11": { + "main": [ + [ + { + "node": "HelpScout12", + "type": "main", + "index": 0 + } + ] + ] + }, + "HelpScout12": { + "main": [ + [ + { + "node": "HelpScout6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/205.json b/packages/testing/playwright/test-workflows/workflows/205.json new file mode 100644 index 0000000000..9684f2c40d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/205.json @@ -0,0 +1,57 @@ +{ + "createdAt": "2021-05-14T09:46:06.853Z", + "updatedAt": "2021-05-14T09:46:06.853Z", + "id": "205", + "name": "Pushover:Message:push", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "b67fccde-5dac-406f-98f4-d5c58ac8aa37" + }, + { + "parameters": { + "userKey": "uwwjqj8g3kbj4mbsmcwi8ov7ocofrx", + "message": "=Message_{{(new Date).toISOString()}}", + "additionalFields": { + "title": "=NodeQa Test_{{(new Date).toISOString()}}" + } + }, + "name": "Pushover", + "type": "n8n-nodes-base.pushover", + "typeVersion": 1, + "position": [510, 300], + "credentials": { + "pushoverApi": { + "id": "177", + "name": "Pushover API creds" + } + }, + "id": "1036f288-8058-48b9-9d2e-3a915bfadb12" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Pushover", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/206.json b/packages/testing/playwright/test-workflows/workflows/206.json new file mode 100644 index 0000000000..24ce0de1db --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/206.json @@ -0,0 +1,443 @@ +{ + "createdAt": "2021-05-17T15:09:40.220Z", + "updatedAt": "2021-05-18T07:57:05.962Z", + "id": "206", + "name": "Keap:Company:create getAll:Contact:upsert get getAll delete:ContactNote:create get update getAll delete:ContactTag:create getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9489a524-46de-44e4-b4f9-e5ff8202cc3e" + }, + { + "parameters": { + "companyName": "=Company_{{(new Date).toISOString()}}", + "additionalFields": {} + }, + "name": "Keap", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [600, 200], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "690b0194-0a2a-41a3-a6bd-b67ce0345f42" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Keap1", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [750, 200], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "07a5aca1-73a9-4812-9a35-0e62d814c540" + }, + { + "parameters": { + "resource": "contact", + "additionalFields": { + "companyId": "={{$node[\"Keap\"].json[\"id\"]}}" + }, + "addressesUi": { + "addressesValues": [] + }, + "emailsUi": { + "emailsValues": [ + { + "field": "EMAIL1", + "email": "=fakeemail{{Date.now()}}@test.com" + } + ] + } + }, + "name": "Keap2", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [750, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "44871399-7e52-4d49-9090-32a07fc55440" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", + "options": {} + }, + "name": "Keap3", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [900, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "17a7232c-8cc9-448c-a2c0-bd1084fdd771" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Keap4", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1040, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "7007df2b-c66a-4a7b-b690-9d0124e73357" + }, + { + "parameters": { + "resource": "contact", + "operation": "delete", + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}" + }, + "name": "Keap5", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1200, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "f61df6f5-ab1c-4344-8ab5-8f09ceddbe8b" + }, + { + "parameters": { + "resource": "contactNote", + "userId": 1, + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", + "additionalFields": { + "body": "", + "title": "=Note{Date.now()}}" + } + }, + "name": "Keap6", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [900, 510], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "1af7e3bf-9135-4ffe-a875-b6ae453a44b1" + }, + { + "parameters": { + "resource": "contactNote", + "operation": "get", + "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}" + }, + "name": "Keap7", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1050, 510], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "d8252291-bbf9-4ee1-a9d4-093ae967ef12" + }, + { + "parameters": { + "resource": "contactNote", + "operation": "update", + "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}", + "additionalFields": { + "title": "Updated Title" + } + }, + "name": "Keap8", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1200, 510], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "54756d28-a79f-4427-8d5d-5c2d80ac5b17" + }, + { + "parameters": { + "resource": "contactNote", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Keap9", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1360, 510], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "81bdce10-1de6-4d11-8624-1a0516931e49" + }, + { + "parameters": { + "resource": "contactNote", + "operation": "delete", + "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}" + }, + "name": "Keap10", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1500, 510], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "a8cb848a-36d8-4fb6-b845-37674c6c7733" + }, + { + "parameters": { + "resource": "contactTag", + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", + "tagIds": [93] + }, + "name": "Keap11", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [900, 660], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "c81d1109-4fbb-4dde-afe4-386710f9f624" + }, + { + "parameters": { + "resource": "contactTag", + "operation": "getAll", + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Keap12", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1050, 660], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "b0c03850-0004-4680-9da0-9ea9ded1a525" + }, + { + "parameters": { + "resource": "contactTag", + "operation": "delete", + "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", + "tagIds": "93," + }, + "name": "Keap13", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1190, 660], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "311e758c-48f7-4738-862d-b34299ac6d08" + } + ], + "connections": { + "Keap": { + "main": [ + [ + { + "node": "Keap1", + "type": "main", + "index": 0 + }, + { + "node": "Keap2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap2": { + "main": [ + [ + { + "node": "Keap6", + "type": "main", + "index": 0 + }, + { + "node": "Keap11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap3": { + "main": [ + [ + { + "node": "Keap4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap4": { + "main": [ + [ + { + "node": "Keap5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap6": { + "main": [ + [ + { + "node": "Keap7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap7": { + "main": [ + [ + { + "node": "Keap8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap8": { + "main": [ + [ + { + "node": "Keap9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap9": { + "main": [ + [ + { + "node": "Keap10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap10": { + "main": [ + [ + { + "node": "Keap3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap11": { + "main": [ + [ + { + "node": "Keap12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap12": { + "main": [ + [ + { + "node": "Keap13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Keap", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/207.json b/packages/testing/playwright/test-workflows/workflows/207.json new file mode 100644 index 0000000000..98a9562e6d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/207.json @@ -0,0 +1,483 @@ +{ + "createdAt": "2021-05-17T22:14:56.419Z", + "updatedAt": "2021-05-18T07:56:45.273Z", + "id": "207", + "name": "Keap:EcommerceOrder:create get getAll delete:EcommerceProduct:create get getAll delete:Email:createRecord getAll:File:upload getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "71dbf38c-e75d-48af-b045-fa5e0e30d2a5" + }, + { + "parameters": { + "resource": "ecommerceProduct", + "productName": "=Producct_{{(new Date).toISOString()}}", + "additionalFields": {} + }, + "name": "Keap", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [650, 180], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "e5a3ddc7-1681-4d8e-b841-9a4d052519e3" + }, + { + "parameters": { + "resource": "ecommerceProduct", + "operation": "get", + "productId": "={{$node[\"Keap\"].json[\"id\"]}}" + }, + "name": "Keap1", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [810, 180], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "ac092a34-c9c2-49fe-af12-9ba28a1274f2" + }, + { + "parameters": { + "resource": "ecommerceProduct", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Keap2", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [970, 180], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "a54a5785-8586-4df5-91e6-24877ea0f1c5" + }, + { + "parameters": { + "resource": "ecommerceProduct", + "operation": "delete", + "productId": "={{$node[\"Keap\"].json[\"id\"]}}" + }, + "name": "Keap3", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1120, 180], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "1afec710-031b-4a72-9164-4bb166d06000" + }, + { + "parameters": { + "resource": "email", + "sentToAddress": "test@gmail.com", + "sentFromAddress": "fromtest@gmail.com", + "additionalFields": {} + }, + "name": "Keap4", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [650, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "d2463a1b-c677-4d81-a69f-f6db3a72a1dc" + }, + { + "parameters": { + "resource": "email", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Keap5", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [800, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "b1f2a62a-5479-4f5c-a569-1d6140dad42c" + }, + { + "parameters": { + "resource": "email", + "operation": "send", + "userId": 1, + "contactIds": "={{$node[\"Keap7\"].json[\"id\"]}},", + "subject": "Test", + "additionalFields": { + "addressField": "node8qa@gmail.com,", + "plainContent": "Text content" + } + }, + "name": "Keap6", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "disabled": true, + "id": "90739296-0d0d-44db-8a7e-904d0d39018d" + }, + { + "parameters": { + "resource": "contact", + "additionalFields": {}, + "emailsUi": { + "emailsValues": [ + { + "field": "EMAIL1", + "email": "node8qa@gmail.com" + } + ] + } + }, + "name": "Keap7", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [490, 280], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "9fc45e7d-9070-4517-99a2-c22d9ce3e5dd" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "contactId": "={{$node[\"Keap7\"].json[\"id\"]}}", + "orderDate": "2021-05-18T07:35:03.000Z", + "orderTitle": "=Title{{Date.now()}}", + "orderType": "offline", + "additionalFields": {}, + "orderItemsUi": { + "orderItemsValues": [ + { + "description": "testing", + "price": 6, + "product ID": "={{$node[\"Keap\"].json[\"id\"]}}", + "quantity": 3 + } + ] + } + }, + "name": "Keap8", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [810, 30], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "17058118-db69-4fab-baa7-19aa39562b94" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "get", + "orderId": "={{$node[\"Keap8\"].json[\"id\"]}}" + }, + "name": "Keap9", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [970, 30], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "6d4cf1c3-e89c-4fb9-8868-718c23734cd9" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Keap10", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1130, 30], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "fc63b45d-7b7c-4ac1-bddc-7061065d607e" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "delete", + "orderId": "={{$node[\"Keap8\"].json[\"id\"]}}" + }, + "name": "Keap11", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [1290, 30], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "4b41db09-652f-4f92-8dba-72c48d9f5403" + }, + { + "parameters": { + "resource": "file", + "operation": "upload", + "fileAssociation": "contact", + "contactId": "={{$node[\"Keap7\"].json[\"id\"]}}", + "fileName": "test.csv", + "fileData": "IyB0aGlzIGlzIGEgdGVzdCBmaWxl" + }, + "name": "Keap12", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [650, 520], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "267fe3f8-4cee-46f5-b430-e925e491a838" + }, + { + "parameters": { + "resource": "file", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Keap13", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [810, 520], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "810f3780-5787-4642-ab29-ede18374d118" + }, + { + "parameters": { + "resource": "file", + "fileId": "={{$node[\"Keap12\"].json[\"file_descriptor\"][\"id\"]}}" + }, + "name": "Keap14", + "type": "n8n-nodes-base.keap", + "typeVersion": 1, + "position": [970, 520], + "credentials": { + "keapOAuth2Api": { + "id": "178", + "name": "Keap OAuth2 API creds" + } + }, + "id": "35001fb2-12f4-4fcb-91a3-87057ba15d4c" + } + ], + "connections": { + "Keap": { + "main": [ + [ + { + "node": "Keap8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap1": { + "main": [ + [ + { + "node": "Keap2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap2": { + "main": [ + [ + { + "node": "Keap3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap4": { + "main": [ + [ + { + "node": "Keap5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap5": { + "main": [ + [ + { + "node": "Keap6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap7": { + "main": [ + [ + { + "node": "Keap", + "type": "main", + "index": 0 + }, + { + "node": "Keap4", + "type": "main", + "index": 0 + }, + { + "node": "Keap12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap8": { + "main": [ + [ + { + "node": "Keap9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap9": { + "main": [ + [ + { + "node": "Keap10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap10": { + "main": [ + [ + { + "node": "Keap11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap11": { + "main": [ + [ + { + "node": "Keap1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Keap7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap12": { + "main": [ + [ + { + "node": "Keap13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Keap13": { + "main": [ + [ + { + "node": "Keap14", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/208.json b/packages/testing/playwright/test-workflows/workflows/208.json new file mode 100644 index 0000000000..b5461c94ff --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/208.json @@ -0,0 +1,63 @@ +{ + "createdAt": "2021-05-25T13:01:33.223Z", + "updatedAt": "2021-05-26T13:12:05.308Z", + "id": "208", + "name": "RocketChat:Chat:postMessage", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "57c39841-256a-4e6a-b301-af2c97c0a0a8" + }, + { + "parameters": { + "channel": "general", + "text": "=Message {{(new Date).toISOString()}}", + "options": { + "emoji": ":smile:" + }, + "attachments": [ + { + "color": "#ff6d5a", + "title": "Attachment title" + } + ] + }, + "name": "RocketChat", + "type": "n8n-nodes-base.rocketchat", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "rocketchatApi": { + "id": "184", + "name": "Rocket API creds" + } + }, + "id": "c6b5e0b7-4ead-44e3-8ae4-42de8159dd99" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "RocketChat", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/209.json b/packages/testing/playwright/test-workflows/workflows/209.json new file mode 100644 index 0000000000..c46181ce8b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/209.json @@ -0,0 +1,191 @@ +{ + "createdAt": "2021-05-31T08:24:33.353Z", + "updatedAt": "2021-05-31T08:38:47.411Z", + "id": "209", + "name": "AWS Transcribe:TranscriptionJob:create get getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "cb687f80-1046-40f3-bddb-78a67623b70e" + }, + { + "parameters": { + "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}", + "mediaFileUri": "s3://fixedtestbucket/nodemation.wav", + "options": {} + }, + "name": "AWS Transcribe", + "type": "n8n-nodes-base.awsTranscribe", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "ccdefb6d-7aac-4360-9285-135ddf34449b" + }, + { + "parameters": { + "operation": "get", + "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}", + "simple": false + }, + "name": "AWS Transcribe1", + "type": "n8n-nodes-base.awsTranscribe", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "3840763a-16d3-4073-a008-9b5dae451d48" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "AWS Transcribe2", + "type": "n8n-nodes-base.awsTranscribe", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "b477493b-0688-47f4-ad5c-4a1f509e672e" + }, + { + "parameters": { + "operation": "delete", + "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}" + }, + "name": "AWS Transcribe3", + "type": "n8n-nodes-base.awsTranscribe", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + }, + "id": "f7c49172-c16a-4881-951b-c35927fe9ea4" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "job_name", + "value": "=nodemation_job_{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set job name", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 300], + "id": "e96a125a-10fb-4d1a-869e-3e31467b1bb6" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(30000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 30 seconds", + "type": "n8n-nodes-base.function", + "position": [1000, 300], + "typeVersion": 1, + "id": "93a0b1db-6bda-4e6d-9797-6a3957cf05d0" + } + ], + "connections": { + "AWS Transcribe": { + "main": [ + [ + { + "node": "AWS Transcribe1", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS Transcribe1": { + "main": [ + [ + { + "node": "AWS Transcribe2", + "type": "main", + "index": 0 + } + ] + ] + }, + "AWS Transcribe2": { + "main": [ + [ + { + "node": "Sleep 30 seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set job name", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set job name": { + "main": [ + [ + { + "node": "AWS Transcribe", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 30 seconds": { + "main": [ + [ + { + "node": "AWS Transcribe3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/21.json b/packages/testing/playwright/test-workflows/workflows/21.json new file mode 100644 index 0000000000..6cd551ab04 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/21.json @@ -0,0 +1,427 @@ +{ + "createdAt": "2021-02-16T16:12:15.992Z", + "updatedAt": "2021-11-12T12:09:08.000Z", + "id": "21", + "name": "Hubspot:Deal: create update getall search getRecentlyModified getRecentlyCreated get delete:Ticket: create update get All get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [180, 300], + "id": "50ba36ae-2d60-4030-8b52-19900aa73d75" + }, + { + "parameters": { + "stage": "appointmentscheduled", + "additionalFields": { + "dealName": "testDeal" + } + }, + "name": "Hubspot", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [370, 230], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "45e9896b-745e-45ea-b1e9-56a18bb97280" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Hubspot1", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [650, 230], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "635d61b8-0527-4800-baa6-1b17664fc2d4" + }, + { + "parameters": { + "operation": "get", + "dealId": "={{$json[\"dealId\"]}}", + "additionalFields": {} + }, + "name": "Hubspot2", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1250, 230], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "d935d2bd-67be-4d9a-8acb-627cd9ef3523" + }, + { + "parameters": { + "operation": "search", + "limit": 1, + "filterGroupsUi": { + "filterGroupsValues": [] + }, + "additionalFields": {} + }, + "name": "Hubspot3", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [780, 230], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "5d8cead1-67b6-45ad-96c1-99e8120b1073" + }, + { + "parameters": { + "operation": "update", + "dealId": "={{$json[\"dealId\"]}}", + "updateFields": { + "dealName": "dealTestUpdated" + } + }, + "name": "Hubspot4", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [500, 230], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "52b97d30-6e05-44c6-a4bc-4cdbf14ed2e8" + }, + { + "parameters": { + "operation": "getRecentlyModified", + "limit": 1, + "filters": {} + }, + "name": "Hubspot5", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [930, 230], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "d491514d-4b16-440a-ac45-b770499f9727" + }, + { + "parameters": { + "operation": "delete", + "dealId": "={{$json[\"dealId\"]}}" + }, + "name": "Hubspot6", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1380, 230], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "ef41388b-da7e-4caf-8d28-fb23a8ec3b36" + }, + { + "parameters": { + "operation": "getRecentlyCreated", + "limit": 1, + "filters": {} + }, + "name": "Hubspot7", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1100, 230], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "517e45f8-7554-4fa9-8cdb-77da84b51846" + }, + { + "parameters": { + "resource": "ticket", + "pipelineId": "0", + "stageId": "3", + "ticketName": "testTicket", + "additionalFields": {} + }, + "name": "Hubspot8", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [370, 400], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "d6a94b35-974c-4683-8c46-41fbc28a96ff" + }, + { + "parameters": { + "resource": "ticket", + "operation": "update", + "ticketId": "={{$json[\"objectId\"]}}", + "updateFields": {} + }, + "name": "Hubspot9", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [530, 400], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "d9f184a9-a4af-4657-963c-a6787997263d" + }, + { + "parameters": { + "resource": "ticket", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Hubspot10", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [680, 400], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "f70f062d-d0ef-421f-9c42-36209102d837" + }, + { + "parameters": { + "resource": "ticket", + "operation": "get", + "ticketId": "={{$json[\"objectId\"]}}", + "additionalFields": {} + }, + "name": "Hubspot11", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [830, 400], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "489a9719-6fd8-4c48-8fbe-9acd0c1508f9" + }, + { + "parameters": { + "resource": "ticket", + "operation": "delete", + "ticketId": "={{$json[\"objectId\"]}}" + }, + "name": "Hubspot12", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [990, 400], + "notesInFlow": false, + "alwaysOutputData": true, + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "fcdd8b16-ab62-4093-aa90-043bf3b22554" + } + ], + "connections": { + "Hubspot": { + "main": [ + [ + { + "node": "Hubspot4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot1": { + "main": [ + [ + { + "node": "Hubspot3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot2": { + "main": [ + [ + { + "node": "Hubspot6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot3": { + "main": [ + [ + { + "node": "Hubspot5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Hubspot8", + "type": "main", + "index": 0 + }, + { + "node": "Hubspot", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot4": { + "main": [ + [ + { + "node": "Hubspot1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot5": { + "main": [ + [ + { + "node": "Hubspot7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot7": { + "main": [ + [ + { + "node": "Hubspot2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot8": { + "main": [ + [ + { + "node": "Hubspot9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot9": { + "main": [ + [ + { + "node": "Hubspot10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot10": { + "main": [ + [ + { + "node": "Hubspot11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot11": { + "main": [ + [ + { + "node": "Hubspot12", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/212.json b/packages/testing/playwright/test-workflows/workflows/212.json new file mode 100644 index 0000000000..2f37fa95b7 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/212.json @@ -0,0 +1,405 @@ +{ + "createdAt": "2021-06-01T08:10:39.407Z", + "updatedAt": "2021-11-12T13:08:28.130Z", + "id": "212", + "name": "Git:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [260, 300], + "id": "f3928b9a-a76a-4b22-8c13-3eeb6ffc5dab" + }, + { + "parameters": { + "authentication": "gitPassword", + "operation": "clone", + "repositoryPath": "/tmp/nodeQA", + "sourceRepository": "https://github.com/nodemationqa/nodeQA" + }, + "name": "Git", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "gitPassword": { + "id": "193", + "name": "Git creds" + } + }, + "id": "73803968-9a2a-4408-9c35-cdb3fea58573" + }, + { + "parameters": { + "operation": "listConfig", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git1", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [700, 250], + "notes": "CAP_RESULTS_LENGTH=1\nKEEP_ONLY_PROPERTIES=_file", + "id": "c8635d48-0bbd-496a-8cd0-5cf43795707d" + }, + { + "parameters": { + "operation": "addConfig", + "repositoryPath": "/tmp/nodeQA", + "key": "user.email", + "value": "nodeqa@n8n.io", + "options": { + "mode": "set" + } + }, + "name": "Git2", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [850, 250], + "id": "815b5424-cbc3-4f29-9f12-81e7538bb925" + }, + { + "parameters": { + "operation": "add", + "repositoryPath": "/tmp/nodeQA", + "pathsToAdd": "/tmp/nodeQA/gitnode_added_file.md" + }, + "name": "Git3", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [550, 450], + "id": "d2110a10-424a-48ef-9bfa-5b6eb541f96c" + }, + { + "parameters": { + "operation": "status", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git4", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [700, 450], + "id": "317691ba-e08a-4fcb-bb2d-771d14a13eb4" + }, + { + "parameters": { + "operation": "commit", + "repositoryPath": "/tmp/nodeQA", + "message": "=GitNode commit {{(new Date).toUTCString()}}", + "options": {} + }, + "name": "Git5", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [850, 450], + "id": "4ab79985-9685-4c47-b4c4-2f859ce036c0" + }, + { + "parameters": { + "repositoryPath": "/tmp/nodeQA", + "limit": 1, + "options": {} + }, + "name": "Git6", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [1000, 450], + "id": "7ed13447-be70-41e3-b054-4107b175d5a8" + }, + { + "parameters": { + "operation": "addConfig", + "repositoryPath": "/tmp/nodeQA", + "key": "user.name", + "value": "nodemationqa", + "options": { + "mode": "set" + } + }, + "name": "Git7", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [1000, 250], + "id": "8dabf47e-ba7c-460d-a2de-a4f54f5211e1" + }, + { + "parameters": { + "operation": "tag", + "repositoryPath": "/tmp/nodeQA", + "name": "=GitNode-tag-{{Date.now()}}" + }, + "name": "Git8", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [1150, 450], + "id": "f4317e1d-694d-4d62-9b60-de9ef0e94418" + }, + { + "parameters": { + "operation": "pushTags", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git9", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [550, 650], + "disabled": true, + "id": "8ac866c6-9938-4d0f-9f54-6e3d5b1dbf11" + }, + { + "parameters": { + "operation": "push", + "repositoryPath": "/tmp/nodeQA", + "options": {} + }, + "name": "Git10", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [700, 650], + "disabled": true, + "id": "880d7f5f-744a-496a-9064-0a09a1dfe5ce" + }, + { + "parameters": { + "operation": "pull", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git11", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [850, 650], + "disabled": true, + "id": "5a5c9cd0-0e77-4ed9-960f-54f12d449683" + }, + { + "parameters": { + "operation": "fetch", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git12", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [1000, 650], + "id": "e042e225-b5b6-4882-b879-d11d103c7004" + }, + { + "parameters": { + "operation": "userSetup", + "repositoryPath": "/tmp/nodeQA" + }, + "name": "Git13", + "type": "n8n-nodes-base.git", + "typeVersion": 1, + "position": [1150, 650], + "disabled": true, + "id": "7b5a93b5-08bc-4449-a7ef-23232d6440a2" + }, + { + "parameters": { + "command": "if [ -d \"/tmp/nodeQA\" ]; then rm -Rf /tmp/nodeQA; fi" + }, + "name": "Delete existing dir", + "type": "n8n-nodes-base.executeCommand", + "typeVersion": 1, + "position": [400, 250], + "id": "312b664a-f6b4-4419-aae4-455930d7ca05" + }, + { + "parameters": { + "command": "=echo \"File added to repo at {{(new Date).toUTCString()}} using Git node\" > /tmp/nodeQA/gitnode_added_file.md" + }, + "name": "Add file to dir", + "type": "n8n-nodes-base.executeCommand", + "typeVersion": 1, + "position": [1150, 250], + "id": "a5ad152a-056e-4d4e-81f8-626209e7cfb8" + } + ], + "connections": { + "Git": { + "main": [ + [ + { + "node": "Git1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Delete existing dir", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git1": { + "main": [ + [ + { + "node": "Git2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git2": { + "main": [ + [ + { + "node": "Git7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git3": { + "main": [ + [ + { + "node": "Git4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git4": { + "main": [ + [ + { + "node": "Git5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git5": { + "main": [ + [ + { + "node": "Git6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git7": { + "main": [ + [ + { + "node": "Add file to dir", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git6": { + "main": [ + [ + { + "node": "Git8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git8": { + "main": [ + [ + { + "node": "Git9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git9": { + "main": [ + [ + { + "node": "Git10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git10": { + "main": [ + [ + { + "node": "Git11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git11": { + "main": [ + [ + { + "node": "Git12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Git12": { + "main": [ + [ + { + "node": "Git13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Delete existing dir": { + "main": [ + [ + { + "node": "Git", + "type": "main", + "index": 0 + } + ] + ] + }, + "Add file to dir": { + "main": [ + [ + { + "node": "Git3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/214.json b/packages/testing/playwright/test-workflows/workflows/214.json new file mode 100644 index 0000000000..16bc952f99 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/214.json @@ -0,0 +1,48 @@ +{ + "createdAt": "2021-06-03T11:22:25.194Z", + "updatedAt": "2021-07-15T14:18:39.385Z", + "id": "214", + "name": "Discord:sendMessage", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "51494395-ea61-4b02-9a5d-e9f3f97bddbe" + }, + { + "parameters": { + "webhookUri": "https://discord.com/api/webhooks/853902674536955924/2gqWRIwqBexuMwlQmTNLYFizoX6JMjz5acCKN-6NwaVxfw30qZfy0nguukpLPk0zvnaK", + "text": "=Posted At {{(new Date).toUTCString()}}" + }, + "name": "Discord", + "type": "n8n-nodes-base.discord", + "typeVersion": 1, + "position": [490, 300], + "id": "ffb4c420-0c18-4cc9-a2fe-5898b93815aa" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Discord", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/215.json b/packages/testing/playwright/test-workflows/workflows/215.json new file mode 100644 index 0000000000..ffcbcad057 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/215.json @@ -0,0 +1,350 @@ +{ + "createdAt": "2021-06-04T11:16:11.926Z", + "updatedAt": "2021-07-16T09:34:37.952Z", + "id": "215", + "name": "EditImage:ALL", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "42877422-da89-4a28-a056-65fae3293498" + }, + { + "parameters": { + "operation": "blur", + "blur": 4, + "options": {} + }, + "name": "Edit Image", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [650, 300], + "id": "afe688e3-fa5c-4a6f-a998-06ac9feb4713" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [450, 300], + "id": "94cee769-2dd7-4066-a489-79d3efc8b699" + }, + { + "parameters": { + "options": {} + }, + "name": "Edit Image1", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [850, 300], + "id": "73af2807-4dbb-4653-9421-d43e18d6b3dd" + }, + { + "parameters": { + "operation": "composite", + "dataPropertyNameComposite": "data", + "positionX": 100, + "positionY": 50, + "options": {} + }, + "name": "Edit Image2", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [2400, 280], + "id": "9119f721-2eb0-4972-8c7d-d5b32022a340" + }, + { + "parameters": { + "operation": "create", + "width": 1000, + "height": 1000, + "options": {} + }, + "name": "Edit Image3", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [1050, 450], + "id": "db874150-8b35-4db7-9f04-8fd6a0da0edc" + }, + { + "parameters": { + "operation": "draw", + "options": {} + }, + "name": "Edit Image4", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [1250, 450], + "id": "ec763bc5-8acf-4a6c-8377-180f9d67337d" + }, + { + "parameters": { + "operation": "resize", + "options": {} + }, + "name": "Edit Image5", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [1450, 450], + "id": "b59007d8-29c5-4a08-a04f-76837cb041ba" + }, + { + "parameters": { + "operation": "information" + }, + "name": "Edit Image6", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [850, 450], + "notes": "CAP_RESULTS_LENGTH=1\nIGNORED_PROPERTIES=User Time", + "id": "b5e4bfc7-16e9-4793-a309-190df1e57444" + }, + { + "parameters": { + "operation": "rotate", + "rotate": 45, + "options": {} + }, + "name": "Edit Image7", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [1650, 450], + "id": "4e3d7eb5-33ae-4867-8130-ef928b61ecee" + }, + { + "parameters": { + "operation": "shear", + "degreesX": 15, + "degreesY": 30, + "options": {} + }, + "name": "Edit Image8", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [1850, 450], + "id": "a45b3d3f-95f0-4bbc-b1df-a5c42f8102c9" + }, + { + "parameters": { + "operation": "text", + "text": "Testing", + "options": {} + }, + "name": "Edit Image9", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [2050, 450], + "id": "d12a6f88-9b7a-4359-ae24-5f098cb438be" + }, + { + "parameters": { + "operation": "crop", + "options": {} + }, + "name": "Edit Image10", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [2250, 450], + "id": "0be43f04-569f-40f2-8f1c-c4cbfbb228d0" + }, + { + "parameters": { + "operation": "multiStep", + "operations": { + "operations": [ + { + "operation": "blur", + "blur": 3 + }, + { + "operation": "border", + "borderWidth": 3, + "borderHeight": 3, + "borderColor": "#FF7410" + }, + { + "operation": "draw", + "color": "#4b4b4b00", + "cornerRadius": 50 + }, + { + "operation": "rotate", + "rotate": 180 + }, + { + "operation": "text", + "text": "Reversed" + }, + { + "operation": "resize" + }, + { + "operation": "shear", + "degreesX": 5, + "degreesY": 10 + } + ] + }, + "options": {} + }, + "name": "Edit Image11", + "type": "n8n-nodes-base.editImage", + "typeVersion": 1, + "position": [650, 450], + "notes": "IGNORED_PROPERTIES=User Time", + "id": "620d342b-8f65-492e-9caf-a77b9b037fa5" + } + ], + "connections": { + "Edit Image": { + "main": [ + [ + { + "node": "Edit Image1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Edit Image", + "type": "main", + "index": 0 + }, + { + "node": "Edit Image11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image1": { + "main": [ + [ + { + "node": "Edit Image3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image3": { + "main": [ + [ + { + "node": "Edit Image4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image4": { + "main": [ + [ + { + "node": "Edit Image5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image5": { + "main": [ + [ + { + "node": "Edit Image7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image7": { + "main": [ + [ + { + "node": "Edit Image8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image8": { + "main": [ + [ + { + "node": "Edit Image9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image9": { + "main": [ + [ + { + "node": "Edit Image10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image10": { + "main": [ + [ + { + "node": "Edit Image2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Edit Image11": { + "main": [ + [ + { + "node": "Edit Image6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/216.json b/packages/testing/playwright/test-workflows/workflows/216.json new file mode 100644 index 0000000000..82135f1677 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/216.json @@ -0,0 +1,89 @@ +{ + "createdAt": "2021-06-15T18:29:42.709Z", + "updatedAt": "2021-06-15T18:38:55.872Z", + "id": "216", + "name": "FunctionItem:JSON,Binary and Static data", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "83a507fd-bf96-45fd-8513-1c0ef484ec76" + }, + { + "parameters": { + "functionCode": "// interact with item JSON attributes\n\n// array\nitem.arr = [1,2,3,4,5,6,7,8,9,10]\n// string\nitem.str= \"Testing Function Item node\"\n// number\nitem.num = 1337 \n// object\nitem.obj = {\n attr1: \"Testing\",\n attr2: [1,2,3,4,5],\n attr3: 7331,\n attr4: {\n subattr1: \"Test\",\n subattr2: [1,2,3],\n subattr3: 8,\n subattr4: {\n }\n }\n};\n\nreturn item;" + }, + "name": "Handle JSON data", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [450, 300], + "id": "2f7fca94-f885-4f41-90e0-5455afe8266d" + }, + { + "parameters": { + "functionCode": "// interact with item Binary data\n\nitem.binaryData = getBinaryData() ?? 'NIL' ;\n\nbinaryData = {\n data: {\n\t\t\t\tdata: 'SGVsbG8gZnJvbSBuOG4gRnVuY3Rpb24gaXRlbSB0ZXN0aW5nIHdvcmtmbG93', // Base64 encoded binary data (required)\n\t\t\t\tmimeType: 'text', // Optional but should be set if possible (optional)\n\t\t\t\tfileExtension: 'text', // Optional but should be set if possible (optional)\n\t\t\t\tfileName: 'testfile', // Optional but should be set if possible (optional)\n\t\t\t}\n}\nsetBinaryData(binaryData);\n\n\nreturn item;" + }, + "name": "Handle Binary data", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [650, 300], + "id": "28f7d4f0-a2d7-46d5-8683-4f624588fc32" + }, + { + "parameters": { + "functionCode": "// interact with static data\n\n\n// Global\n\nconst GSD = getWorkflowStaticData('global');\n\nif ( GSD && GSD.message ){\n console.log(GSD);\n} else {\n GSD.message = \"Hello, Global Static Data\";\n}\n\n// Local (node)\n\nconst LSD = getWorkflowStaticData('node');\n\nif ( LSD && LSD.message ){\n console.log(LSD);\n} else {\n LSD.message = \"Hello, Node Static Data\";\n}\n\nitem.globalStaticMessage = GSD.message;\nitem.nodeStaticMessage = LSD.message;\n\n\nreturn item;" + }, + "name": "Handle Static data", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [850, 300], + "id": "8794c6b1-1149-4b6d-96cb-0e3d5fd0ffbd" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Handle JSON data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Handle JSON data": { + "main": [ + [ + { + "node": "Handle Binary data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Handle Binary data": { + "main": [ + [ + { + "node": "Handle Static data", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/217.json b/packages/testing/playwright/test-workflows/workflows/217.json new file mode 100644 index 0000000000..1febdf049d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/217.json @@ -0,0 +1,139 @@ +{ + "createdAt": "2021-06-15T18:44:19.942Z", + "updatedAt": "2021-06-15T19:09:29.328Z", + "id": "217", + "name": "ExecuteWorkflow: Database, URL, Local File, Parameter", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "f98e5ef3-5e54-4296-83c0-15abef56962d" + }, + { + "parameters": { + "source": "parameter", + "workflowJson": "{\n \"nodes\": [\n {\n \"parameters\": {},\n \"name\": \"Start\",\n \"type\": \"n8n-nodes-base.start\",\n \"typeVersion\": 1,\n \"position\": [\n 250,\n 300\n ]\n },\n {\n \"parameters\": {\n \"functionCode\": \"\\nitems = [\\n{\\n json:{\\n message: \\\"Hello from a sub workflow, passed as parameter\\\"\\n }\\n}\\n\\n]\\nreturn items;\"\n },\n \"name\": \"Generate items data\",\n \"type\": \"n8n-nodes-base.function\",\n \"typeVersion\": 1,\n \"position\": [\n 500,\n 300\n ]\n }\n ],\n \"connections\": {\n \"Start\": {\n \"main\": [\n [\n {\n \"node\": \"Generate items data\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n }\n}" + }, + "name": "Execute parameter - workflow", + "type": "n8n-nodes-base.executeWorkflow", + "typeVersion": 1, + "position": [500, 250], + "id": "2c2df62e-bed9-4633-aa3a-c1a80f643540" + }, + { + "parameters": { + "source": "url", + "workflowUrl": "https://raw.githubusercontent.com/n8n-io/test-workflows/main/workflows/95.json" + }, + "name": "Execute URL workflow", + "type": "n8n-nodes-base.executeWorkflow", + "typeVersion": 1, + "position": [500, 90], + "id": "e5232923-8233-42c7-98bf-ba473a56a788" + }, + { + "parameters": { + "url": "https://raw.githubusercontent.com/n8n-io/test-workflows/main/workflows/93.json", + "responseFormat": "file", + "options": {} + }, + "name": "HTTP Request", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 1, + "position": [500, 550], + "id": "d1e66066-2d60-48d5-bde2-003715d38e1b" + }, + { + "parameters": { + "fileName": "/tmp/testworkflowfile.json" + }, + "name": "Write Binary File", + "type": "n8n-nodes-base.writeBinaryFile", + "typeVersion": 1, + "position": [700, 550], + "id": "f82165ff-9ce4-4f80-8b9d-043bb98252bb" + }, + { + "parameters": { + "source": "localFile", + "workflowPath": "/tmp/testworkflowfile.json" + }, + "name": "Execute local file workflow", + "type": "n8n-nodes-base.executeWorkflow", + "typeVersion": 1, + "position": [900, 550], + "id": "af481068-77a8-4c83-8473-3f20d2fba53e" + }, + { + "parameters": { + "workflowId": "94" + }, + "name": "Execute Workflow ID 94", + "type": "n8n-nodes-base.executeWorkflow", + "typeVersion": 1, + "position": [500, 400], + "id": "c65ee4ea-afc8-4674-90d1-12d6c1685209" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Execute Workflow ID 94", + "type": "main", + "index": 0 + }, + { + "node": "Execute parameter - workflow", + "type": "main", + "index": 0 + }, + { + "node": "Execute URL workflow", + "type": "main", + "index": 0 + }, + { + "node": "HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "main": [ + [ + { + "node": "Write Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Write Binary File": { + "main": [ + [ + { + "node": "Execute local file workflow", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/218.json b/packages/testing/playwright/test-workflows/workflows/218.json new file mode 100644 index 0000000000..ad0bb6a7be --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/218.json @@ -0,0 +1,144 @@ +{ + "createdAt": "2021-07-08T14:10:14.879Z", + "updatedAt": "2021-07-08T14:14:36.514Z", + "id": "218", + "name": "Bannerbear:Image:create get:Template:get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "f26a5bfe-df4f-4716-aa45-f2fe142d5845" + }, + { + "parameters": { + "templateId": "0MkzgpZ46zEDyVrmlP", + "additionalFields": { + "waitForImage": true + }, + "modificationsUi": { + "modificationsValues": [ + { + "name": "message", + "text": "Testing n8n qa", + "color": "#0911A0", + "background": "#EEEEEE" + } + ] + } + }, + "name": "Bannerbear", + "type": "n8n-nodes-base.bannerbear", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "bannerbearApi": { + "id": "211", + "name": "Bannerbear API creds" + } + }, + "id": "3f8c4976-b1c4-44b7-83ac-fcd90a1fea72" + }, + { + "parameters": { + "operation": "get", + "imageId": "={{$node[\"Bannerbear\"].json[\"uid\"]}}" + }, + "name": "Bannerbear1", + "type": "n8n-nodes-base.bannerbear", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "bannerbearApi": { + "id": "211", + "name": "Bannerbear API creds" + } + }, + "id": "cc376054-599f-42f9-8d13-aca26f93043f" + }, + { + "parameters": { + "resource": "template", + "operation": "getAll" + }, + "name": "Bannerbear2", + "type": "n8n-nodes-base.bannerbear", + "typeVersion": 1, + "position": [900, 400], + "credentials": { + "bannerbearApi": { + "id": "211", + "name": "Bannerbear API creds" + } + }, + "id": "a76b8466-0c76-4eba-bd95-db664ee77b00" + }, + { + "parameters": { + "resource": "template", + "templateId": "0MkzgpZ46zEDyVrmlP" + }, + "name": "Bannerbear3", + "type": "n8n-nodes-base.bannerbear", + "typeVersion": 1, + "position": [900, 250], + "credentials": { + "bannerbearApi": { + "id": "211", + "name": "Bannerbear API creds" + } + }, + "id": "cb9a1de6-9dd7-41c9-aa8b-d71e605ee8b9" + } + ], + "connections": { + "Bannerbear": { + "main": [ + [ + { + "node": "Bannerbear1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Bannerbear1": { + "main": [ + [ + { + "node": "Bannerbear2", + "type": "main", + "index": 0 + }, + { + "node": "Bannerbear3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Bannerbear", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/219.json b/packages/testing/playwright/test-workflows/workflows/219.json new file mode 100644 index 0000000000..80feda22e7 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/219.json @@ -0,0 +1,356 @@ +{ + "createdAt": "2021-06-25T06:08:38.364Z", + "updatedAt": "2021-07-08T15:34:23.744Z", + "id": "219", + "name": "Automizy:List:create get update getAll delete:Contact:create get update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [270, 380], + "id": "b4a081a6-9a54-4e52-8e77-18d8d3df627c" + }, + { + "parameters": { + "resource": "list", + "name": "=List{{Date.now()}}" + }, + "name": "Automizy", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [440, 380], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "b1dceb9d-e1b8-4b55-9e64-158a2b8729cb" + }, + { + "parameters": { + "resource": "list", + "operation": "get", + "listId": "={{$node[\"Automizy\"].json[\"id\"]}}" + }, + "name": "Automizy1", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [640, 380], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "2c8e8668-1982-443f-8047-4291009cb7a9" + }, + { + "parameters": { + "resource": "list", + "operation": "update", + "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", + "name": "=UpdatedList{{Date.now()}}" + }, + "name": "Automizy2", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [790, 380], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "3fd15d30-4310-4556-86d8-d065af81e1f8" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "limit": 1, + "additionalFields": { + "direction": "desc", + "fields": "id,name", + "sortBy": "name" + } + }, + "name": "Automizy3", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [940, 380], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "c1fbd84b-5857-4309-948e-514684bdeb9a" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "listId": "={{$node[\"Automizy\"].json[\"id\"]}}" + }, + "name": "Automizy4", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [1090, 380], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "35dd2b7a-d40d-4714-a689-b0c8983538df" + }, + { + "parameters": { + "email": "=fakeemail{{Date.now()}}@gmail.com", + "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", + "additionalFields": { + "customFieldsUi": { + "customFieldsValues": [ + { + "key": 3, + "value": "=Company{{Date.now()}}" + }, + { + "key": 1, + "value": "=Firstname{{Date.now()}}" + }, + { + "key": 2, + "value": "=Second{{Date.now()}}" + }, + { + "key": 4, + "value": "=Position{{Date.now()}}" + } + ] + }, + "status": "ACTIVE", + "tags": ["test"] + } + }, + "name": "Automizy5", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [590, 530], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "f5681b6a-76c6-464c-bdfe-778fc2ebdec3" + }, + { + "parameters": { + "operation": "get", + "contactId": "={{$node[\"Automizy5\"].json[\"id\"]}}" + }, + "name": "Automizy6", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [740, 530], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "23c3ebef-deab-48bf-a0f6-bdbb172d3634" + }, + { + "parameters": { + "operation": "update", + "email": "={{$node[\"Automizy5\"].json[\"email\"]}}", + "updateFields": { + "customFieldsUi": { + "customFieldsValues": [ + { + "key": 3, + "value": "UpdatedCompany" + } + ] + }, + "removeTags": ["test"], + "status": "BANNED" + } + }, + "name": "Automizy7", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [890, 530], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "2c376196-e422-411f-b84d-9a6e86898061" + }, + { + "parameters": { + "operation": "getAll", + "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", + "limit": 1, + "additionalFields": { + "fields": "id,status" + } + }, + "name": "Automizy8", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [1040, 530], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "dcef5e3c-3ae9-49c9-81cf-70197ae5cf9f" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"Automizy5\"].json[\"id\"]}}" + }, + "name": "Automizy9", + "type": "n8n-nodes-base.automizy", + "typeVersion": 1, + "position": [1190, 530], + "credentials": { + "automizyApi": { + "id": "212", + "name": "Automizy API creds" + } + }, + "id": "9e848425-9b56-497d-bc56-a934e80ec686" + } + ], + "connections": { + "Automizy": { + "main": [ + [ + { + "node": "Automizy5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy1": { + "main": [ + [ + { + "node": "Automizy2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy2": { + "main": [ + [ + { + "node": "Automizy3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy3": { + "main": [ + [ + { + "node": "Automizy4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy5": { + "main": [ + [ + { + "node": "Automizy6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy6": { + "main": [ + [ + { + "node": "Automizy7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy7": { + "main": [ + [ + { + "node": "Automizy8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy8": { + "main": [ + [ + { + "node": "Automizy9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Automizy9": { + "main": [ + [ + { + "node": "Automizy1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Automizy", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/22.json b/packages/testing/playwright/test-workflows/workflows/22.json new file mode 100644 index 0000000000..85090566f6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/22.json @@ -0,0 +1,186 @@ +{ + "createdAt": "2021-02-16T16:30:25.114Z", + "updatedAt": "2021-02-16T19:02:02.611Z", + "id": "22", + "name": "Hubspot:ContactList:add remove:Form:getFields submit", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "89975e09-da30-4c6d-8d61-9650d57b9c3d" + }, + { + "parameters": { + "resource": "form", + "formId": "a3c94446-bea8-49be-80a7-c862efe7ceb6" + }, + "name": "Hubspot", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [490, 210], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "3211fe29-82cf-4b3e-95a8-9a35f9daab8a" + }, + { + "parameters": { + "resource": "form", + "operation": "submit", + "formId": "a3c94446-bea8-49be-80a7-c862efe7ceb6", + "additionalFields": {}, + "lengalConsentUi": { + "lengalConsentValues": { + "consentToProcess": true, + "text": "test", + "communicationsUi": { + "communicationValues": [] + } + } + } + }, + "name": "Hubspot1", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [890, 210], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "dfae8bbd-deb9-4584-b5d0-c054d7c68d45" + }, + { + "parameters": { + "resource": "contactList" + }, + "name": "Hubspot2", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [1220, 290], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "disabled": true, + "id": "c05ef08b-1a37-4e96-a4ed-79d07375d395" + }, + { + "parameters": { + "resource": "contactList", + "email": "nodeqa@n8n.io", + "listId": "2" + }, + "name": "Hubspot3", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [500, 410], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "d442252a-bb6c-455d-91c0-7e84b2acd2d0" + }, + { + "parameters": { + "resource": "contactList", + "operation": "remove", + "id": "={{$json[\"updated\"][0]}}", + "listId": "2" + }, + "name": "Hubspot4", + "type": "n8n-nodes-base.hubspot", + "typeVersion": 1, + "position": [700, 410], + "credentials": { + "hubspotApi": { + "id": "11", + "name": "hubsport api key" + } + }, + "id": "80251cfe-7af7-4f16-a8c9-7d9a07ecf296" + }, + { + "parameters": { + "functionCode": "return [{json:{\n email:`test${Date.now().toString().substr(5)}@gmail.com`,\n firstname:'Test first',\n lastname:'Test last',\n message:'Message'\n}}];" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [690, 210], + "notesInFlow": true, + "notes": "Turn field into single json", + "id": "957f2262-d3e3-4f6f-894d-834aa2e12e31" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Hubspot", + "type": "main", + "index": 0 + }, + { + "node": "Hubspot3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hubspot3": { + "main": [ + [ + { + "node": "Hubspot4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Hubspot1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/220.json b/packages/testing/playwright/test-workflows/workflows/220.json new file mode 100644 index 0000000000..58b10d247f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/220.json @@ -0,0 +1,315 @@ +{ + "createdAt": "2021-06-25T06:40:20.761Z", + "updatedAt": "2021-07-16T09:01:07.467Z", + "id": "220", + "name": "Autopilot:List:create getAll:Contact:upsert get getAll delete:ContactList:add exist getAll remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0615b7a0-0786-4868-b269-2a2b0cb2a2fc" + }, + { + "parameters": { + "email": "=Fakeemail{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "Autopilot", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "1b66282f-b944-486c-ac84-e0947f8253db" + }, + { + "parameters": { + "operation": "get", + "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" + }, + "name": "Autopilot1", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "1575e003-c7f1-40af-831b-90fe1eaf7fba" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Autopilot2", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "09f19a0d-0839-4cbe-9c73-5a90ff409606" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" + }, + "name": "Autopilot3", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "9a3fa0ff-117b-4515-bd5f-a573ee304885" + }, + { + "parameters": { + "resource": "list", + "name": "=List{{Date.now()}}" + }, + "name": "Autopilot4", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [500, 100], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "notes": "IGNORED_PROPERTIES=list_id,name,message", + "id": "6b2022b3-cc2e-41a0-9420-83859ad48e64" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "limit": 1 + }, + "name": "Autopilot5", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [650, 100], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "ed2a8101-9083-469f-81d1-5c92a530bb2d" + }, + { + "parameters": { + "resource": "contactList", + "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", + "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" + }, + "name": "Autopilot6", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [950, 450], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "018aaf92-3c41-4a82-92a6-d67c7681a9de" + }, + { + "parameters": { + "resource": "contactList", + "operation": "exist", + "listId": "={{$node[\"Autopilot4\"].json[\"list_id\"]}}", + "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" + }, + "name": "Autopilot7", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [1100, 450], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "9942b084-4991-4d0c-bb43-4a1417c5353c" + }, + { + "parameters": { + "resource": "contactList", + "operation": "getAll", + "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", + "limit": 1 + }, + "name": "Autopilot8", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [1250, 450], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "a130470d-1b45-4077-b7a1-3814443d93a8" + }, + { + "parameters": { + "resource": "contactList", + "operation": "remove", + "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", + "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" + }, + "name": "Autopilot9", + "type": "n8n-nodes-base.autopilot", + "typeVersion": 1, + "position": [1400, 450], + "credentials": { + "autopilotApi": { + "id": "213", + "name": "Autopilot API creds" + } + }, + "id": "76538b0d-f96e-4bbf-83dd-fafb0f1e3edf" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Autopilot4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot": { + "main": [ + [ + { + "node": "Autopilot1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot1": { + "main": [ + [ + { + "node": "Autopilot2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot2": { + "main": [ + [ + { + "node": "Autopilot6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot4": { + "main": [ + [ + { + "node": "Autopilot5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot5": { + "main": [ + [ + { + "node": "Autopilot", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot6": { + "main": [ + [ + { + "node": "Autopilot7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot7": { + "main": [ + [ + { + "node": "Autopilot8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot8": { + "main": [ + [ + { + "node": "Autopilot9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Autopilot9": { + "main": [ + [ + { + "node": "Autopilot3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/221.json b/packages/testing/playwright/test-workflows/workflows/221.json new file mode 100644 index 0000000000..9ae93cf248 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/221.json @@ -0,0 +1,846 @@ +{ + "createdAt": "2021-06-25T10:58:54.559Z", + "updatedAt": "2021-07-09T10:01:28.338Z", + "id": "221", + "name": "Copper:Company:*:Person:*:Opportunity:*:Project:*:Task:*:CustomerSource:getAll:User:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "3524ea35-2975-49aa-8a25-0980af2d16ff" + }, + { + "parameters": { + "name": "=Company{{Date.now()}}", + "additionalFields": { + "address": { + "addressFields": { + "street": "street", + "city": "city", + "state": "state", + "postal_code": "1001", + "country": "country" + } + }, + "details": "Description ", + "email_domain": "=Test{{Date.now()}}", + "phone_numbers": { + "phoneFields": [ + { + "number": "42424242", + "category": "mobile" + } + ] + } + } + }, + "name": "Copper", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [500, 130], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "c7d44454-2d3f-446a-a21f-ba97dee874c2" + }, + { + "parameters": { + "operation": "get", + "companyId": "={{$node[\"Copper\"].json[\"id\"]}}" + }, + "name": "Copper1", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [650, 130], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "80a08b49-e665-4b05-93b3-f4354d107800" + }, + { + "parameters": { + "operation": "update", + "companyId": "={{$node[\"Copper\"].json[\"id\"]}}", + "updateFields": { + "address": { + "addressFields": { + "street": "UpdateStreet", + "city": "UpdatedCity", + "state": "UpdateState", + "postal_code": "1002", + "country": "UpdateCountry" + } + }, + "name": "=Updated{{$node[\"Copper1\"].json[\"name\"]}}" + } + }, + "name": "Copper2", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [800, 130], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "c3ada9b0-26af-4531-b932-e2f0a4c672d9" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filterFields": { + "name": "={{$node[\"Copper2\"].json[\"name\"]}}" + } + }, + "name": "Copper3", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [950, 130], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "ee32ed20-d5f4-40e3-8288-a678df7c9c98" + }, + { + "parameters": { + "operation": "delete", + "companyId": "={{$node[\"Copper\"].json[\"id\"]}}" + }, + "name": "Copper4", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1100, 130], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "b4c3643c-e8d5-41ce-87fd-9edd54201956" + }, + { + "parameters": { + "resource": "customerSource", + "limit": 1 + }, + "name": "Copper5", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [650, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "ec0a392e-77a5-4c30-a1f1-31554e924160" + }, + { + "parameters": { + "resource": "person", + "name": "=Person{{Date.now()}}", + "additionalFields": { + "details": "Person description - Test" + } + }, + "name": "Copper6", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [500, 290], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "de249aff-db75-4937-a878-25ad37c5b160" + }, + { + "parameters": { + "resource": "person", + "operation": "get", + "personId": "={{$node[\"Copper6\"].json[\"id\"]}}" + }, + "name": "Copper7", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [750, 290], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "2ab13b8a-2012-4b79-8b66-c01e2e539168" + }, + { + "parameters": { + "resource": "person", + "operation": "update", + "personId": "={{$node[\"Copper6\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Copper7\"].json[\"name\"]}}" + } + }, + "name": "Copper8", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [900, 290], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "036bce7e-3450-4dc5-a8d9-09031be7b283" + }, + { + "parameters": { + "resource": "person", + "operation": "getAll", + "limit": 1, + "filterFields": {} + }, + "name": "Copper9", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1050, 290], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "0ee23c1e-c3fc-44d2-ab7f-962fcb519d5f" + }, + { + "parameters": { + "resource": "person", + "operation": "delete", + "personId": "={{$node[\"Copper6\"].json[\"id\"]}}" + }, + "name": "Copper10", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1200, 290], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "23ceb77e-bc3d-4e38-8d9c-339149e82555" + }, + { + "parameters": { + "resource": "project", + "name": "=Project{{Date.now()}}", + "additionalFields": { + "details": "Detail projects - Test", + "status": "Open" + } + }, + "name": "Copper11", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [500, 590], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "987fcbb0-1be5-49b7-88cc-706e091200c4" + }, + { + "parameters": { + "resource": "project", + "operation": "get", + "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}" + }, + "name": "Copper12", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [650, 590], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "8c6eab76-1955-46f8-99c0-f6e7cba6d089" + }, + { + "parameters": { + "resource": "project", + "operation": "update", + "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}", + "updateFields": { + "details": "Completed Update", + "name": "=Upated{{$node[\"Copper12\"].json[\"name\"]}}", + "status": "Completed" + } + }, + "name": "Copper13", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [800, 590], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "bb59c271-79e0-48f1-8f7c-2495fa913b16" + }, + { + "parameters": { + "resource": "project", + "operation": "getAll", + "limit": 1, + "filterFields": {} + }, + "name": "Copper14", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [950, 590], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "322d58e4-799a-43f4-893a-93ef541e1250" + }, + { + "parameters": { + "resource": "project", + "operation": "delete", + "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}" + }, + "name": "Copper15", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1100, 590], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "3319110f-6cee-48da-a712-02e462c6eb63" + }, + { + "parameters": { + "resource": "task", + "name": "=Task{{Date.now()}}", + "additionalFields": { + "details": "Task description", + "priority": "High", + "status": "Open" + } + }, + "name": "Copper16", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [500, 740], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "cf53821f-74de-44c4-9e18-da30dbebba9e" + }, + { + "parameters": { + "resource": "task", + "operation": "get", + "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}" + }, + "name": "Copper17", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [650, 740], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "564d21cd-fc4c-4b55-8068-bd4c559aa73d" + }, + { + "parameters": { + "resource": "task", + "operation": "update", + "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}", + "updateFields": { + "details": "Update task description", + "name": "=Updated{{$node[\"Copper17\"].json[\"name\"]}}", + "priority": "None", + "status": "Completed" + } + }, + "name": "Copper18", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [800, 740], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "1e015bc3-f684-42da-80ff-d523ba36fa5d" + }, + { + "parameters": { + "resource": "task", + "operation": "getAll", + "limit": 1, + "filterFields": { + "project_ids": "={{$node[\"Copper18\"].json[\"id\"]}}," + } + }, + "name": "Copper19", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [950, 740], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "e8986a4b-02b9-4596-9512-078f88be2431" + }, + { + "parameters": { + "resource": "task", + "operation": "delete", + "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}" + }, + "name": "Copper20", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1100, 740], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "b5cd7438-3115-4146-8607-34b67476f5b3" + }, + { + "parameters": { + "resource": "user", + "limit": 1 + }, + "name": "Copper21", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [500, -10], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "94cdc07a-0c7e-4f25-a1c0-e1385358a455" + }, + { + "parameters": { + "resource": "opportunity", + "name": "=Opportunity{{Date.now()}}", + "customerSourceId": "={{$node[\"Copper5\"].json[\"id\"]}}", + "primaryContactId": "={{$node[\"Copper6\"].json[\"id\"]}}" + }, + "name": "Copper22", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [800, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "c8d1ed81-1892-4687-9506-4df121ba7b53" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "get", + "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}" + }, + "name": "Copper23", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [950, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "8aa793b5-49d9-4329-9f59-95d265d9df92" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "update", + "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Copper23\"].json[\"name\"]}}" + } + }, + "name": "Copper24", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1100, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "64ded247-0c6f-4256-9689-dbc4738df63a" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "getAll", + "limit": 1, + "filterFields": {} + }, + "name": "Copper25", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1250, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "3834c3ed-308c-46c7-9aa6-3bc441d11897" + }, + { + "parameters": { + "resource": "opportunity", + "operation": "delete", + "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}" + }, + "name": "Copper26", + "type": "n8n-nodes-base.copper", + "typeVersion": 1, + "position": [1400, 440], + "credentials": { + "copperApi": { + "id": "214", + "name": "Copper API creds" + } + }, + "id": "6c2b484c-d78f-412a-ac33-eb5637fd30fa" + } + ], + "connections": { + "Copper": { + "main": [ + [ + { + "node": "Copper1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper1": { + "main": [ + [ + { + "node": "Copper2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper2": { + "main": [ + [ + { + "node": "Copper3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper3": { + "main": [ + [ + { + "node": "Copper4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper6": { + "main": [ + [ + { + "node": "Copper5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper7": { + "main": [ + [ + { + "node": "Copper8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper8": { + "main": [ + [ + { + "node": "Copper9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper9": { + "main": [ + [ + { + "node": "Copper10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper11": { + "main": [ + [ + { + "node": "Copper12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper12": { + "main": [ + [ + { + "node": "Copper13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper13": { + "main": [ + [ + { + "node": "Copper14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper14": { + "main": [ + [ + { + "node": "Copper15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper16": { + "main": [ + [ + { + "node": "Copper17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper17": { + "main": [ + [ + { + "node": "Copper18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper18": { + "main": [ + [ + { + "node": "Copper19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper19": { + "main": [ + [ + { + "node": "Copper20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Copper", + "type": "main", + "index": 0 + }, + { + "node": "Copper6", + "type": "main", + "index": 0 + }, + { + "node": "Copper11", + "type": "main", + "index": 0 + }, + { + "node": "Copper16", + "type": "main", + "index": 0 + }, + { + "node": "Copper21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper5": { + "main": [ + [ + { + "node": "Copper22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper22": { + "main": [ + [ + { + "node": "Copper23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper23": { + "main": [ + [ + { + "node": "Copper24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper24": { + "main": [ + [ + { + "node": "Copper25", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper25": { + "main": [ + [ + { + "node": "Copper26", + "type": "main", + "index": 0 + } + ] + ] + }, + "Copper26": { + "main": [ + [ + { + "node": "Copper7", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/222.json b/packages/testing/playwright/test-workflows/workflows/222.json new file mode 100644 index 0000000000..905937c5ca --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/222.json @@ -0,0 +1,301 @@ +{ + "createdAt": "2021-07-02T07:59:24.159Z", + "updatedAt": "2021-07-09T10:56:03.728Z", + "id": "222", + "name": "Lemlist:Lead:create get unsubscribe delete:Campaign:getAll:Activity:getAll:Team:get:Unsubscribe:add getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "3fd92007-e246-4af4-a0bd-af520944645a" + }, + { + "parameters": { + "limit": 1, + "filters": { + "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}" + } + }, + "name": "Lemlist", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [590, 300], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "487b4ba3-99b4-468f-b462-d0c7afb9c13f" + }, + { + "parameters": { + "resource": "campaign", + "limit": 1 + }, + "name": "Lemlist1", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "7d261b8d-cff1-4d87-b356-7a4f3be78428" + }, + { + "parameters": { + "resource": "team" + }, + "name": "Lemlist2", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "df32604f-1d9a-4a7f-9add-1b154962f7ac" + }, + { + "parameters": { + "resource": "lead", + "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "Lemlist3", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "1432df44-c5b6-4637-a3f2-379e34f75fae" + }, + { + "parameters": { + "resource": "lead", + "operation": "get", + "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" + }, + "name": "Lemlist4", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "ded2cabd-92e8-4881-ab92-a469efccaef1" + }, + { + "parameters": { + "resource": "lead", + "operation": "unsubscribe", + "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", + "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" + }, + "name": "Lemlist5", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [900, 150], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "de9bdf0c-0f64-4d90-bd11-4f11fb1e7184" + }, + { + "parameters": { + "resource": "lead", + "operation": "delete", + "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", + "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" + }, + "name": "Lemlist6", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [1050, 150], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "364bf6ff-2417-46b0-a0ee-5a4727cf7228" + }, + { + "parameters": { + "resource": "unsubscribe", + "email": "=fakeemail{{Date.now()}}@mail.test" + }, + "name": "Lemlist7", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "2d0091c7-b0d9-43ff-b523-7e31bd14c872" + }, + { + "parameters": { + "resource": "unsubscribe", + "operation": "getAll", + "limit": 1 + }, + "name": "Lemlist9", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "a9b87222-01ce-42d8-9d58-21c82f3fd2eb" + }, + { + "parameters": { + "resource": "unsubscribe", + "operation": "delete", + "email": "={{$node[\"Lemlist7\"].json[\"email\"]}}" + }, + "name": "Lemlist10", + "type": "n8n-nodes-base.lemlist", + "typeVersion": 1, + "position": [750, 450], + "credentials": { + "lemlistApi": { + "id": "215", + "name": "Lemlist API creds" + } + }, + "id": "d967d1a8-66ac-46f7-9930-10509859fe1c" + } + ], + "connections": { + "Lemlist": { + "main": [[]] + }, + "Lemlist1": { + "main": [ + [ + { + "node": "Lemlist", + "type": "main", + "index": 0 + }, + { + "node": "Lemlist3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Lemlist3": { + "main": [ + [ + { + "node": "Lemlist4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Lemlist4": { + "main": [ + [ + { + "node": "Lemlist5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Lemlist5": { + "main": [ + [ + { + "node": "Lemlist6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Lemlist1", + "type": "main", + "index": 0 + }, + { + "node": "Lemlist2", + "type": "main", + "index": 0 + }, + { + "node": "Lemlist7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Lemlist7": { + "main": [ + [ + { + "node": "Lemlist9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Lemlist9": { + "main": [ + [ + { + "node": "Lemlist10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/223.json b/packages/testing/playwright/test-workflows/workflows/223.json new file mode 100644 index 0000000000..d4860b6d07 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/223.json @@ -0,0 +1,57 @@ +{ + "createdAt": "2021-07-02T10:27:33.975Z", + "updatedAt": "2021-07-09T11:10:22.318Z", + "id": "223", + "name": "LingvaNex:Translate", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "61781654-9992-4dd9-8224-943ecf740806" + }, + { + "parameters": { + "text": "automation", + "translateTo": "de_DE", + "options": { + "from": "en_US" + } + }, + "name": "LingvaNex", + "type": "n8n-nodes-base.lingvaNex", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "lingvaNexApi": { + "id": "216", + "name": "LingvaNex API creds" + } + }, + "id": "68e11f02-34e0-47d6-a175-81abf5002b28" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "LingvaNex", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/224.json b/packages/testing/playwright/test-workflows/workflows/224.json new file mode 100644 index 0000000000..7853d031a8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/224.json @@ -0,0 +1,350 @@ +{ + "createdAt": "2021-07-05T14:32:19.990Z", + "updatedAt": "2021-07-09T12:39:46.228Z", + "id": "224", + "name": "QuickBase:Record:create update getAll upsert:Report:run get:Field:getAll:File:download", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 250], + "id": "bf5f914e-83a9-4ad6-a539-d2eda48cf8ea" + }, + { + "parameters": { + "resource": "field", + "tableId": "brkf6p68v", + "limit": 1, + "options": {} + }, + "name": "Quick Base", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [450, 90], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "f5a894fe-fd72-43d9-8d19-a3913ad04c56" + }, + { + "parameters": { + "tableId": "brkf6p68v", + "columns": "name", + "simple": false, + "options": { + "fields": [2, 1, 6, 3] + } + }, + "name": "Quick Base1", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [590, 240], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "873001c3-3c1f-4311-9b5a-a04d3bdf5321" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=TestRecordName{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [450, 240], + "id": "c4613406-ddd6-4f8e-bef9-cf65f1250840" + }, + { + "parameters": { + "operation": "update", + "tableId": "brkf6p68v", + "columns": "name", + "updateKey": "=name", + "simple": false, + "options": { + "fields": [2, 1, 6, 3] + } + }, + "name": "Quick Base2", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [890, 240], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "0a93b666-c58c-4b85-950b-1abb94fe66d8" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=UpdatedTestRecordName{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [740, 240], + "id": "72a5922b-dbb9-4e44-85d1-6bb89eef35b0" + }, + { + "parameters": { + "operation": "getAll", + "tableId": "brkf6p68v", + "limit": 1, + "options": { + "select": [6, 3] + } + }, + "name": "Quick Base3", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [1040, 240], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "8529e62b-8274-46d2-be2f-bdba8dae2765" + }, + { + "parameters": { + "operation": "upsert", + "tableId": "brkf6p68v", + "columns": "name", + "updateKey": "name", + "options": { + "fields": [6, 3] + } + }, + "name": "Quick Base4", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [1340, 240], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "ff322a95-9fe6-4432-98fe-e655c69c212a" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "=TestUpsertRecordName{{Date.now()}}" + } + ] + }, + "options": {} + }, + "name": "Set2", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1190, 240], + "id": "7df37b96-5357-4f1b-ae79-deaa537b7a79" + }, + { + "parameters": { + "resource": "report", + "operation": "run", + "tableId": "brkf6p68v", + "reportId": "1", + "returnAll": false, + "limit": 1 + }, + "name": "Quick Base5", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [450, 390], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "2b8bbaa2-0983-4074-932e-4ba02d74448b" + }, + { + "parameters": { + "resource": "report", + "tableId": "brkf6p68v", + "reportId": "1" + }, + "name": "Quick Base6", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [600, 390], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "4b2c54e4-17c3-4648-aa4a-6bd9052a8364" + }, + { + "parameters": { + "resource": "file", + "tableId": "brkf6p68v", + "recordId": "1", + "fieldId": "9" + }, + "name": "Quick Base7", + "type": "n8n-nodes-base.quickbase", + "typeVersion": 1, + "position": [450, 540], + "credentials": { + "quickbaseApi": { + "id": "217", + "name": "Quick Base API creds" + } + }, + "id": "70bd2916-790b-4791-8bd3-964ecca4d109" + } + ], + "connections": { + "Set": { + "main": [ + [ + { + "node": "Quick Base1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Quick Base1": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Quick Base2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Quick Base2": { + "main": [ + [ + { + "node": "Quick Base3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Quick Base3": { + "main": [ + [ + { + "node": "Set2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set2": { + "main": [ + [ + { + "node": "Quick Base4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + }, + { + "node": "Quick Base", + "type": "main", + "index": 0 + }, + { + "node": "Quick Base5", + "type": "main", + "index": 0 + }, + { + "node": "Quick Base7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Quick Base5": { + "main": [ + [ + { + "node": "Quick Base6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Quick Base7": { + "main": [[]] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/225.json b/packages/testing/playwright/test-workflows/workflows/225.json new file mode 100644 index 0000000000..f9a4011440 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/225.json @@ -0,0 +1,498 @@ +{ + "createdAt": "2021-07-06T12:49:19.325Z", + "updatedAt": "2021-07-09T13:11:16.807Z", + "id": "225", + "name": "Salesmate:Company:*:Deal:*:Activity:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d47537bc-67a1-47ac-9410-957dda70e3f4" + }, + { + "parameters": { + "resource": "company", + "name": "=Company{{Date.now()}}", + "owner": 1, + "additionalFields": { + "description": "descrip company" + } + }, + "name": "Salesmate", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [450, 150], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "9e381841-e89b-4231-a1ca-b58c2b894dfc" + }, + { + "parameters": { + "resource": "company", + "operation": "get", + "id": "={{$node[\"Salesmate\"].json[\"id\"]}}" + }, + "name": "Salesmate1", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "da6626ca-4b9e-4cec-bf60-103a042ac6f3" + }, + { + "parameters": { + "resource": "company", + "operation": "update", + "id": "={{$node[\"Salesmate\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Salesmate\"].json[\"name\"]}}", + "description": "=Updated - {{$node[\"Salesmate\"].json[\"description\"]}}" + } + }, + "name": "Salesmate2", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "9aed3a7e-ec9c-4ff0-81b7-feec1f0ecb19" + }, + { + "parameters": { + "resource": "company", + "operation": "getAll", + "limit": 1, + "options": { + "fields": "id,name,description", + "sortBy": "" + }, + "filters": { + "filtersUi": { + "conditions": { + "conditionsUi": [ + { + "condition": "STARTS_WITH", + "value": "Updated" + } + ] + } + } + } + }, + "name": "Salesmate3", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [900, 150], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "1473e087-a4e1-42da-8ef9-a3bbd86727ce" + }, + { + "parameters": { + "resource": "company", + "operation": "delete", + "id": "={{$node[\"Salesmate\"].json[\"id\"]}}" + }, + "name": "Salesmate4", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [1050, 150], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "85405bf3-34f5-495b-9f56-3cc5c6825b89" + }, + { + "parameters": { + "resource": "deal", + "title": "=Deal{{Date.now()}}", + "owner": 1, + "primaryContact": 2, + "pipeline": "Sales", + "stage": "New (Untouched)", + "currency": "USD", + "additionalFields": { + "description": "description", + "dealValue": 100 + } + }, + "name": "Salesmate5", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "30c81868-cea1-44bd-bacf-a08b131e4a42" + }, + { + "parameters": { + "resource": "deal", + "operation": "get", + "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}" + }, + "name": "Salesmate6", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "4959dbb6-bc71-4b26-87f6-9bb86829dc53" + }, + { + "parameters": { + "resource": "deal", + "operation": "update", + "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Salesmate6\"].json[\"title\"]}}", + "status": "Lost", + "stage": "Contacted" + } + }, + "name": "Salesmate7", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "0af25087-9407-4327-bb19-85a7c468ae19" + }, + { + "parameters": { + "resource": "deal", + "operation": "getAll", + "limit": 1, + "options": { + "sortBy": "createdAt", + "sortOrder": "desc" + } + }, + "name": "Salesmate8", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "9ec365f7-9638-42dd-9aa6-9342a4dacd46" + }, + { + "parameters": { + "resource": "deal", + "operation": "delete", + "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}" + }, + "name": "Salesmate9", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "97f624b7-65f4-4192-8e9d-3801ea3ca34c" + }, + { + "parameters": { + "title": "=Activity{{Date.now()}}", + "owner": 1, + "type": "meeting", + "additionalFields": { + "description": "act descrp", + "duration": 30 + } + }, + "name": "Salesmate10", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "766fead2-c755-41cc-b43d-394a57791d74" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}" + }, + "name": "Salesmate11", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "7df4f89c-f88d-49d4-b22c-9c5caf9bef69" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}", + "updateFields": { + "title": "=Updated{{$node[\"Salesmate11\"].json[\"title\"]}}", + "description": "Updated description", + "isCompleted": true + } + }, + "name": "Salesmate12", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [750, 450], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "f4498a03-3082-4bba-9531-ff896042b330" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": { + "sortBy": "createdAt", + "sortOrder": "desc" + } + }, + "name": "Salesmate13", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [900, 450], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "c2f0236f-1e0f-47bd-b53a-daf3f468e3ba" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}" + }, + "name": "Salesmate14", + "type": "n8n-nodes-base.salesmate", + "typeVersion": 1, + "position": [1050, 450], + "credentials": { + "salesmateApi": { + "id": "218", + "name": "Salesmate API creds" + } + }, + "id": "d602aba4-2d19-42cd-9e1c-735f2ffae4c4" + } + ], + "connections": { + "Salesmate": { + "main": [ + [ + { + "node": "Salesmate1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate1": { + "main": [ + [ + { + "node": "Salesmate2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate2": { + "main": [ + [ + { + "node": "Salesmate3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate3": { + "main": [ + [ + { + "node": "Salesmate4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate5": { + "main": [ + [ + { + "node": "Salesmate6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate6": { + "main": [ + [ + { + "node": "Salesmate7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate7": { + "main": [ + [ + { + "node": "Salesmate8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate8": { + "main": [ + [ + { + "node": "Salesmate9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate10": { + "main": [ + [ + { + "node": "Salesmate11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate11": { + "main": [ + [ + { + "node": "Salesmate12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate12": { + "main": [ + [ + { + "node": "Salesmate13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Salesmate13": { + "main": [ + [ + { + "node": "Salesmate14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Salesmate", + "type": "main", + "index": 0 + }, + { + "node": "Salesmate5", + "type": "main", + "index": 0 + }, + { + "node": "Salesmate10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/226.json b/packages/testing/playwright/test-workflows/workflows/226.json new file mode 100644 index 0000000000..c0c9ed499f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/226.json @@ -0,0 +1,106 @@ +{ + "createdAt": "2021-07-07T14:29:45.509Z", + "updatedAt": "2021-07-09T13:40:17.209Z", + "id": "226", + "name": "UnleashedSoftware:SakesOrder:getAll:StockOnHand:getAll get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e60708c7-7fc5-4b69-9181-7dd94ce4c511" + }, + { + "parameters": { + "limit": 1, + "filters": {} + }, + "name": "Unleashed Software", + "type": "n8n-nodes-base.unleashedSoftware", + "typeVersion": 1, + "position": [500, 230], + "credentials": { + "unleashedSoftwareApi": { + "id": "219", + "name": "Unleashed API creds" + } + }, + "id": "76856236-9d00-497b-a162-71621943085d" + }, + { + "parameters": { + "resource": "stockOnHand", + "limit": 1, + "filters": {} + }, + "name": "Unleashed Software1", + "type": "n8n-nodes-base.unleashedSoftware", + "typeVersion": 1, + "position": [500, 380], + "credentials": { + "unleashedSoftwareApi": { + "id": "219", + "name": "Unleashed API creds" + } + }, + "id": "f5f1e555-171a-4a6c-a2c0-52c2cd763a9a" + }, + { + "parameters": { + "resource": "stockOnHand", + "operation": "get", + "productId": "={{$node[\"Unleashed Software1\"].json[\"Guid\"]}}" + }, + "name": "Unleashed Software2", + "type": "n8n-nodes-base.unleashedSoftware", + "typeVersion": 1, + "position": [650, 380], + "credentials": { + "unleashedSoftwareApi": { + "id": "219", + "name": "Unleashed API creds" + } + }, + "id": "f0e49947-de25-46b8-8e00-0cc1967832a1" + } + ], + "connections": { + "Unleashed Software1": { + "main": [ + [ + { + "node": "Unleashed Software2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Unleashed Software", + "type": "main", + "index": 0 + }, + { + "node": "Unleashed Software1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/227.json b/packages/testing/playwright/test-workflows/workflows/227.json new file mode 100644 index 0000000000..cab939a52f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/227.json @@ -0,0 +1,150 @@ +{ + "createdAt": "2021-07-08T14:10:14.879Z", + "updatedAt": "2021-07-09T14:05:22.996Z", + "id": "227", + "name": "Flow:Task:create get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "077a12f0-e2c8-4990-bf0c-3705208c8ada" + }, + { + "parameters": { + "workspaceId": "473181", + "name": "=Task{{Date.now()}}", + "additionalFields": { + "noteContent": "Task content", + "noteMimeType": "text/plain", + "position": 1 + } + }, + "name": "Flow", + "type": "n8n-nodes-base.flow", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "flowApi": { + "id": "220", + "name": "Flow API creds" + } + }, + "id": "2a76f52f-0b77-4c76-bbca-c54e6581d13e" + }, + { + "parameters": { + "operation": "get", + "taskId": "={{$node[\"Flow\"].json[\"id\"]}}", + "filters": {} + }, + "name": "Flow1", + "type": "n8n-nodes-base.flow", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "flowApi": { + "id": "220", + "name": "Flow API creds" + } + }, + "id": "c1f80e78-bad4-457f-8b00-a239a070ca09" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Flow2", + "type": "n8n-nodes-base.flow", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "flowApi": { + "id": "220", + "name": "Flow API creds" + } + }, + "id": "5ea201ba-164f-4ed0-be1d-d893930d6568" + }, + { + "parameters": { + "operation": "update", + "workspaceId": "473181", + "taskId": "={{$node[\"Flow\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated{{$node[\"Flow1\"].json[\"task\"][\"name\"]}}", + "completed": true + } + }, + "name": "Flow3", + "type": "n8n-nodes-base.flow", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "flowApi": { + "id": "220", + "name": "Flow API creds" + } + }, + "id": "df48712d-b64d-43b8-8493-f053d5b52804" + } + ], + "connections": { + "Flow": { + "main": [ + [ + { + "node": "Flow1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Flow1": { + "main": [ + [ + { + "node": "Flow2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Flow2": { + "main": [ + [ + { + "node": "Flow3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Flow", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/229.json b/packages/testing/playwright/test-workflows/workflows/229.json new file mode 100644 index 0000000000..02f2a252c8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/229.json @@ -0,0 +1,662 @@ +{ + "createdAt": "2022-09-23T13:17:35.393Z", + "updatedAt": "2022-09-23T13:17:42.056Z", + "id": "229", + "name": "GoogleDrive:Folder:create share delete:File:upload share list download copy delete copy (RL)", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 450], + "id": "af503bcd-fa8c-4eaa-9c50-632c7692c6e8" + }, + { + "parameters": { + "resource": "folder", + "name": "testFolder", + "options": {} + }, + "name": "Google Drive", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [500, 290], + "id": "8b134518-c868-4ea9-8811-0a687f2485af", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "share", + "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}", + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive1", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [670, 290], + "id": "b31303e6-a55d-4844-b829-35ec7b5ecfef", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}" + }, + "name": "Google Drive2", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [830, 290], + "id": "6868f66e-f772-4219-b633-774b1c2b621f", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "fileContent": "Test File Content", + "name": "testFile", + "options": {} + }, + "name": "Google Drive3", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [500, 460], + "id": "5a748249-c5e0-4d69-93dc-175b9f8d6416", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "share", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive4", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [660, 460], + "id": "de39ddca-a217-4c46-b4d9-52a7eba74223", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "list", + "limit": 1, + "options": {} + }, + "name": "Google Drive5", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [820, 460], + "id": "46ef5f25-0096-4ee9-9930-ad476fcd0cb3", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "download", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", + "options": {} + }, + "name": "Google Drive6", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [960, 460], + "id": "a169ecfe-389b-41a3-8e27-e1f8e85afbc9", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "copy", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", + "options": {} + }, + "name": "Google Drive7", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1100, 460], + "id": "f4a9acb4-c943-4e96-b830-6081a55ef14b", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "delete", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" + }, + "name": "Google Drive8", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1240, 460], + "id": "b8dcbf39-f49f-4a58-8101-8effab64eb3e", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "delete", + "fileId": "={{$node[\"Google Drive7\"].json[\"id\"]}}" + }, + "name": "Google Drive9", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1380, 460], + "id": "bea4ea40-6bd8-4378-a0b0-ad17b9bd237f", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "content": "## Legacy mode", + "height": 494.0510948905113, + "width": 1240.9160583941607 + }, + "id": "4a46fffc-779d-4d3e-865c-dd165caf1b0e", + "name": "Note", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [340, 160] + }, + { + "parameters": { + "operation": "delete", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive18\"].json[\"id\"]}}", + "mode": "id" + } + }, + "name": "Google Drive10", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1400, 980], + "id": "b93f0486-16e4-4d59-9894-7e57cabb3a29", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "name": "testFolder", + "options": {} + }, + "name": "Google Drive11", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [520, 820], + "id": "9785352c-2a2d-4ca1-baa7-0a310fd04413", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "share", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive11\"].json[\"id\"]}}", + "mode": "id" + }, + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive12", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [680, 820], + "id": "a3fba084-d9c2-4311-a893-f2280313a784", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive11\"].json[\"id\"]}}", + "mode": "id" + } + }, + "name": "Google Drive13", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [840, 820], + "id": "2f78286f-efd2-4284-b5d4-7f58abebf896", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "fileContent": "Test File Content", + "name": "testFile", + "options": {} + }, + "name": "Google Drive14", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [520, 980], + "id": "c85b7694-685b-4fb3-bd63-46c2d5099c2e", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "share", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", + "mode": "id" + }, + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive15", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [680, 980], + "id": "be2a8cd4-1e04-47cf-8073-109b7f7af275", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "list", + "limit": 1, + "options": {} + }, + "name": "Google Drive16", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [840, 980], + "id": "47d4441f-8694-46fa-8100-8b9119782ec1", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "download", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", + "mode": "id" + }, + "options": {} + }, + "name": "Google Drive17", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [980, 980], + "id": "e4717e9d-3336-4654-9a1c-9839d6e52f92", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "copy", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", + "mode": "id" + }, + "options": {} + }, + "name": "Google Drive18", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1120, 980], + "id": "91da5b53-a560-49dd-aac0-fe16f6c5fc09", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "operation": "delete", + "fileId": { + "__rl": true, + "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", + "mode": "id" + } + }, + "name": "Google Drive19", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1260, 980], + "id": "560163a2-ece9-48c4-a3c2-bdc8387626c1", + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + } + }, + { + "parameters": { + "content": "## With new RL mode", + "height": 494.0510948905113, + "width": 1240.9160583941607 + }, + "id": "3c49a1f7-7b5a-42fd-9b27-0b80f853e879", + "name": "Note1", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [340, 680] + } + ], + "connections": { + "Google Drive": { + "main": [ + [ + { + "node": "Google Drive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive1": { + "main": [ + [ + { + "node": "Google Drive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Drive11", + "type": "main", + "index": 0 + }, + { + "node": "Google Drive14", + "type": "main", + "index": 0 + }, + { + "node": "Google Drive3", + "type": "main", + "index": 0 + }, + { + "node": "Google Drive", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive3": { + "main": [ + [ + { + "node": "Google Drive4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive4": { + "main": [ + [ + { + "node": "Google Drive5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive5": { + "main": [ + [ + { + "node": "Google Drive6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive6": { + "main": [ + [ + { + "node": "Google Drive7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive7": { + "main": [ + [ + { + "node": "Google Drive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive8": { + "main": [ + [ + { + "node": "Google Drive9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive11": { + "main": [ + [ + { + "node": "Google Drive12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive12": { + "main": [ + [ + { + "node": "Google Drive13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive14": { + "main": [ + [ + { + "node": "Google Drive15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive15": { + "main": [ + [ + { + "node": "Google Drive16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive16": { + "main": [ + [ + { + "node": "Google Drive17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive17": { + "main": [ + [ + { + "node": "Google Drive18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive18": { + "main": [ + [ + { + "node": "Google Drive19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive19": { + "main": [ + [ + { + "node": "Google Drive10", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": {}, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/230.json b/packages/testing/playwright/test-workflows/workflows/230.json new file mode 100644 index 0000000000..51a48d231f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/230.json @@ -0,0 +1,67 @@ +{ + "createdAt": "2023-11-14T13:58:21.079Z", + "updatedAt": "2023-11-14T14:13:25.000Z", + "id": "230", + "name": "CredentialOnlyNodes", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "d4c2fa93-d956-4b90-86ab-e8d7e1f89057", + "name": "When clicking \"Execute Workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [1360, 720] + }, + { + "parameters": { + "curlImport": "", + "httpVariantWarning": "", + "method": "GET", + "url": "https://www.virustotal.com/api/v3/popular_threat_categories", + "": "", + "authentication": "predefinedCredentialType", + "nodeCredentialType": "virusTotalApi", + "sendQuery": false, + "sendHeaders": false, + "sendBody": false, + "options": {}, + "infoMessage": "" + }, + "id": "11ba670f-87d9-4d4a-ae47-da3fe5bb7715", + "name": "VirusTotal HTTP Request", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.1, + "position": [1580, 720], + "extendsCredential": "virusTotalApi", + "credentials": { + "virusTotalApi": { + "id": "q80wx3kiggmjWdY9", + "name": "VirusTotal account" + } + } + } + ], + "connections": { + "When clicking \"Execute Workflow\"": { + "main": [ + [ + { + "node": "VirusTotal HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": null, + "pinData": {}, + "versionId": "0a529bae-c8b3-416a-95fe-933383d51e59", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/231.json b/packages/testing/playwright/test-workflows/workflows/231.json new file mode 100644 index 0000000000..733d63f011 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/231.json @@ -0,0 +1,171 @@ +{ + "createdAt": "2024-02-14T09:47:52.177Z", + "updatedAt": "2024-02-14T09:47:52.177Z", + "id": "231", + "name": "HTTP:InvalidHostHeader HTTP:CrossDomainRedirect", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "3d7ec041-6d7c-4516-b7a0-b89dd41aca5a", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-180, 660] + }, + { + "parameters": {}, + "id": "15c4faaf-6241-4215-8919-b66cc80f90aa", + "name": "Success", + "type": "n8n-nodes-base.noOp", + "typeVersion": 1, + "position": [720, 680] + }, + { + "parameters": { + "errorMessage": "Request was not sent, internal SSL error!" + }, + "id": "a98994f5-ad55-4a43-8121-78286e7a85b3", + "name": "Stop and Error", + "type": "n8n-nodes-base.stopAndError", + "typeVersion": 1, + "position": [680, 460] + }, + { + "parameters": { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "id": "e4bed74d-e103-4029-ab3c-77d5ff464b36", + "leftValue": "={{ $json.error.status }}", + "rightValue": 403, + "operator": { + "type": "number", + "operation": "notExists", + "singleValue": true + } + }, + { + "id": "be1eb71b-cccc-4433-95d2-4d4e7c19a2e8", + "leftValue": "={{ $json.error.message }}", + "rightValue": "ssl", + "operator": { + "type": "string", + "operation": "contains" + } + } + ], + "combinator": "and" + }, + "options": {} + }, + "id": "acea7bc3-c611-432e-aa30-74b3a550db5f", + "name": "Internal SSL Error?", + "type": "n8n-nodes-base.if", + "typeVersion": 2, + "position": [480, 660] + }, + { + "parameters": { + "url": "https://n8n.io", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + { + "name": "Host", + "value": "internal.domain" + } + ] + }, + "options": {} + }, + "id": "e3c40b1d-1d18-4dd9-9168-35a801057836", + "name": "Invalid Host header", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.1, + "position": [260, 660], + "onError": "continueRegularOutput" + }, + { + "parameters": { + "url": "https://httpbin.org/redirect-to", + "sendQuery": true, + "queryParameters": { + "parameters": [ + { + "name": "url", + "value": "https://n8n.io" + } + ] + }, + "options": {} + }, + "id": "69d69a4d-2786-4f74-bb92-6109814eb56e", + "name": "Cross Domain Redirect", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.1, + "position": [260, 860] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Invalid Host header", + "type": "main", + "index": 0 + }, + { + "node": "Cross Domain Redirect", + "type": "main", + "index": 0 + } + ] + ] + }, + "Internal SSL Error?": { + "main": [ + [ + { + "node": "Stop and Error", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Success", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invalid Host header": { + "main": [ + [ + { + "node": "Internal SSL Error?", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": null, + "pinData": {}, + "versionId": "0a529bae-c8b3-416a-95fe-933383d51e59", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/233.json b/packages/testing/playwright/test-workflows/workflows/233.json new file mode 100644 index 0000000000..9873c7c84b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/233.json @@ -0,0 +1,532 @@ +{ + "createdAt": "2024-03-04T16:50:04.477Z", + "updatedAt": "2024-03-04T17:07:18.000Z", + "id": "233", + "name": "QdrantVectorStore:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "ec7323e1-1c71-4115-8791-dd8c572756da", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-300, 1080] + }, + { + "parameters": { + "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" + }, + "id": "8d9f25e2-7e5a-48bb-88a9-094b3b6c4496", + "name": "Code", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [-80, 1080] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "83756a50-a3cc-4cf7-ba40-7aa1d7636280", + "name": "Embeddings OpenAI4", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [300, 1260], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "some-meta", + "value": "test" + }, + { + "name": "other-meta", + "value": "test2" + } + ] + } + } + }, + "id": "f6f7ddd4-5c9c-43dc-934d-960cb7f7b9bf", + "name": "Default Data Loader1", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [280, 1460] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "408bcff8-96bb-4801-bed1-9fcee602f6ba", + "name": "Token Splitter1", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [280, 1620] + }, + { + "parameters": { + "method": "DELETE", + "url": "=https://568ce518-4756-4bdf-92f8-4a35b1113346.us-east4-0.gcp.cloud.qdrant.io:6333/collections/bitcoin_wf_test_{{ $execution.id }}", + "authentication": "predefinedCredentialType", + "nodeCredentialType": "qdrantApi", + "options": {} + }, + "id": "57467b4f-9dc5-4d58-8e0d-d336b39c554b", + "name": "Delete Collection", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.1, + "position": [2200, 1080], + "credentials": { + "qdrantApi": { + "id": "Ohl5AdteUC94gDYj", + "name": "QdrantApi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 12 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "f4e0bc37-c969-4df0-8e03-954143c4198f", + "name": "Check Vector Store Populated1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [680, 1080], + "executeOnce": true + }, + { + "parameters": { + "amount": 20, + "unit": "seconds" + }, + "id": "076664b6-978a-4ac9-bb9d-46a9edbf5f1a", + "name": "Wait1", + "type": "n8n-nodes-base.wait", + "typeVersion": 1, + "position": [920, 1080], + "webhookId": "c3d05369-6071-4592-87eb-36d57c60851b" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 4 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.document.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "bf2e6350-6d64-41cc-bcc4-8b07d6f02d63", + "name": "Check Vector Store Retrieval1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1500, 1080], + "executeOnce": true + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes." + }, + "id": "5dbcc385-e3e9-4208-9bef-72fdfee4eb3e", + "name": "Question and Answer Chain1", + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.5, + "position": [1700, 1080] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "2ff4fe0e-e9f5-4250-a36f-5290dd5c7940", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1700, 1280], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "b192d5f4-0d57-4dac-99c8-bef2b3b4d20a", + "name": "Vector Store Retriever1", + "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", + "typeVersion": 1, + "position": [1780, 1280] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "a97eac02-2008-46a4-a21c-3f4ddb473f21", + "name": "Embeddings OpenAI3", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1720, 1580], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", + "name": "output_matches", + "value": "={{ $json.response.includes('80') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "969f8ee8-b3be-4a66-8088-8d9629867c22", + "name": "Edit Fields1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [2040, 1080] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "a8fce256-50b2-4d70-b3a3-ee5aa9fa2c9b", + "name": "Embeddings OpenAI5", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1140, 1300], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "mode": "insert", + "qdrantCollection": { + "__rl": true, + "value": "=bitcoin_wf_test_{{ $execution.id }}", + "mode": "id" + }, + "options": {} + }, + "id": "69a471a7-969f-47ef-9e52-4667c943a69f", + "name": "Qdrant Vector Store", + "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", + "typeVersion": 1, + "position": [280, 1080], + "credentials": { + "qdrantApi": { + "id": "Ohl5AdteUC94gDYj", + "name": "QdrantApi account" + } + } + }, + { + "parameters": { + "qdrantCollection": { + "__rl": true, + "value": "=bitcoin_wf_test_{{ $execution.id }}", + "mode": "id" + } + }, + "id": "43ac7a37-abd1-4b7c-bfdc-e096bda87de6", + "name": "Qdrant Vector Store2", + "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", + "typeVersion": 1, + "position": [1720, 1440], + "credentials": { + "qdrantApi": { + "id": "Ohl5AdteUC94gDYj", + "name": "QdrantApi account" + } + } + }, + { + "parameters": { + "mode": "load", + "qdrantCollection": { + "__rl": true, + "value": "=bitcoin_wf_test_{{ $execution.id }}", + "mode": "id" + }, + "prompt": "Security risks" + }, + "id": "f1a6871e-cc9f-4f36-93f8-15dba0d4687f", + "name": "Qdrant Vector Store1", + "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", + "typeVersion": 1, + "position": [1140, 1080], + "credentials": { + "qdrantApi": { + "id": "Ohl5AdteUC94gDYj", + "name": "QdrantApi account" + } + } + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Code", + "type": "main", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI4": { + "ai_embedding": [ + [ + { + "node": "Qdrant Vector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader1": { + "ai_document": [ + [ + { + "node": "Qdrant Vector Store", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter1": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader1", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Check Vector Store Populated1": { + "main": [ + [ + { + "node": "Wait1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wait1": { + "main": [ + [ + { + "node": "Qdrant Vector Store1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Check Vector Store Retrieval1": { + "main": [ + [ + { + "node": "Question and Answer Chain1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain1": { + "main": [ + [ + { + "node": "Edit Fields1", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Question and Answer Chain1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Retriever1": { + "ai_retriever": [ + [ + { + "node": "Question and Answer Chain1", + "type": "ai_retriever", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI3": { + "ai_embedding": [ + [ + { + "node": "Qdrant Vector Store2", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Edit Fields1": { + "main": [ + [ + { + "node": "Delete Collection", + "type": "main", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI5": { + "ai_embedding": [ + [ + { + "node": "Qdrant Vector Store1", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Qdrant Vector Store": { + "main": [ + [ + { + "node": "Check Vector Store Populated1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Qdrant Vector Store2": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Retriever1", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "Qdrant Vector Store1": { + "main": [ + [ + { + "node": "Check Vector Store Retrieval1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code": { + "main": [ + [ + { + "node": "Qdrant Vector Store", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "163d5463-a0ba-476b-bdf1-75ff7d306534", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/234.json b/packages/testing/playwright/test-workflows/workflows/234.json new file mode 100644 index 0000000000..4976567ecf --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/234.json @@ -0,0 +1,82 @@ +{ + "createdAt": "2024-03-04T20:43:54.193Z", + "updatedAt": "2024-03-04T20:43:57.000Z", + "id": "234", + "name": "BasicLLMChain:MistralChat", + "active": false, + "nodes": [ + { + "parameters": { + "model": "mistral-tiny", + "options": { + "temperature": 0 + } + }, + "id": "e825ced6-f1d5-47ab-8aa7-b6c6959732f9", + "name": "Mistral Cloud Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud", + "typeVersion": 1, + "position": [1180, 720], + "credentials": { + "mistralCloudApi": { + "id": "Rl7R5orXMm9FvxZS", + "name": "Mistral Cloud account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" + }, + "id": "32c781c6-ce33-4ab5-bbd8-14651968daab", + "name": "Mistral Cloud Chat", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [1160, 560] + }, + { + "parameters": {}, + "id": "72dd7380-7254-4934-9562-f278a776dedd", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [980, 560] + } + ], + "connections": { + "Mistral Cloud Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Mistral Cloud Chat", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Mistral Cloud Chat", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "4bd59e87-bd2e-42ad-976d-6bf03535cf86", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/235.json b/packages/testing/playwright/test-workflows/workflows/235.json new file mode 100644 index 0000000000..9dcc59b283 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/235.json @@ -0,0 +1,210 @@ +{ + "createdAt": "2024-03-04T20:39:24.374Z", + "updatedAt": "2024-03-04T20:39:59.000Z", + "id": "235", + "name": "SummarizationChain:Simple:Map", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "7040b003-e694-4251-9dad-f4245966cfdf", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [1120, 600] + }, + { + "parameters": { + "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" + }, + "id": "97eb5104-6741-4330-ac11-4c5776aedd79", + "name": "Set Article", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1540, 600] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "42de18cf-1320-4f45-bb11-d28523c88a43", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1760, 760], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", + "name": "baseline_summary", + "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "b7f4e65c-2f5b-41eb-bffd-aeb1ec9919b4", + "name": "Set Baseline", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1340, 600] + }, + { + "parameters": { + "chunkSize": 4000, + "options": {} + }, + "id": "584d9374-ce54-42df-9c88-b996754e8967", + "name": "Summary - Simple - Map", + "type": "@n8n/n8n-nodes-langchain.chainSummarization", + "typeVersion": 2, + "position": [1740, 600] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "beaf320b-b14d-44a9-b7f3-1d4379875531", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [2080, 760], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_languageModel", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "b3f8e974-8f56-4cfe-ae9d-dd0906bb87c4", + "name": "Evaluate to Baseline", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [2060, 600] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Set Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Article": { + "main": [ + [ + { + "node": "Summary - Simple - Map", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Summary - Simple - Map", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Set Baseline": { + "main": [ + [ + { + "node": "Set Article", + "type": "main", + "index": 0 + } + ] + ] + }, + "Summary - Simple - Map": { + "main": [ + [ + { + "node": "Evaluate to Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Evaluate to Baseline", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "1a8926d6-06a6-4c15-8384-bd74ae4bd8df", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/236.json b/packages/testing/playwright/test-workflows/workflows/236.json new file mode 100644 index 0000000000..2146e74dd6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/236.json @@ -0,0 +1,234 @@ +{ + "createdAt": "2024-03-04T20:41:16.554Z", + "updatedAt": "2024-03-04T20:41:34.000Z", + "id": "236", + "name": "SummarizationChain:Simple:Map:Binary", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "a7c6c0bc-acbc-49bd-8ec8-5075e638d0b9", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [280, 880] + }, + { + "parameters": { + "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" + }, + "id": "6b758d00-fd86-465e-abc6-9a4d97a611a9", + "name": "Set Article", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [700, 880] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "d3f2e53d-c5dd-42b8-b10f-2b2fa2f37ef6", + "name": "OpenAI Chat Model4", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1140, 1020], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "418a75ed-c4aa-46a1-96d9-f2a3f9c55ab9", + "name": "OpenAI Chat Model5", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1500, 1020], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "operation": "toJson", + "options": {} + }, + "id": "99c931ba-5d76-443a-bd26-1115b4e59474", + "name": "Convert to File", + "type": "n8n-nodes-base.convertToFile", + "typeVersion": 1.1, + "position": [900, 880] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", + "name": "baseline_summary", + "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "1c363506-92cd-40d2-b7bd-8245a532cd27", + "name": "Set Baseline", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [500, 880] + }, + { + "parameters": { + "operationMode": "nodeInputBinary", + "chunkSize": 4000, + "chunkOverlap": 100, + "options": {} + }, + "id": "9d6d0cac-034e-42ed-90fb-d9c2cfe0166f", + "name": "Summary - Simple - Map - Binary", + "type": "@n8n/n8n-nodes-langchain.chainSummarization", + "typeVersion": 2, + "position": [1120, 880] + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_languageModel", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "f7e12c5f-6445-4924-8fc7-c426d21549ed", + "name": "Evaluate to Baseline", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [1480, 880] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Set Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Article": { + "main": [ + [ + { + "node": "Convert to File", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model4": { + "ai_languageModel": [ + [ + { + "node": "Summary - Simple - Map - Binary", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model5": { + "ai_languageModel": [ + [ + { + "node": "Evaluate to Baseline", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Convert to File": { + "main": [ + [ + { + "node": "Summary - Simple - Map - Binary", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Baseline": { + "main": [ + [ + { + "node": "Set Article", + "type": "main", + "index": 0 + } + ] + ] + }, + "Summary - Simple - Map - Binary": { + "main": [ + [ + { + "node": "Evaluate to Baseline", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "240bf55b-10e5-451c-9b81-3567130e2ef1", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/237.json b/packages/testing/playwright/test-workflows/workflows/237.json new file mode 100644 index 0000000000..e9eed3632a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/237.json @@ -0,0 +1,82 @@ +{ + "createdAt": "2024-03-04T20:43:01.452Z", + "updatedAt": "2024-03-04T20:43:03.000Z", + "id": "237", + "name": "BasicLLMChain:AzureChat", + "active": false, + "nodes": [ + { + "parameters": { + "model": "gpt4", + "options": { + "temperature": 0 + } + }, + "id": "982999e9-1191-4c74-8292-9f43d19a602b", + "name": "Azure OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi", + "typeVersion": 1, + "position": [700, 600], + "credentials": { + "azureOpenAiApi": { + "id": "RNAgogiex4JxTr44", + "name": "Azure Open AI account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" + }, + "id": "6684c985-3943-4099-a7b1-c8cc51f3d9f8", + "name": "Azure OpenAI Chat", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [680, 460] + }, + { + "parameters": {}, + "id": "fa8334bf-da22-4d69-b3f4-97b62c278158", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [460, 460] + } + ], + "connections": { + "Azure OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Azure OpenAI Chat", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Azure OpenAI Chat", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "3272c26f-5a33-4f48-99ac-bfef95f28dcf", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/238.json b/packages/testing/playwright/test-workflows/workflows/238.json new file mode 100644 index 0000000000..df51e644ba --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/238.json @@ -0,0 +1,86 @@ +{ + "createdAt": "2024-03-04T20:44:21.362Z", + "updatedAt": "2024-03-04T20:44:21.362Z", + "id": "238", + "name": "BasicLLMChain:OpenAIInstruct", + "active": false, + "nodes": [ + { + "parameters": { + "model": { + "__rl": true, + "mode": "list", + "value": "gpt-3.5-turbo-instruct" + }, + "options": { + "temperature": 0 + } + }, + "id": "086e03aa-f941-4dbc-9794-d418893efd48", + "name": "OpenAI Model", + "type": "@n8n/n8n-nodes-langchain.lmOpenAi", + "typeVersion": 1, + "position": [660, 600], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "How much is 1+1? Only provide the numerical answer without any other text.\n\n" + }, + "id": "3d36ca4b-ca52-4c76-8729-2d1416b97254", + "name": "Open AI Instruct", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [640, 460] + }, + { + "parameters": {}, + "id": "6b6a91f3-cb8a-474b-8db8-e4309bd25d92", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [460, 460] + } + ], + "connections": { + "OpenAI Model": { + "ai_languageModel": [ + [ + { + "node": "Open AI Instruct", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Open AI Instruct", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "c923851b-a7a2-4c7f-895c-d90f994d3e3a", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/239.json b/packages/testing/playwright/test-workflows/workflows/239.json new file mode 100644 index 0000000000..7465bc5cee --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/239.json @@ -0,0 +1,104 @@ +{ + "createdAt": "2024-03-04T20:32:15.867Z", + "updatedAt": "2024-03-13T13:43:09.000Z", + "id": "239", + "name": "Agent:PlanAndExecute", + "active": false, + "nodes": [ + { + "parameters": { + "model": "gpt-4-turbo-preview", + "options": { + "temperature": 0 + } + }, + "id": "9ecb9fc6-c634-4915-ae30-f4a40679200c", + "name": "OpenAI Chat Model3", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1020, 760], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": {}, + "id": "28f13be4-fc17-4e04-8518-bf98272ea7b7", + "name": "Calculator3", + "type": "@n8n/n8n-nodes-langchain.toolCalculator", + "typeVersion": 1, + "position": [1180, 780] + }, + { + "parameters": {}, + "id": "ebd19bad-5412-4e5b-9cbc-92d85e98f517", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [760, 620] + }, + { + "parameters": { + "agent": "planAndExecuteAgent", + "promptType": "define", + "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", + "options": {} + }, + "id": "1b397e30-5061-44dd-b6fc-c7100c8c791d", + "name": "AI Agent3", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.4, + "position": [1000, 620] + } + ], + "connections": { + "OpenAI Chat Model3": { + "ai_languageModel": [ + [ + { + "node": "AI Agent3", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Calculator3": { + "ai_tool": [ + [ + { + "node": "AI Agent3", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "d420104e-1ac2-45a5-b173-e97a7726178f", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/240.json b/packages/testing/playwright/test-workflows/workflows/240.json new file mode 100644 index 0000000000..66742930af --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/240.json @@ -0,0 +1,216 @@ +{ + "createdAt": "2024-03-04T20:38:02.224Z", + "updatedAt": "2024-03-04T20:38:20.000Z", + "id": "240", + "name": "SummarizationChain:Simpe:Refine", + "active": false, + "nodes": [ + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "45a1f508-8bdc-4a59-8245-b910beddac70", + "name": "OpenAI Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1440, 640], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "b1cb6eaf-16f0-4f57-b09d-6893e5c52570", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [620, 500] + }, + { + "parameters": { + "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" + }, + "id": "33936a84-0d38-4fee-9811-7dc020970e73", + "name": "Set Article", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1040, 500] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", + "name": "baseline_summary", + "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "0b869175-1a99-4a50-a29b-79aefb30159f", + "name": "Set Baseline", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [840, 500] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "57d75d06-da61-4a0a-a917-b076cd1e291e", + "name": "OpenAI Chat Model9", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1760, 660], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "chunkSize": 4000, + "options": { + "summarizationMethodAndPrompts": { + "values": { + "summarizationMethod": "refine" + } + } + } + }, + "id": "eec9288f-1e8e-4331-9ee6-e57fa207be5b", + "name": "Summary - Simple - Refine", + "type": "@n8n/n8n-nodes-langchain.chainSummarization", + "typeVersion": 2, + "position": [1420, 500] + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary;\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_languageModel", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "2102e067-5b8a-44aa-9362-4db63fac06c2", + "name": "Evaluate to Baseline4", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [1740, 500] + } + ], + "connections": { + "OpenAI Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "Summary - Simple - Refine", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Set Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Article": { + "main": [ + [ + { + "node": "Summary - Simple - Refine", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Baseline": { + "main": [ + [ + { + "node": "Set Article", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model9": { + "ai_languageModel": [ + [ + { + "node": "Evaluate to Baseline4", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Summary - Simple - Refine": { + "main": [ + [ + { + "node": "Evaluate to Baseline4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "f5380d94-5641-4fce-857c-f5903700382c", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/241.json b/packages/testing/playwright/test-workflows/workflows/241.json new file mode 100644 index 0000000000..e4c53be798 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/241.json @@ -0,0 +1,142 @@ +{ + "createdAt": "2024-03-04T20:33:51.500Z", + "updatedAt": "2024-03-13T13:41:47.000Z", + "id": "241", + "name": "Agent:OpenAiFunctions", + "active": false, + "nodes": [ + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "a2807ad9-7402-47a8-baf8-3ba8feea2494", + "name": "calculator_called", + "value": "={{ $json.intermediateSteps.filter(a => a.action.tool === 'calculator').length >= 1 }}", + "type": "boolean" + }, + { + "id": "29ca8b14-ce95-4497-85eb-687db33ecd06", + "name": "has_correct_output", + "value": "={{ $json.output.includes('100052') }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "19c7f30c-1234-4dac-8635-59f3101a9dd5", + "name": "Edit Fields", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1240, 760] + }, + { + "parameters": { + "options": { + "temperature": 0 + } + }, + "id": "704163e9-dee9-4d4f-97b8-9681b050af21", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [920, 900], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": {}, + "id": "44f670cc-c4e9-44fc-8870-18955f727be1", + "name": "Calculator", + "type": "@n8n/n8n-nodes-langchain.toolCalculator", + "typeVersion": 1, + "position": [1080, 920] + }, + { + "parameters": {}, + "id": "f036de64-49fa-4854-89b7-2679f6e3cf59", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [700, 760] + }, + { + "parameters": { + "agent": "openAiFunctionsAgent", + "promptType": "define", + "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "f0129970-11c7-45c6-9665-28498c9c87dd", + "name": "AI Agent", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.7, + "position": [900, 760] + } + ], + "connections": { + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Calculator": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent": { + "main": [ + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "92205881-151a-4e66-acd1-31f2d4e3a58c", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/242.json b/packages/testing/playwright/test-workflows/workflows/242.json new file mode 100644 index 0000000000..d61e782d6b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/242.json @@ -0,0 +1,103 @@ +{ + "createdAt": "2024-03-04T20:50:20.300Z", + "updatedAt": "2024-03-04T20:55:07.000Z", + "id": "242", + "name": "BasicLLMChain:OutputParser", + "active": false, + "nodes": [ + { + "parameters": { + "options": { + "temperature": 0 + } + }, + "id": "e130434b-6283-473c-a61d-fbbe26b63acb", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1380, 720], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "b712a9c6-575e-4026-a6a0-83590c959267", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [1180, 560] + }, + { + "parameters": { + "jsonSchema": "{\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"state_name\": \"string\",\n \"capital\": \"string\",\n \"electoral_college_votes\": \"number\"\n }\n }\n}" + }, + "id": "6db310a2-11ca-4097-92cb-ec9a6a6da51e", + "name": "Structured Output Parser1", + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [1540, 720] + }, + { + "parameters": { + "promptType": "define", + "text": "What are the top 5 states of US by population?", + "hasOutputParser": true + }, + "id": "2a8ca922-5da0-4065-b999-640fd678b0d3", + "name": "Open AI Chat - Output Parsing", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [1360, 560] + } + ], + "connections": { + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Open AI Chat - Output Parsing", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Open AI Chat - Output Parsing", + "type": "main", + "index": 0 + } + ] + ] + }, + "Structured Output Parser1": { + "ai_outputParser": [ + [ + { + "node": "Open AI Chat - Output Parsing", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "e3bbc2b0-e9cd-431d-89b4-c39db2989e8f", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/243.json b/packages/testing/playwright/test-workflows/workflows/243.json new file mode 100644 index 0000000000..0bcc243f03 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/243.json @@ -0,0 +1,142 @@ +{ + "createdAt": "2024-03-04T20:32:40.367Z", + "updatedAt": "2024-03-13T13:41:09.000Z", + "id": "243", + "name": "Agent:ReAct", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "35b58a63-6835-4724-807f-47e24215f4c2", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [840, 900] + }, + { + "parameters": { + "options": { + "temperature": 0 + } + }, + "id": "9dd9723f-2e8f-463b-b88e-20ba4298f538", + "name": "OpenAI Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1060, 1040], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": {}, + "id": "223ed022-94bd-4b31-bf12-5c79d9b635a9", + "name": "Calculator2", + "type": "@n8n/n8n-nodes-langchain.toolCalculator", + "typeVersion": 1, + "position": [1220, 1060] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "a2807ad9-7402-47a8-baf8-3ba8feea2494", + "name": "calculator_called", + "value": "={{ $json.intermediateSteps.filter(a => a.action.tool === 'calculator').length >= 1 }}", + "type": "boolean" + }, + { + "id": "29ca8b14-ce95-4497-85eb-687db33ecd06", + "name": "has_correct_output", + "value": "={{ $json.output.includes('100052') }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "473e1db4-8d90-49e3-99ae-444d7c5d8cf0", + "name": "Edit Fields2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1380, 900] + }, + { + "parameters": { + "agent": "reActAgent", + "promptType": "define", + "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "3fa65db7-000e-427f-aab9-14af134d0d78", + "name": "AI Agent2", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.4, + "position": [1040, 900] + } + ], + "connections": { + "OpenAI Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "AI Agent2", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Calculator2": { + "ai_tool": [ + [ + { + "node": "AI Agent2", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent2", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent2": { + "main": [ + [ + { + "node": "Edit Fields2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "aeb32e87-d821-4885-ab26-58321ad2d0a4", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/244.json b/packages/testing/playwright/test-workflows/workflows/244.json new file mode 100644 index 0000000000..1f4379335f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/244.json @@ -0,0 +1,321 @@ +{ + "createdAt": "2024-03-04T20:35:31.373Z", + "updatedAt": "2024-03-04T20:36:25.000Z", + "id": "244", + "name": "Agent:WorkflowTool", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "e01e31b1-1114-4384-b88d-522337a0010b", + "name": "Execute Workflow Trigger", + "type": "n8n-nodes-base.executeWorkflowTrigger", + "typeVersion": 1, + "position": [200, 800] + }, + { + "parameters": { + "rules": { + "values": [ + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "leftValue": "={{ $json.tool }}", + "rightValue": "get_weather", + "operator": { + "type": "string", + "operation": "equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Weather" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", + "leftValue": "={{ $json.tool }}", + "rightValue": "get_events", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Events" + } + ] + }, + "options": {} + }, + "id": "a8741e96-bff4-463c-9dd0-ffba5b9877b3", + "name": "Switch", + "type": "n8n-nodes-base.switch", + "typeVersion": 3, + "position": [420, 800] + }, + { + "parameters": { + "name": "get_weather_data", + "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_weather" + } + ] + } + }, + "id": "d35195a4-f609-467d-9cca-b659e5f76c2b", + "name": "Get Weather", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [620, 620] + }, + { + "parameters": { + "name": "get_evens", + "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_events" + } + ] + } + }, + "id": "8214ad91-530b-49a1-874b-42d31d1d9e87", + "name": "Get Events", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [720, 620] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", + "name": "response", + "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "cdb19b9d-9665-4b66-bda7-1b4f8191dad0", + "name": "Edit Fields4", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [700, 760] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "0434695d-b245-4947-8b6e-7676a5c92904", + "name": "response", + "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "44e58855-7ff7-4f80-9092-f6ed72274874", + "name": "Edit Fields5", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [700, 920] + }, + { + "parameters": { + "model": "gpt-4-turbo-preview", + "options": { + "temperature": 0 + } + }, + "id": "2fecb46d-8bff-4884-9e73-bd787a6b1ece", + "name": "OpenAI Chat Model4", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [480, 620], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "has_weather", + "value": "={{ $json.output.includes('5.1') }}", + "type": "boolean" + }, + { + "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", + "name": "has_movie", + "value": "={{ $json.output.includes('Dune') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "32628916-d991-459a-8ad6-07396f0c629e", + "name": "Edit Fields6", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [840, 460] + }, + { + "parameters": { + "agent": "reActAgent", + "promptType": "define", + "text": "Help me plan my day in Berlin, Germany\n1. Check current the weather \n2. Get the upcoming events\n3. Respond with weather and details about the upcoming events\n\nEach tool should only be called once.", + "options": {} + }, + "id": "367e796c-9c91-42a6-9585-bb9f19c2969a", + "name": "AI Agent4", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.5, + "position": [460, 460] + }, + { + "parameters": {}, + "id": "84833733-c87b-442c-9be1-26315056a205", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [200, 460] + } + ], + "connections": { + "Execute Workflow Trigger": { + "main": [ + [ + { + "node": "Switch", + "type": "main", + "index": 0 + } + ] + ] + }, + "Switch": { + "main": [ + [ + { + "node": "Edit Fields4", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Get Weather": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Get Events": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model4": { + "ai_languageModel": [ + [ + { + "node": "AI Agent4", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent4": { + "main": [ + [ + { + "node": "Edit Fields6", + "type": "main", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "058fe472-fd5e-4fab-8f4d-1363d4adbbdb", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/245.json b/packages/testing/playwright/test-workflows/workflows/245.json new file mode 100644 index 0000000000..f4ba2a229f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/245.json @@ -0,0 +1,82 @@ +{ + "createdAt": "2024-03-04T20:43:29.800Z", + "updatedAt": "2024-03-04T20:43:37.000Z", + "id": "245", + "name": "BasicLLMChain:AwsBedrockChat", + "active": false, + "nodes": [ + { + "parameters": { + "model": "amazon.titan-text-lite-v1", + "options": { + "temperature": 0 + } + }, + "id": "6610aac2-0d86-4d20-a625-072403cc1d15", + "name": "AWS Bedrock Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock", + "typeVersion": 1, + "position": [680, 600], + "credentials": { + "aws": { + "id": "124", + "name": "AWS creds" + } + } + }, + { + "parameters": {}, + "id": "9e52b4d5-5e83-4d6a-a31e-e9408728bb77", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [460, 460] + }, + { + "parameters": { + "promptType": "define", + "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" + }, + "id": "8899ab4b-9fab-4c92-8e17-7601117fc3fc", + "name": "AWS Bedrock Chat", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [660, 460] + } + ], + "connections": { + "AWS Bedrock Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AWS Bedrock Chat", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AWS Bedrock Chat", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "ed68041a-90c9-4900-8307-74bede290f62", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/246.json b/packages/testing/playwright/test-workflows/workflows/246.json new file mode 100644 index 0000000000..c613c4e4cf --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/246.json @@ -0,0 +1,82 @@ +{ + "createdAt": "2024-03-04T20:44:38.763Z", + "updatedAt": "2024-03-04T20:44:44.000Z", + "id": "246", + "name": "BasicLLMChain:OpenAIChat", + "active": false, + "nodes": [ + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "7b0bb72a-9a3e-4dbf-a875-cdc429bf333a", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [640, 600], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "4832e182-9823-45c4-9289-51299debbe4c", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [460, 460] + }, + { + "parameters": { + "promptType": "define", + "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" + }, + "id": "6f978929-e85a-44cc-999b-8e670bd65314", + "name": "Open AI Chat", + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [620, 460] + } + ], + "connections": { + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Open AI Chat", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Open AI Chat", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "76b6f624-b785-4b06-9cb0-57deed8b47a0", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/247.json b/packages/testing/playwright/test-workflows/workflows/247.json new file mode 100644 index 0000000000..dea27d64aa --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/247.json @@ -0,0 +1,232 @@ +{ + "createdAt": "2024-03-04T20:38:50.212Z", + "updatedAt": "2024-03-04T20:39:11.000Z", + "id": "247", + "name": "SummarizationChain:Advanced:Map", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "0d9a3d32-b54b-4353-8886-50390461f967", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [660, 380] + }, + { + "parameters": { + "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" + }, + "id": "a5c7a7c0-442c-4ffd-bbf2-1ee98bab0a23", + "name": "Set Article", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1080, 380] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "3b01b603-8e9e-4f91-bd86-04820f2234dc", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1480, 520], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "chunkSize": 300, + "chunkOverlap": 50 + }, + "id": "b4c73920-090e-4668-9fa7-7ea124373409", + "name": "Token Splitter", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [1620, 520] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", + "name": "baseline_summary", + "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "ca8694fd-7788-41f1-8aa7-11c9c1682358", + "name": "Set Baseline", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [880, 380] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "57a4de1c-f385-439b-8809-8a1172bab713", + "name": "OpenAI Chat Model8", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1800, 520], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "chunkingMode": "advanced", + "options": {} + }, + "id": "5ad67153-eef9-4d4a-94af-4974d33c2076", + "name": "Summary - Advanced", + "type": "@n8n/n8n-nodes-langchain.chainSummarization", + "typeVersion": 2, + "position": [1460, 380] + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_languageModel", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "cdad3056-57aa-4d84-98b2-5077793b883f", + "name": "Evaluate to Baseline3", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [1780, 380] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Set Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Article": { + "main": [ + [ + { + "node": "Summary - Advanced", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Summary - Advanced", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Token Splitter": { + "ai_textSplitter": [ + [ + { + "node": "Summary - Advanced", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Set Baseline": { + "main": [ + [ + { + "node": "Set Article", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model8": { + "ai_languageModel": [ + [ + { + "node": "Evaluate to Baseline3", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Summary - Advanced": { + "main": [ + [ + { + "node": "Evaluate to Baseline3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "0397921a-1101-44f9-a4ad-19377cd11aa8", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/248.json b/packages/testing/playwright/test-workflows/workflows/248.json new file mode 100644 index 0000000000..f6bb3282af --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/248.json @@ -0,0 +1,470 @@ +{ + "createdAt": "2024-03-04T17:02:06.139Z", + "updatedAt": "2024-03-04T17:07:12.000Z", + "id": "248", + "name": "InMemoryVectorStore:*", + "active": false, + "nodes": [ + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "79cfd86e-b657-49de-bc61-13415ffa725b", + "name": "Embeddings OpenAI6", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [660, 1480], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "some-meta", + "value": "test" + }, + { + "name": "other-meta", + "value": "test2" + } + ] + } + } + }, + "id": "76ee3d77-836c-417d-8d8e-9822cddfe936", + "name": "Default Data Loader2", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [640, 1620] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "1edacf5b-b7e4-4486-b98f-c78b338ac38e", + "name": "Token Splitter2", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [640, 1780] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 12 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "e49fd92f-0a97-44a4-bbf5-c9aa94496ce1", + "name": "Check Vector Store Populated2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1020, 1340], + "executeOnce": true + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 4 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.document.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "b32d000c-ed3b-48c4-99b8-98cf72cc0a88", + "name": "Check Vector Store Retrieval2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1880, 1340], + "executeOnce": true + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes." + }, + "id": "fe162de8-6021-4ae6-a874-01c831f79724", + "name": "Question and Answer Chain2", + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.5, + "position": [2100, 1340] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "93ff6597-cac9-4847-8efd-e1d03520b4b9", + "name": "OpenAI Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [2120, 1500], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "8985b238-8814-4aab-bbf3-801fb52c7757", + "name": "Vector Store Retriever2", + "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", + "typeVersion": 1, + "position": [2100, 1620] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "b2ef63c3-2e18-49dc-8241-ee71eabdd6cb", + "name": "Embeddings OpenAI7", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [2040, 1880], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", + "name": "output_matches", + "value": "={{ $json.response.includes('80') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "046edb77-d0cd-4e8b-9db3-706c249e557f", + "name": "Edit Fields2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [2440, 1340] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "2f1e6e26-d43e-4254-acef-ea69cd628a9a", + "name": "Embeddings OpenAI8", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1520, 1540], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "memoryKey": "bitcoin_wf_test" + }, + "id": "11262bc3-f1db-4162-94c8-5f2d5b279900", + "name": "In-Memory Vector Store2", + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [2040, 1760] + }, + { + "parameters": {}, + "id": "f4ff0f49-ac8b-4f7c-9cd4-90f0f9534772", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [180, 1340] + }, + { + "parameters": { + "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" + }, + "id": "06c12027-e965-441d-b1d8-b711eabbeb02", + "name": "Code", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [400, 1340] + }, + { + "parameters": { + "amount": 10 + }, + "id": "a2510c9b-bdaa-4fa0-85e6-aa7adef9194b", + "name": "Wait", + "type": "n8n-nodes-base.wait", + "typeVersion": 1.1, + "position": [1240, 1340], + "webhookId": "a5bb0b0d-1527-414f-9abd-46e7f2be4f7f" + }, + { + "parameters": { + "mode": "insert", + "memoryKey": "bitcoin_wf_test", + "clearStore": true + }, + "id": "569a716b-c369-461e-b522-4f890af4fa34", + "name": "In-Memory Vector Store", + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [660, 1340] + }, + { + "parameters": { + "mode": "load", + "memoryKey": "bitcoin_wf_test", + "prompt": "Security risks" + }, + "id": "8e51401b-9cd7-4d53-9c34-99b6e82a7b06", + "name": "In-Memory Vector Store1", + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [1500, 1340] + } + ], + "connections": { + "Embeddings OpenAI6": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader2": { + "ai_document": [ + [ + { + "node": "In-Memory Vector Store", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter2": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader2", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Check Vector Store Populated2": { + "main": [ + [ + { + "node": "Wait", + "type": "main", + "index": 0 + } + ] + ] + }, + "Check Vector Store Retrieval2": { + "main": [ + [ + { + "node": "Question and Answer Chain2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain2": { + "main": [ + [ + { + "node": "Edit Fields2", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "Question and Answer Chain2", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Retriever2": { + "ai_retriever": [ + [ + { + "node": "Question and Answer Chain2", + "type": "ai_retriever", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI7": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store2", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI8": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store1", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store2": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Retriever2", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Code", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code": { + "main": [ + [ + { + "node": "In-Memory Vector Store", + "type": "main", + "index": 0 + } + ] + ] + }, + "Wait": { + "main": [ + [ + { + "node": "In-Memory Vector Store1", + "type": "main", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store": { + "main": [ + [ + { + "node": "Check Vector Store Populated2", + "type": "main", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store1": { + "main": [ + [ + { + "node": "Check Vector Store Retrieval2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "88e46c9d-ed01-4d44-909c-6bd94f1ec42a", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/249.json b/packages/testing/playwright/test-workflows/workflows/249.json new file mode 100644 index 0000000000..218e051406 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/249.json @@ -0,0 +1,215 @@ +{ + "createdAt": "2024-03-04T20:40:09.997Z", + "updatedAt": "2024-03-04T20:40:57.000Z", + "id": "249", + "name": "SummarizationChain:Simple:Stuff", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "3adce5bb-a3e6-4d62-ba40-ff2835b7c4fe", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [1260, 480] + }, + { + "parameters": { + "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" + }, + "id": "2af3f215-852e-44d1-a16b-1122861abc2c", + "name": "Set Article", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1640, 480] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", + "name": "baseline_summary", + "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "835cd65e-5233-43cf-9e56-f938bbf90ccf", + "name": "Set Baseline", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1440, 480] + }, + { + "parameters": { + "options": { + "summarizationMethodAndPrompts": { + "values": { + "summarizationMethod": "stuff" + } + } + } + }, + "id": "d81d65f9-3152-435a-be81-e1f68a75eb6f", + "name": "Summary - Simple - Stuff", + "type": "@n8n/n8n-nodes-langchain.chainSummarization", + "typeVersion": 2, + "position": [1820, 480] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "54a03de0-5c56-4ee7-a72a-2d3fe7ca3659", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1840, 620], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "314362b4-e5b1-4372-9edb-432857a9039c", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [2160, 620], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_languageModel", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "6e3eafab-40d3-4329-a500-0a2e4d81a308", + "name": "Evaluate to Baseline", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [2140, 480] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Set Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Article": { + "main": [ + [ + { + "node": "Summary - Simple - Stuff", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set Baseline": { + "main": [ + [ + { + "node": "Set Article", + "type": "main", + "index": 0 + } + ] + ] + }, + "Summary - Simple - Stuff": { + "main": [ + [ + { + "node": "Evaluate to Baseline", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Summary - Simple - Stuff", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Evaluate to Baseline", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "7b286328-f8b2-4225-8f25-072239ac0731", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/250.json b/packages/testing/playwright/test-workflows/workflows/250.json new file mode 100644 index 0000000000..a28490d07c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/250.json @@ -0,0 +1,513 @@ +{ + "createdAt": "2024-03-04T17:01:47.077Z", + "updatedAt": "2024-03-04T17:07:23.000Z", + "id": "250", + "name": "PineconeVectorStore:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "94fcb304-1724-46e1-91cf-039ac12ff094", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [380, 1180] + }, + { + "parameters": { + "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" + }, + "id": "72553fda-2372-4f50-a71c-43d99ff9bc81", + "name": "Code", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [600, 1180] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "86dbd078-2724-4acc-ad29-182603ab8fbb", + "name": "Embeddings OpenAI", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [860, 1360], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "some-meta", + "value": "test" + }, + { + "name": "other-meta", + "value": "test2" + } + ] + } + } + }, + "id": "5402877d-e03d-49d5-aa3a-ca5f911811c7", + "name": "Default Data Loader", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [840, 1560] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "554a499c-04d1-4644-a05a-93c9fb4a6fa6", + "name": "Token Splitter", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [840, 1720] + }, + { + "parameters": { + "amount": 15, + "unit": "seconds" + }, + "id": "4953b654-157e-4048-8c8c-e9cdc0112bba", + "name": "Wait", + "type": "n8n-nodes-base.wait", + "typeVersion": 1, + "position": [1480, 1180], + "webhookId": "c3d05369-6071-4592-87eb-36d57c60851b" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 4 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.document.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "b7f64fff-c9e7-42c4-80a2-9eec4ab86d75", + "name": "Check Vector Store Retrieval", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [2060, 1180], + "executeOnce": true + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes." + }, + "id": "a18395f0-240d-40c4-84c2-6aaee560aab0", + "name": "Question and Answer Chain", + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.5, + "position": [2260, 1180] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "7c6ba271-7628-4f90-8c09-53764c4d18d4", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [2260, 1380], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "25862b21-175a-4126-97e9-69c5b2623937", + "name": "Vector Store Retriever", + "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", + "typeVersion": 1, + "position": [2340, 1380] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "21a318d1-8d44-43c1-85b9-102cf320e0ed", + "name": "Embeddings OpenAI9", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [2280, 1680], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", + "name": "output_matches", + "value": "={{ $json.response.includes('80') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "abfc59fb-d887-407d-aca4-da476b92619a", + "name": "Edit Fields", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [2600, 1180] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "c784fb20-7fa0-496c-87ee-512f83276fd0", + "name": "Embeddings OpenAI10", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1700, 1400], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "mode": "insert", + "pineconeIndex": { + "__rl": true, + "value": "n8n", + "mode": "list", + "cachedResultName": "n8n" + }, + "options": { + "clearNamespace": true, + "pineconeNamespace": "bitcoin_wf_test" + } + }, + "id": "ba43d67a-0573-4452-bb9e-e73d58ef75e2", + "name": "Pinecone Vector Store", + "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", + "typeVersion": 1, + "position": [840, 1180], + "credentials": { + "pineconeApi": { + "id": "IoeAsZR3eD1OS0oY", + "name": "PineconeApi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 12 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "92b37ec8-a093-48d3-be9b-21ecc1de7e30", + "name": "Check Vector Store Populated", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1220, 1180], + "executeOnce": true + }, + { + "parameters": { + "pineconeIndex": { + "__rl": true, + "value": "n8n", + "mode": "list", + "cachedResultName": "n8n" + }, + "options": { + "pineconeNamespace": "bitcoin_wf_test" + } + }, + "id": "db229cc9-ccf7-405d-8549-5a82e4137103", + "name": "Pinecone Vector Store2", + "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", + "typeVersion": 1, + "position": [2280, 1560], + "credentials": { + "pineconeApi": { + "id": "IoeAsZR3eD1OS0oY", + "name": "PineconeApi account" + } + } + }, + { + "parameters": { + "mode": "load", + "pineconeIndex": { + "__rl": true, + "value": "n8n", + "mode": "list", + "cachedResultName": "n8n" + }, + "prompt": "What is bitcoin?", + "options": { + "pineconeNamespace": "bitcoin_wf_test" + } + }, + "id": "387518ca-2c63-40b5-bd96-8b5958a2a0d8", + "name": "Pinecone Vector Store1", + "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", + "typeVersion": 1, + "position": [1680, 1180], + "credentials": { + "pineconeApi": { + "id": "IoeAsZR3eD1OS0oY", + "name": "PineconeApi account" + } + } + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Code", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code": { + "main": [ + [ + { + "node": "Pinecone Vector Store", + "type": "main", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI": { + "ai_embedding": [ + [ + { + "node": "Pinecone Vector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader": { + "ai_document": [ + [ + { + "node": "Pinecone Vector Store", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Wait": { + "main": [ + [ + { + "node": "Pinecone Vector Store1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Check Vector Store Retrieval": { + "main": [ + [ + { + "node": "Question and Answer Chain", + "type": "main", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain": { + "main": [ + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Question and Answer Chain", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Retriever": { + "ai_retriever": [ + [ + { + "node": "Question and Answer Chain", + "type": "ai_retriever", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI9": { + "ai_embedding": [ + [ + { + "node": "Pinecone Vector Store2", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI10": { + "ai_embedding": [ + [ + { + "node": "Pinecone Vector Store1", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Pinecone Vector Store": { + "main": [ + [ + { + "node": "Check Vector Store Populated", + "type": "main", + "index": 0 + } + ] + ] + }, + "Check Vector Store Populated": { + "main": [ + [ + { + "node": "Wait", + "type": "main", + "index": 0 + } + ] + ] + }, + "Pinecone Vector Store2": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Retriever", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "Pinecone Vector Store1": { + "main": [ + [ + { + "node": "Check Vector Store Retrieval", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "deeaa4bb-3780-4150-8eea-291722411f08", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/251.json b/packages/testing/playwright/test-workflows/workflows/251.json new file mode 100644 index 0000000000..cfc3b3e68e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/251.json @@ -0,0 +1,104 @@ +{ + "createdAt": "2024-03-04T20:33:10.367Z", + "updatedAt": "2024-03-13T13:40:25.000Z", + "id": "251", + "name": "Agent:Conversational", + "active": false, + "nodes": [ + { + "parameters": { + "options": { + "temperature": 0 + } + }, + "id": "b8fb087e-fb91-4b67-b1fe-7c8f94db59bc", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1000, 580], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": {}, + "id": "0ccb184e-0fd7-4da4-a25c-2b95e0793e8b", + "name": "Calculator1", + "type": "@n8n/n8n-nodes-langchain.toolCalculator", + "typeVersion": 1, + "position": [1160, 580] + }, + { + "parameters": {}, + "id": "e0db9899-2439-4662-a212-738d48cd08d8", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [800, 420] + }, + { + "parameters": { + "promptType": "define", + "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "5f23aaf0-0649-4e26-926d-9bdf59e89aa7", + "name": "AI Agent1", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.4, + "position": [980, 420] + } + ], + "connections": { + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "AI Agent1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Calculator1": { + "ai_tool": [ + [ + { + "node": "AI Agent1", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "da23ae8e-c1e2-4f3c-a585-8e89696633b2", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/252.json b/packages/testing/playwright/test-workflows/workflows/252.json new file mode 100644 index 0000000000..8948a7f450 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/252.json @@ -0,0 +1,812 @@ +{ + "createdAt": "2024-10-03T09:40:13.616Z", + "updatedAt": "2024-10-03T10:45:47.000Z", + "id": "252", + "name": "vectorStorePGVector:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "e2e07751-023d-46b8-8538-3da9cb4a4d56", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [180, 600] + }, + { + "parameters": { + "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" + }, + "id": "b9ece201-2b70-4cae-8191-278ed54fbf75", + "name": "Code", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [640, 600] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "802fa1b1-e696-4def-94a3-95fbd779c730", + "name": "Embeddings OpenAI4", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1180, 720], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "qa_chain" + } + ] + } + } + }, + "id": "b22de442-b45d-4684-9329-7c63999501ad", + "name": "Default Data Loader1", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [1300, 760] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "dd5b5ba1-ce62-47ae-9fdc-a5b75389a434", + "name": "Token Splitter1", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [1320, 860] + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", + "options": {} + }, + "id": "31e9699d-1959-46db-8745-a107f83986c5", + "name": "Question and Answer Chain1", + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.5, + "position": [1140, 2420] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0 + } + }, + "id": "300e7bb4-18a4-4208-8b82-b6533fe0f980", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [1140, 2620], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "topK": 40 + }, + "id": "1c5a4e2d-0220-4647-9cd9-10bcf2e59ee2", + "name": "Vector Store Retriever1", + "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", + "typeVersion": 1, + "position": [1220, 2620] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "81cb4196-e753-426f-bae5-2f1b963b16b8", + "name": "Embeddings OpenAI3", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1140, 2920], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", + "name": "output_matches", + "value": "={{ $json.response.includes('80') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "c6fc002c-592e-481c-90fe-19ee523a8336", + "name": "Edit Fields1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1480, 2420] + }, + { + "parameters": { + "operation": "deleteTable", + "schema": { + "__rl": true, + "mode": "list", + "value": "public" + }, + "table": { + "__rl": true, + "value": "n8n_vectors", + "mode": "name" + }, + "deleteCommand": "drop", + "options": {} + }, + "id": "73de13c8-9b83-450d-afd3-c409720b0843", + "name": "Postgres", + "type": "n8n-nodes-base.postgres", + "typeVersion": 2.5, + "position": [1120, 3460], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "01711e02-6d7c-4afa-9d61-d3f7c7ba4466", + "name": "Embeddings OpenAI", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1120, 2160], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "63ae1d1c-adb1-4b88-9885-704d3d31ebda", + "name": "Embeddings OpenAI8", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1160, 1160], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "retriever" + } + ] + } + } + }, + "id": "c9631a79-8fb8-4e78-8f91-cac5040c23f7", + "name": "Default Data Loader3", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [1260, 1160] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "00345fc9-0c4f-4db8-82e5-e809c69980cd", + "name": "Token Splitter3", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [1260, 1300] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "6f64e063-03a0-451b-a93a-377a5f49b1ef", + "name": "Embeddings OpenAI9", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1120, 1540], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "get_all" + } + ] + } + } + }, + "id": "b39c08af-2700-4c7a-9a43-b8842307ea32", + "name": "Default Data Loader4", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [1220, 1540] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "c02b660b-4301-4a82-986e-d29f12257243", + "name": "Token Splitter4", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [1220, 1660] + }, + { + "parameters": { + "mode": "insert", + "options": {} + }, + "id": "ef5cb549-6c57-475f-a574-6969ba51626e", + "name": "Postgres PGVector Store", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1200, 600], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "mode": "insert", + "options": {} + }, + "id": "93302c27-5e2f-4497-8b2b-a544f71f0b4c", + "name": "Postgres PGVector Store6", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1200, 1040], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "code": { + "execute": { + "code": "const { PromptTemplate } = require('@langchain/core/prompts');\n\nconst vectorStore = await this.getInputConnectionData('ai_vectorStore', 0);\nconst retriever = vectorStore.asRetriever(40);\n\nconst documents = await retriever.invoke('Some query');\nreturn [ {json: { documents } } ];" + } + }, + "inputs": { + "input": [ + { + "type": "main", + "maxConnections": 1, + "required": true + }, + { + "type": "ai_vectorStore", + "maxConnections": 1, + "required": true + } + ] + }, + "outputs": { + "output": [ + { + "type": "main" + } + ] + } + }, + "id": "547331e8-808f-4015-854c-06cf8a876e12", + "name": "LangChain Code", + "type": "@n8n/n8n-nodes-langchain.code", + "typeVersion": 1, + "position": [1160, 1840], + "executeOnce": true + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5a9bd52c-f383-4f1c-9a6c-dc1f326775ce", + "name": "has_correct_length", + "value": "={{ $json.documents.length === 12 }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "e0771a3b-5765-481a-a05c-a56331078797", + "name": "Edit Fields", + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [1540, 1840] + }, + { + "parameters": { + "mode": "insert", + "options": {} + }, + "id": "8d013334-cfba-4e04-bac8-ae282500366d", + "name": "Postgres PGVector Store7", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1180, 1420], + "executeOnce": true, + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "22fdcb8c-e4d6-457b-8635-cb8d4f84189b", + "name": "Embeddings OpenAI5", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1120, 3280], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5a9bd52c-f383-4f1c-9a6c-dc1f326775ce", + "name": "has_correct_length", + "value": "={{ $json.documents.length === 12 }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "be8de136-11c8-4656-b94f-132286f7a84c", + "name": "Edit Fields2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [1700, 3120] + }, + { + "parameters": { + "aggregate": "aggregateAllItemData", + "destinationFieldName": "documents", + "options": {} + }, + "id": "c3625b63-5e97-4a1c-b0f2-40abcccdcf68", + "name": "Aggregate", + "type": "n8n-nodes-base.aggregate", + "typeVersion": 1, + "position": [1500, 3120] + }, + { + "parameters": { + "mode": "load", + "prompt": "n8n_vectors", + "topK": 40, + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "get_all" + } + ] + } + } + }, + "id": "da78ec78-5970-495c-a597-33b4f1ec8fc4", + "name": "Postgres PGVector Store1", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1120, 3120], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "retriever" + } + ] + } + } + }, + "id": "a90f2fe9-e51b-43cc-a345-fd581a67b204", + "name": "Postgres PGVector Store2", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1140, 2800], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "purpose", + "value": "retriever" + } + ] + } + } + }, + "id": "7111c549-0a33-4662-b574-10eac290bc2e", + "name": "Postgres PGVector Store3", + "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", + "typeVersion": 1, + "position": [1120, 2040], + "credentials": { + "postgres": { + "id": "pHGfJmTMIpWliDSS", + "name": "PGVector account" + } + } + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Code", + "type": "main", + "index": 0 + } + ] + ] + }, + "Token Splitter1": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader1", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain1": { + "main": [ + [ + { + "node": "Edit Fields1", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Question and Answer Chain1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Retriever1": { + "ai_retriever": [ + [ + { + "node": "Question and Answer Chain1", + "type": "ai_retriever", + "index": 0 + } + ] + ] + }, + "Code": { + "main": [ + [ + { + "node": "Postgres PGVector Store", + "type": "main", + "index": 0 + }, + { + "node": "Postgres PGVector Store6", + "type": "main", + "index": 0 + }, + { + "node": "Postgres PGVector Store7", + "type": "main", + "index": 0 + }, + { + "node": "LangChain Code", + "type": "main", + "index": 0 + }, + { + "node": "Question and Answer Chain1", + "type": "main", + "index": 0 + }, + { + "node": "Postgres PGVector Store1", + "type": "main", + "index": 0 + }, + { + "node": "Postgres", + "type": "main", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI4": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader1": { + "ai_document": [ + [ + { + "node": "Postgres PGVector Store", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI3": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store2", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store3", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI8": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store6", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader3": { + "ai_document": [ + [ + { + "node": "Postgres PGVector Store6", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter3": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader3", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI9": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store7", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader4": { + "ai_document": [ + [ + { + "node": "Postgres PGVector Store7", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter4": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader4", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "LangChain Code": { + "main": [ + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI5": { + "ai_embedding": [ + [ + { + "node": "Postgres PGVector Store1", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Aggregate": { + "main": [ + [ + { + "node": "Edit Fields2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Postgres PGVector Store1": { + "main": [ + [ + { + "node": "Aggregate", + "type": "main", + "index": 0 + } + ] + ] + }, + "Postgres PGVector Store2": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Retriever1", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "Postgres PGVector Store3": { + "ai_vectorStore": [ + [ + { + "node": "LangChain Code", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true, + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "pinData": {}, + "versionId": "85e0e2ac-b253-4c25-8cdb-2cfc2d1b87f7", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/253.json b/packages/testing/playwright/test-workflows/workflows/253.json new file mode 100644 index 0000000000..27fedecd74 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/253.json @@ -0,0 +1,969 @@ +{ + "createdAt": "2024-09-25T08:48:42.324Z", + "updatedAt": "2024-09-25T11:23:25.000Z", + "id": "253", + "name": "Agent:Tools:OpenAI", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "a731e388-a711-44c4-a03a-acfd0667e10f", + "name": "Execute Workflow Trigger", + "type": "n8n-nodes-base.executeWorkflowTrigger", + "typeVersion": 1, + "position": [240, 980] + }, + { + "parameters": { + "name": "get_weather_data", + "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_weather" + } + ] + } + }, + "id": "e082d1ac-db5e-4122-bb0e-4dbb08296463", + "name": "Get Weather", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [640, 700] + }, + { + "parameters": { + "name": "get_evens", + "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_events" + } + ] + } + }, + "id": "ff4cae49-b5d5-4825-a59b-875375933c59", + "name": "Get Events", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [760, 700] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", + "name": "response", + "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "8f707bcc-0635-43b8-aa29-0ecd9ceecbbb", + "name": "Edit Fields4", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [740, 920] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "0434695d-b245-4947-8b6e-7676a5c92904", + "name": "response", + "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "0086c025-54ad-41c2-bc7b-ce12fbe05fb2", + "name": "Edit Fields5", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [740, 1100] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0 + } + }, + "id": "956d7763-aa7a-4089-8ba6-4ea55d9f7daf", + "name": "OpenAI Chat Model4", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [540, 540], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + }, + "notes": "IGNORED_PROPERTIES=messages" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "has_weather", + "value": "={{ $json.output.includes('5.1') }}", + "type": "boolean" + }, + { + "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", + "name": "has_movie", + "value": "={{ $json.output.includes('Dune') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "653e99b2-80c8-4b15-8b3b-818940e28365", + "name": "Edit Fields6", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [900, 380] + }, + { + "parameters": {}, + "id": "5f16c9cf-cab4-45ba-8974-5a366ef64677", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-40, -180] + }, + { + "parameters": { + "content": "## Multiple Tools Calling", + "height": 80, + "width": 335 + }, + "id": "32ebc991-eb8a-48de-a8e4-5aef5c6ba7ae", + "name": "Sticky Note", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [500, 320] + }, + { + "parameters": { + "content": "## Output Parsing\n", + "height": 88, + "width": 386 + }, + "id": "00ffa66d-4359-4b9b-9cd2-f53e64b5f9d2", + "name": "Sticky Note1", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [500, -240] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "0434695d-b245-4947-8b6e-7676a5c92904", + "name": "response", + "value": "=Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\n\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\n\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\n\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\n\nExhibitions\n\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "d827a4a6-dbaa-4af9-a3c2-123c3b37b81a", + "name": "Edit Fields", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [740, 1280] + }, + { + "parameters": { + "rules": { + "values": [ + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "leftValue": "={{ $json.tool }}", + "rightValue": "get_weather", + "operator": { + "type": "string", + "operation": "equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Weather" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", + "leftValue": "={{ $json.tool }}", + "rightValue": "get_events", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Events" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict" + }, + "conditions": [ + { + "id": "64f3dd1b-57e3-4183-a1d6-6b9b58fd1d81", + "leftValue": "={{ $json.tool }}", + "rightValue": "search_wiki", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "search_wiki" + } + ] + }, + "options": {} + }, + "id": "46387d9e-d93f-443c-93b6-6f61013839ae", + "name": "Switch", + "type": "n8n-nodes-base.switch", + "typeVersion": 3, + "position": [460, 980] + }, + { + "parameters": { + "name": "get_evens", + "description": "Call this tool to search Wikipedia.", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "search_wiki" + } + ] + } + }, + "id": "7a52053b-bcdd-4c55-badb-9cf4739f1804", + "name": "Search Wiki", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [660, 60] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0.1 + } + }, + "id": "fb451b3f-1c18-4f58-953a-5787d7dc27a5", + "name": "OpenAI Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [540, 0], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "schemaType": "manual", + "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Full name of the artist\"\n },\n \"birthDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of birth\"\n },\n \"deathDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of death\"\n },\n \"nationality\": {\n \"type\": \"string\",\n \"description\": \"Artist's nationality\"\n },\n \"profession\": {\n \"type\": \"string\",\n \"description\": \"Artist's primary profession\"\n },\n \"notableWorks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Notable works created by the artist\"\n }\n },\n \"required\": [\"name\", \"birthDate\", \"deathDate\", \"nationality\", \"profession\", \"notableWorks\"]\n}" + }, + "id": "bba3dd1d-82f1-4bf2-80ba-2b64e6748abb", + "name": "Structured Output Parser", + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [800, 0] + }, + { + "parameters": { + "promptType": "define", + "text": "Tell me about M.C. Escher", + "hasOutputParser": true, + "options": {} + }, + "id": "7b8eee2b-6677-4935-a102-8a40405b968b", + "name": "AI Agent", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [540, -180] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "has_birth_date", + "value": "={{ $json.output.birthDate === '1898-06-17' }}", + "type": "boolean" + }, + { + "id": "57513cf6-1ee7-40b7-95fc-316066c62153", + "name": "has_death_date", + "value": "={{ $json.output.deathDate === '1972-03-27' }}", + "type": "string" + }, + { + "id": "357953da-7578-4c7e-b8f8-aa25bd9187a4", + "name": "has_name", + "value": "={{ $json.output.name === 'Maurits Cornelis Escher' }}", + "type": "string" + }, + { + "id": "7cf215ea-f65a-467c-b158-9a80d8de7511", + "name": "has_works", + "value": "={{ $json.output.notableWorks.includes('Hand with Reflecting Sphere') }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "857bab38-39a5-4d53-800f-4fe3bd96f666", + "name": "Edit Fields7", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [900, -180] + }, + { + "parameters": { + "content": "## Code Tool with Schema\n", + "height": 88, + "width": 386 + }, + "id": "cca57c6d-f08e-4032-83b9-3a9a6caf0334", + "name": "Sticky Note2", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [500, -620] + }, + { + "parameters": { + "name": "array_merge", + "description": "Call this tool to merge array of strings to a single string", + "jsCode": "// Example: convert the incoming query to uppercase and return it\nreturn query.strings_array.join(', ');", + "specifyInputSchema": true, + "jsonSchemaExample": "{\n\t\"strings_array\": [\"some_value\", \"some_other_value\"]\n}" + }, + "id": "66abd2b8-45ab-455e-b3e1-d6a4d5f083de", + "name": "Code Tool", + "type": "@n8n/n8n-nodes-langchain.toolCode", + "typeVersion": 1.1, + "position": [740, -400] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0.3 + } + }, + "id": "899ed8b5-2805-4647-870c-ffa80828d195", + "name": "OpenAI Chat Model1", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [540, -420], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.", + "options": { + "returnIntermediateSteps": false + } + }, + "id": "ab2d9ecf-f338-4e45-b327-667604b21a10", + "name": "AI Agent4", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [520, 380] + }, + { + "parameters": { + "promptType": "define", + "text": "Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "02408929-ec1f-45ab-bd1f-1b9964814281", + "name": "AI Agent1", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [540, -560] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "passed_array_parameter", + "value": "={{ Array.isArray($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array) }}", + "type": "boolean" + }, + { + "id": "069c2fe9-f0f8-4938-9552-1dac5c720add", + "name": "has_correct_length", + "value": "={{ $json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array.length === 4 }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "dcae231c-5b1c-49f9-b8e4-c9df4e6fa855", + "name": "Edit Fields8", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [900, -560] + }, + { + "parameters": { + "content": "## Tool without parameters\n", + "height": 88, + "width": 386 + }, + "id": "b29f9a3d-db79-4d7c-8b2c-0044b56b5a6e", + "name": "Sticky Note3", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [560, -1020] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "empty_args", + "value": "={{ $ifEmpty($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args, true) }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "ca926d8b-86d5-4dcd-b23f-aadc5f43d35c", + "name": "Edit Fields9", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [960, -960] + }, + { + "parameters": { + "toolDescription": "Fetch Example website", + "url": "https://example.com" + }, + "id": "a237cbf1-dab1-4ea9-bb6c-aff17b33e0d3", + "name": "HTTP Request", + "type": "@n8n/n8n-nodes-langchain.toolHttpRequest", + "typeVersion": 1.1, + "position": [800, -800] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0.3 + } + }, + "id": "6aadda49-1d19-4038-90e6-5f7adecc5a1f", + "name": "OpenAI Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [600, -800], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "Fetch example website", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "bdcc5d54-9532-4bf3-a2b7-da03c196cb15", + "name": "AI Agent2", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [600, -960] + }, + { + "parameters": { + "sessionIdType": "customKey", + "sessionKey": "memory3", + "contextWindowLength": 10 + }, + "id": "e49bafe2-725a-4146-8023-ecd86952569f", + "name": "Window Buffer Memory1", + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.3, + "position": [580, -1220] + }, + { + "parameters": { + "jsonSchemaExample": "{\n\t\"english_answer\": \"California\",\n\t\"czech_answer\": \"California\"\n}" + }, + "id": "ca8a3ac2-9055-4f3f-8ccc-897718885cd4", + "name": "Structured Output Parser1", + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [720, -1220] + }, + { + "parameters": { + "model": "gpt-4o-mini", + "options": { + "temperature": 0.1 + } + }, + "id": "bc913d5b-c00f-44da-a07c-2dceda473199", + "name": "OpenAI Chat Model3", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [440, -1220], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "Can you still remember my name?", + "hasOutputParser": true, + "options": { + "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." + } + }, + "id": "c255ee66-3a23-4051-9bc3-09eccdf4a4e8", + "name": "AI Agent3", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [960, -1380] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "492acf62-f7d5-4798-a93c-6a291421ecfb", + "name": "contain_both_answers", + "value": "={{ $json.output.english_answer.length > 0 && $json.output.czech_answer.length > 0 }}", + "type": "boolean" + }, + { + "id": "5c56b6d3-1d59-45c4-bcb8-3d4722493c62", + "name": "recalled_name", + "value": "={{ $json.output.english_answer.includes('Oleg') }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "92534d51-0e5b-481d-9e57-165b77ee9f9d", + "name": "Edit Fields1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [1300, -1380] + }, + { + "parameters": { + "promptType": "define", + "text": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", + "hasOutputParser": true, + "options": { + "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." + } + }, + "id": "8fbc4e41-29c5-442d-8661-441a7e9f348a", + "name": "AI Agent5", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [600, -1380] + }, + { + "parameters": { + "content": "## Output Parser + Memory\n", + "height": 88, + "width": 386 + }, + "id": "be054b49-a62a-4caa-88b3-6b9d44386431", + "name": "Sticky Note4", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [580, -1440] + } + ], + "connections": { + "Execute Workflow Trigger": { + "main": [ + [ + { + "node": "Switch", + "type": "main", + "index": 0 + } + ] + ] + }, + "Get Weather": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Get Events": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model4": { + "ai_languageModel": [ + [ + { + "node": "AI Agent4", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Switch": { + "main": [ + [ + { + "node": "Edit Fields4", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields5", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ] + ] + }, + "Search Wiki": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Structured Output Parser": { + "ai_outputParser": [ + [ + { + "node": "AI Agent", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "AI Agent": { + "main": [ + [ + { + "node": "Edit Fields7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code Tool": { + "ai_tool": [ + [ + { + "node": "AI Agent1", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "AI Agent1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent1", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent4", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent2", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent5", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent4": { + "main": [ + [ + { + "node": "Edit Fields6", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent1": { + "main": [ + [ + { + "node": "Edit Fields8", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "ai_tool": [ + [ + { + "node": "AI Agent2", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "AI Agent2", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent2": { + "main": [ + [ + { + "node": "Edit Fields9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Window Buffer Memory1": { + "ai_memory": [ + [ + { + "node": "AI Agent5", + "type": "ai_memory", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_memory", + "index": 0 + } + ] + ] + }, + "Structured Output Parser1": { + "ai_outputParser": [ + [ + { + "node": "AI Agent5", + "type": "ai_outputParser", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model3": { + "ai_languageModel": [ + [ + { + "node": "AI Agent5", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent3": { + "main": [ + [ + { + "node": "Edit Fields1", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent5": { + "main": [ + [ + { + "node": "AI Agent3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true, + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "pinData": {}, + "versionId": "efad4233-0bf7-47f0-9da9-20b335b6b999", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/254.json b/packages/testing/playwright/test-workflows/workflows/254.json new file mode 100644 index 0000000000..5325576780 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/254.json @@ -0,0 +1,1023 @@ +{ + "createdAt": "2024-09-25T09:14:35.108Z", + "updatedAt": "2024-09-25T11:27:58.000Z", + "id": "254", + "name": "Agent:Tools:Anthropic", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "f9b7ea03-1809-4fef-80dd-521e9d60f3bc", + "name": "Execute Workflow Trigger", + "type": "n8n-nodes-base.executeWorkflowTrigger", + "typeVersion": 1, + "position": [240, 1100] + }, + { + "parameters": { + "name": "get_weather_data", + "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_weather" + } + ] + } + }, + "id": "4275e044-2ce3-4942-a0ed-406bed90debc", + "name": "Get Weather", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [640, 580] + }, + { + "parameters": { + "name": "get_evens", + "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "get_events" + } + ] + } + }, + "id": "c28a61c8-be38-4031-a456-76f936ba6721", + "name": "Get Events", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [760, 580] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", + "name": "response", + "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "141f2081-39eb-48f4-9ade-924187116c58", + "name": "Edit Fields4", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1140, 900] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "0434695d-b245-4947-8b6e-7676a5c92904", + "name": "response", + "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "ce0ba26a-5149-436f-aaf6-dc2b64ca02b1", + "name": "Edit Fields5", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1140, 1080] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "has_weather", + "value": "={{ $json.output.includes('weather') }}", + "type": "boolean" + }, + { + "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", + "name": "has_movie", + "value": "={{ $json.output.includes('Dune') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "4ec6d24d-353c-4534-a9e7-5a19f62f8fde", + "name": "Edit Fields6", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [900, 260] + }, + { + "parameters": {}, + "id": "e14fcffe-bbf8-429c-b84e-aa749017fb8c", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-40, -180] + }, + { + "parameters": { + "content": "## Multiple Tools Calling", + "height": 80, + "width": 335 + }, + "id": "62fb5440-b07d-4279-9c0a-722a65fa5322", + "name": "Sticky Note", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [500, 200] + }, + { + "parameters": { + "content": "## Output Parsing\n", + "height": 88, + "width": 386 + }, + "id": "8020da6e-2ab4-4613-8527-b78705f72114", + "name": "Sticky Note1", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [480, -240] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "0434695d-b245-4947-8b6e-7676a5c92904", + "name": "response", + "value": "=Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\n\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\n\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\n\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\n\nExhibitions\n\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "2a0cdc4d-2ed8-4efe-973f-a633469c8001", + "name": "Edit Fields", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1140, 1260] + }, + { + "parameters": { + "name": "get_evens", + "description": "Call this tool to search Wikipedia.", + "workflowId": "={{ $workflow.id }}", + "fields": { + "values": [ + { + "name": "tool", + "stringValue": "search_wiki" + } + ] + } + }, + "id": "e4d9f9bc-45b0-41ce-8f52-539144736ed5", + "name": "Search Wiki", + "type": "@n8n/n8n-nodes-langchain.toolWorkflow", + "typeVersion": 1, + "position": [640, 60] + }, + { + "parameters": { + "schemaType": "manual", + "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Full name of the artist\"\n },\n \"birthDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of birth\"\n },\n \"deathDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of death\"\n },\n \"nationality\": {\n \"type\": \"string\",\n \"description\": \"Artist's nationality\"\n },\n \"profession\": {\n \"type\": \"string\",\n \"description\": \"Artist's primary profession\"\n },\n \"notableWorks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Notable works created by the artist\"\n }\n },\n \"required\": [\"name\", \"birthDate\", \"deathDate\", \"nationality\", \"profession\", \"notableWorks\"]\n}" + }, + "id": "466a8e57-8eb7-47a9-b0f0-f16c52b18c8f", + "name": "Structured Output Parser", + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [780, 0] + }, + { + "parameters": { + "promptType": "define", + "text": "Tell me about M.C. Escher", + "hasOutputParser": true, + "options": {} + }, + "id": "75babac0-cb8c-401a-a027-49b850166bf3", + "name": "AI Agent", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [520, -180] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "has_birth_date", + "value": "={{ $json.output.birthDate === '1898-06-17' }}", + "type": "boolean" + }, + { + "id": "57513cf6-1ee7-40b7-95fc-316066c62153", + "name": "has_death_date", + "value": "={{ $json.output.deathDate === '1972-03-27' }}", + "type": "string" + }, + { + "id": "357953da-7578-4c7e-b8f8-aa25bd9187a4", + "name": "has_name", + "value": "={{ $json.output.name.includes('Escher') }}", + "type": "string" + }, + { + "id": "7cf215ea-f65a-467c-b158-9a80d8de7511", + "name": "has_works", + "value": "={{ $json.output.notableWorks.length > 0 }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "31344c44-bbfc-4774-92d9-b61762b43238", + "name": "Edit Fields7", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [880, -180] + }, + { + "parameters": { + "content": "## Code Tool with Schema\n", + "height": 88, + "width": 386 + }, + "id": "54533ef5-039b-4243-a81c-9ac1265ae3ec", + "name": "Sticky Note2", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [500, -620] + }, + { + "parameters": { + "name": "array_merge", + "description": "Call this tool to merge array of strings to a single string", + "jsCode": "// Example: convert the incoming query to uppercase and return it\nreturn query.strings_array.join(', ');", + "specifyInputSchema": true, + "jsonSchemaExample": "{\n\t\"strings_array\": [\"some_value\", \"some_other_value\"]\n}" + }, + "id": "35be87b4-b947-4b05-9380-23570dac701d", + "name": "Code Tool", + "type": "@n8n/n8n-nodes-langchain.toolCode", + "typeVersion": 1.1, + "position": [740, -400] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "passed_array_parameter", + "value": "={{ Array.isArray($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array) }}", + "type": "boolean" + }, + { + "id": "069c2fe9-f0f8-4938-9552-1dac5c720add", + "name": "has_correct_length", + "value": "={{ $json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array.length === 4 }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "33afa806-84d4-4c2e-a004-22e4d4808d47", + "name": "Edit Fields8", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [900, -560] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "66c36215-8924-4534-8e7b-845d8de29f4a", + "name": "response", + "value": "success", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "b35ef011-376c-4982-b7d9-8ad29eb65cd0", + "name": "Edit Fields1", + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [1140, 1460] + }, + { + "parameters": { + "promptType": "define", + "text": "Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "ed050ae2-eb67-4b1f-a87b-28bf5952e5da", + "name": "AI Agent1", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [540, -560] + }, + { + "parameters": { + "model": "claude-3-haiku-20240307", + "options": { + "temperature": 0.1 + } + }, + "id": "5aa82a01-8d32-4ede-a7f3-9ea2f24432d2", + "name": "Anthropic Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.2, + "position": [520, 460], + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + }, + { + "parameters": { + "model": "claude-3-haiku-20240307", + "options": { + "temperature": 0.1 + } + }, + "id": "2bfdb0c4-6bc9-481d-ad3c-51bed0925a78", + "name": "Anthropic Chat Model", + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.2, + "position": [520, 20], + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + }, + { + "parameters": { + "model": "claude-3-haiku-20240307", + "options": { + "temperature": 0.1 + } + }, + "id": "11d7b586-bf4b-42aa-81c1-55aa0e17a3fc", + "name": "Anthropic Chat Model3", + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.2, + "position": [540, -400], + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "59f6625d-fbb2-47f8-ab09-31a6e0f3e527", + "name": "AI Agent4", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [520, 260] + }, + { + "parameters": { + "rules": { + "values": [ + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 1 + }, + "conditions": [ + { + "leftValue": "={{ $json.tool }}", + "rightValue": "get_weather", + "operator": { + "type": "string", + "operation": "equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Weather" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 1 + }, + "conditions": [ + { + "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", + "leftValue": "={{ $json.tool }}", + "rightValue": "get_events", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "Events" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 1 + }, + "conditions": [ + { + "id": "64f3dd1b-57e3-4183-a1d6-6b9b58fd1d81", + "leftValue": "={{ $json.tool }}", + "rightValue": "search_wiki", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "search_wiki" + }, + { + "conditions": { + "options": { + "caseSensitive": true, + "leftValue": "", + "typeValidation": "strict", + "version": 1 + }, + "conditions": [ + { + "id": "85f031f4-123f-4407-b5d0-fdd90a26667c", + "leftValue": "={{ $json.tool }}", + "rightValue": "no_query", + "operator": { + "type": "string", + "operation": "equals", + "name": "filter.operator.equals" + } + } + ], + "combinator": "and" + }, + "renameOutput": true, + "outputKey": "empty_query" + } + ] + }, + "options": {} + }, + "id": "f4dde342-7945-49a1-8e98-cb967ada7afe", + "name": "Switch", + "type": "n8n-nodes-base.switch", + "typeVersion": 3, + "position": [460, 1100] + }, + { + "parameters": { + "content": "## Tool without parameters\n", + "height": 88, + "width": 386 + }, + "id": "b5dca644-99e9-4493-9e6a-1fbc03502d5a", + "name": "Sticky Note3", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [520, -1040] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", + "name": "empty_args", + "value": "={{ $ifEmpty($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args, true) }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "2336c95b-f98a-4c4a-89df-d02c7ad00d42", + "name": "Edit Fields9", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [920, -980] + }, + { + "parameters": { + "model": "claude-3-haiku-20240307", + "options": { + "temperature": 0.1 + } + }, + "id": "7646d5c7-3717-483f-85b5-da0f8eadf609", + "name": "Anthropic Chat Model4", + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.2, + "position": [560, -820], + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + }, + { + "parameters": { + "toolDescription": "Fetch Example website", + "url": "https://example.com" + }, + "id": "1e1f51e8-7668-4efd-95d6-9c8e7cd5dfbc", + "name": "HTTP Request", + "type": "@n8n/n8n-nodes-langchain.toolHttpRequest", + "typeVersion": 1.1, + "position": [740, -820] + }, + { + "parameters": { + "promptType": "define", + "text": "Fetch example website", + "options": { + "returnIntermediateSteps": true + } + }, + "id": "36e3e45c-8167-4382-87fa-fed3eccc7dff", + "name": "AI Agent2", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [560, -980] + }, + { + "parameters": { + "sessionIdType": "customKey", + "sessionKey": "memory3", + "contextWindowLength": 10 + }, + "id": "7eace01a-7ea1-4175-a989-297a885d6f54", + "name": "Window Buffer Memory1", + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.3, + "position": [500, -1240] + }, + { + "parameters": { + "jsonSchemaExample": "{\n\t\"english_answer\": \"California\",\n\t\"czech_answer\": \"California\"\n}" + }, + "id": "58269208-5599-4e2f-b9fe-f63ce1bd73d3", + "name": "Structured Output Parser1", + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [660, -1240] + }, + { + "parameters": { + "promptType": "define", + "text": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", + "hasOutputParser": true, + "options": { + "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." + } + }, + "id": "66af25fe-deed-4aa1-b597-a2b8ec2aa9be", + "name": "AI Agent5", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [540, -1400] + }, + { + "parameters": { + "content": "## Output Parser + Memory\n", + "height": 88, + "width": 386 + }, + "id": "9dbe76ab-c191-404b-a3e6-bd81910923bc", + "name": "Sticky Note4", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [520, -1460] + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "492acf62-f7d5-4798-a93c-6a291421ecfb", + "name": "contain_both_answers", + "value": "={{ $json.output.english_answer.length > 0 && $json.output.czech_answer.length > 0 }}", + "type": "boolean" + }, + { + "id": "5c56b6d3-1d59-45c4-bcb8-3d4722493c62", + "name": "recalled_name", + "value": "={{ $json.output.english_answer.includes('Oleg') }}", + "type": "string" + } + ] + }, + "options": {} + }, + "id": "02cd9756-bc75-4467-a587-e9b063219b94", + "name": "Edit Fields2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.4, + "position": [1240, -1400] + }, + { + "parameters": { + "model": "claude-3-haiku-20240307", + "options": { + "temperature": 0.1 + } + }, + "id": "acd4aefe-5deb-465c-81c3-28647e4a62c6", + "name": "Anthropic Chat Model5", + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.2, + "position": [360, -1240], + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "Can you still remember my name?", + "hasOutputParser": true, + "options": { + "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." + } + }, + "id": "cd67dbc8-d756-4e0c-8f75-f753e61a4280", + "name": "AI Agent3", + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.6, + "position": [900, -1400] + } + ], + "connections": { + "Execute Workflow Trigger": { + "main": [ + [ + { + "node": "Switch", + "type": "main", + "index": 0 + } + ] + ] + }, + "Get Weather": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Get Events": { + "ai_tool": [ + [ + { + "node": "AI Agent4", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Search Wiki": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Structured Output Parser": { + "ai_outputParser": [ + [ + { + "node": "AI Agent", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "AI Agent": { + "main": [ + [ + { + "node": "Edit Fields7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code Tool": { + "ai_tool": [ + [ + { + "node": "AI Agent1", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent1", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent4", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent2", + "type": "main", + "index": 0 + }, + { + "node": "AI Agent5", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent1": { + "main": [ + [ + { + "node": "Edit Fields8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "AI Agent4", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model3": { + "ai_languageModel": [ + [ + { + "node": "AI Agent1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent4": { + "main": [ + [ + { + "node": "Edit Fields6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Switch": { + "main": [ + [ + { + "node": "Edit Fields4", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields5", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Edit Fields1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model4": { + "ai_languageModel": [ + [ + { + "node": "AI Agent2", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "ai_tool": [ + [ + { + "node": "AI Agent2", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "AI Agent2": { + "main": [ + [ + { + "node": "Edit Fields9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Window Buffer Memory1": { + "ai_memory": [ + [ + { + "node": "AI Agent5", + "type": "ai_memory", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_memory", + "index": 0 + } + ] + ] + }, + "Structured Output Parser1": { + "ai_outputParser": [ + [ + { + "node": "AI Agent5", + "type": "ai_outputParser", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "AI Agent5": { + "main": [ + [ + { + "node": "AI Agent3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model5": { + "ai_languageModel": [ + [ + { + "node": "AI Agent5", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "AI Agent3", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent3": { + "main": [ + [ + { + "node": "Edit Fields2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true, + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "pinData": {}, + "versionId": "40faa4fb-40b3-4081-8f60-1b226a6294dc", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/255.json b/packages/testing/playwright/test-workflows/workflows/255.json new file mode 100644 index 0000000000..beb1089aeb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/255.json @@ -0,0 +1,77 @@ +{ + "name": "Sub-node errors:model", + "nodes": [ + { + "parameters": {}, + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [0, 0], + "id": "077f1a05-32d1-4a9e-abd9-9ef4a1bcfe02", + "name": "When clicking ‘Test workflow’" + }, + { + "parameters": { + "promptType": "define", + "text": "Hey" + }, + "type": "@n8n/n8n-nodes-langchain.chainLlm", + "typeVersion": 1.5, + "position": [200, 0], + "id": "5c3f329d-6481-41c5-9747-e9fd53815ca6", + "name": "Basic LLM Chain", + "onError": "continueErrorOutput" + }, + { + "parameters": { + "model": "=gpt-4o-mini123", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [280, 220], + "id": "00cb1410-f04f-4b2b-b42e-f2c275ba0b4a", + "name": "OpenAI Chat Model", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + } + ], + "pinData": {}, + "connections": { + "When clicking ‘Test workflow’": { + "main": [ + [ + { + "node": "Basic LLM Chain", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "Basic LLM Chain", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + } + }, + "active": false, + "settings": { + "executionOrder": "v1" + }, + "versionId": "56e5e220-edbd-4d7a-97f3-96b8cf952202", + "meta": { + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "id": "255", + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/256.json b/packages/testing/playwright/test-workflows/workflows/256.json new file mode 100644 index 0000000000..dad4459eb3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/256.json @@ -0,0 +1,172 @@ +{ + "name": "Nested sub-node errors:model", + "nodes": [ + { + "parameters": { + "promptType": "define", + "text": "What happened yesterday?", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.7, + "position": [140, -60], + "id": "17f481ed-343f-4e0f-ace0-ec1a6937f57d", + "name": "AI Agent" + }, + { + "parameters": { + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [100, 180], + "id": "af60b8a2-f065-46e5-92c6-2b3f54e8b48d", + "name": "OpenAI Chat Model", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "name": "search_vector_store", + "description": "Retrieves data about past events" + }, + "type": "@n8n/n8n-nodes-langchain.toolVectorStore", + "typeVersion": 1, + "position": [400, 160], + "id": "3d2dc985-7dc5-4996-90c5-85e777070315", + "name": "Vector Store Tool" + }, + { + "parameters": { + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1.1, + "position": [360, 520], + "id": "55cfa84c-b2f6-40aa-9eef-43fec740ba6c", + "name": "Embeddings OpenAI", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "model": "=gpt-4o-mini123", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [620, 360], + "id": "46468ea7-318b-4893-b387-b8cc1cca1355", + "name": "OpenAI Chat Model1", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [300, 320], + "id": "e3a35d71-b47d-46fc-976e-eb671cc9c3fc", + "name": "In-Memory Vector Store" + }, + { + "parameters": {}, + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-60, -60], + "id": "b42f6a79-4b29-4e17-95ab-5c4fbeda3683", + "name": "When clicking ‘Test workflow’" + } + ], + "pinData": {}, + "connections": { + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Tool": { + "ai_tool": [ + [ + { + "node": "AI Agent", + "type": "ai_tool", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Vector Store Tool", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Tool", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "When clicking ‘Test workflow’": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "active": false, + "settings": { + "executionOrder": "v1" + }, + "versionId": "5b6e4b0f-73c8-4254-8b3e-aa36f3e5ae4e", + "meta": { + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "id": "256", + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/257.json b/packages/testing/playwright/test-workflows/workflows/257.json new file mode 100644 index 0000000000..c65a7e3423 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/257.json @@ -0,0 +1,235 @@ +{ + "createdAt": "2025-03-11T17:56:22.329Z", + "updatedAt": "2025-03-11T17:57:14.000Z", + "id": "257", + "name": "Agent:auto-fix:anthropic", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "f53b691d-beaa-4d60-a9da-d7380bc4c69a", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [-460, 80] + }, + { + "parameters": { + "promptType": "define", + "text": "What time is my check-in?", + "hasOutputParser": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.8, + "position": [-140, 80], + "id": "2ae90e1d-1333-4988-ac49-5e7e8f3026ff", + "name": "AI Agent" + }, + { + "parameters": { + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing", + "typeVersion": 1, + "position": [100, 360], + "id": "7e2efbb9-41b2-4c6a-a811-3a4d62181ff5", + "name": "Auto-fixing Output Parser" + }, + { + "parameters": { + "schemaType": "manual", + "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"resolution\": {\n \"type\": \"string\",\n \"description\": \"The customer-facing resolution or response that should be communicated to the customer\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Detailed explanation of the solution and reasoning for internal use\"\n }\n },\n \"additionalProperties\": true,\n \"required\": [\"resolution\", \"reasoning\"]\n}" + }, + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [240, 500], + "id": "6405c53c-46c2-4c64-84c7-a7db2b127ca6", + "name": "Structured Output Parser" + }, + { + "parameters": { + "sessionIdType": "customKey", + "sessionKey": "memory7" + }, + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.3, + "position": [-120, 360], + "id": "0b93b732-9529-45c6-a914-83c500ee3a36", + "name": "Simple Memory" + }, + { + "parameters": { + "model": { + "__rl": true, + "mode": "list", + "value": "gpt-4o-mini" + }, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1.2, + "position": [40, 500], + "id": "3ebb149d-a83d-4ec1-8e79-e67f87fc5091", + "name": "OpenAI Chat Model1", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "What time is my check-in?", + "hasOutputParser": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.8, + "position": [260, 80], + "id": "8237c156-5ec1-4bf9-84a1-ad408d3b6152", + "name": "AI Agent1" + }, + { + "parameters": { + "content": "## Auto-fixing Output Parser + Memory\n", + "height": 88, + "width": 386 + }, + "id": "fb77496b-6d07-4a3c-90a8-bb8788a5f588", + "name": "Sticky Note4", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [-300, -40] + }, + { + "parameters": { + "model": { + "__rl": true, + "value": "claude-3-7-sonnet-20250219", + "mode": "list", + "cachedResultName": "Claude 3.7 Sonnet" + }, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", + "typeVersion": 1.3, + "position": [-340, 360], + "id": "b32382ad-d5c6-4b80-b315-5ba9ce48c994", + "name": "Anthropic Chat Model", + "credentials": { + "anthropicApi": { + "id": "1Dr1Xbrd2xeq7gaq", + "name": "Anthropic account" + } + } + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + }, + "AI Agent": { + "main": [ + [ + { + "node": "AI Agent1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Auto-fixing Output Parser": { + "ai_outputParser": [ + [ + { + "node": "AI Agent", + "type": "ai_outputParser", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "Structured Output Parser": { + "ai_outputParser": [ + [ + { + "node": "Auto-fixing Output Parser", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "Simple Memory": { + "ai_memory": [ + [ + { + "node": "AI Agent", + "type": "ai_memory", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_memory", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Auto-fixing Output Parser", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Anthropic Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "4ab225eb-8c26-476c-a12f-d2cc00836ca5", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/258.json b/packages/testing/playwright/test-workflows/workflows/258.json new file mode 100644 index 0000000000..de3b334f4d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/258.json @@ -0,0 +1,236 @@ +{ + "createdAt": "2025-03-11T17:52:12.078Z", + "updatedAt": "2025-03-11T17:56:05.000Z", + "id": "258", + "name": "Agent:auto-fix:openai", + "active": false, + "nodes": [ + { + "parameters": {}, + "id": "9152fa2f-1cf1-4745-bf52-3d3374e501c5", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [160, 820] + }, + { + "parameters": { + "promptType": "define", + "text": "What time is my check-in?", + "hasOutputParser": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.8, + "position": [480, 820], + "id": "1c390448-79da-4a49-b7f2-3a7a99a23167", + "name": "AI Agent" + }, + { + "parameters": { + "model": { + "__rl": true, + "value": "gpt-4o-2024-05-13", + "mode": "list", + "cachedResultName": "gpt-4o-2024-05-13" + }, + "options": { + "temperature": 0, + "maxRetries": 3 + } + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1.2, + "position": [240, 1100], + "id": "71ffd19c-f0eb-4735-bdd5-4c8e9511fcc2", + "name": "OpenAI Chat Model", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing", + "typeVersion": 1, + "position": [720, 1100], + "id": "72cafb7e-889c-46cf-bfe1-ac71e9803037", + "name": "Auto-fixing Output Parser" + }, + { + "parameters": { + "schemaType": "manual", + "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"resolution\": {\n \"type\": \"string\",\n \"description\": \"The customer-facing resolution or response that should be communicated to the customer\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Detailed explanation of the solution and reasoning for internal use\"\n }\n },\n \"additionalProperties\": true,\n \"required\": [\"resolution\", \"reasoning\"]\n}" + }, + "type": "@n8n/n8n-nodes-langchain.outputParserStructured", + "typeVersion": 1.2, + "position": [860, 1240], + "id": "58ab5ac8-9f75-4448-a4c9-55a8d2afa8fd", + "name": "Structured Output Parser" + }, + { + "parameters": { + "sessionIdType": "customKey", + "sessionKey": "memory6" + }, + "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", + "typeVersion": 1.3, + "position": [500, 1100], + "id": "af4542a6-23e2-4baf-8544-b01aa16d22aa", + "name": "Simple Memory" + }, + { + "parameters": { + "model": { + "__rl": true, + "mode": "list", + "value": "gpt-4o-mini" + }, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1.2, + "position": [660, 1240], + "id": "84ebbc2c-ed7f-418b-b4b0-e0f273912d79", + "name": "OpenAI Chat Model1", + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "promptType": "define", + "text": "What time is my check-in?", + "hasOutputParser": true, + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.agent", + "typeVersion": 1.8, + "position": [880, 820], + "id": "92c04ad7-f491-4f0f-86de-c32fe82c2148", + "name": "AI Agent1" + }, + { + "parameters": { + "content": "## Auto-fixing Output Parser + Memory\n", + "height": 88, + "width": 386 + }, + "id": "38f59837-adec-49dc-b848-0b97561c3842", + "name": "Sticky Note4", + "type": "n8n-nodes-base.stickyNote", + "typeVersion": 1, + "position": [320, 700] + } + ], + "connections": { + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "AI Agent", + "type": "main", + "index": 0 + } + ] + ] + }, + "Auto-fixing Output Parser": { + "ai_outputParser": [ + [ + { + "node": "AI Agent", + "type": "ai_outputParser", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "Structured Output Parser": { + "ai_outputParser": [ + [ + { + "node": "Auto-fixing Output Parser", + "type": "ai_outputParser", + "index": 0 + } + ] + ] + }, + "Simple Memory": { + "ai_memory": [ + [ + { + "node": "AI Agent", + "type": "ai_memory", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_memory", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model1": { + "ai_languageModel": [ + [ + { + "node": "Auto-fixing Output Parser", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "AI Agent": { + "main": [ + [ + { + "node": "AI Agent1", + "type": "main", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model": { + "ai_languageModel": [ + [ + { + "node": "AI Agent", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "AI Agent1", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": null, + "pinData": {}, + "versionId": "e00984a3-c69b-42b6-afb9-91b44c6a0e37", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/259.json b/packages/testing/playwright/test-workflows/workflows/259.json new file mode 100644 index 0000000000..d4a28f9389 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/259.json @@ -0,0 +1,451 @@ +{ + "createdAt": "2024-03-04T17:02:06.139Z", + "updatedAt": "2025-03-12T13:18:57.000Z", + "id": "259", + "name": "ChainQA", + "active": false, + "nodes": [ + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "79cfd86e-b657-49de-bc61-13415ffa725b", + "name": "Embeddings OpenAI6", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [1420, 1580], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "options": { + "metadata": { + "metadataValues": [ + { + "name": "some-meta", + "value": "test" + }, + { + "name": "other-meta", + "value": "test2" + } + ] + } + } + }, + "id": "76ee3d77-836c-417d-8d8e-9822cddfe936", + "name": "Default Data Loader2", + "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", + "typeVersion": 1, + "position": [1560, 1580] + }, + { + "parameters": { + "chunkSize": 500, + "chunkOverlap": 100 + }, + "id": "1edacf5b-b7e4-4486-b98f-c78b338ac38e", + "name": "Token Splitter2", + "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", + "typeVersion": 1, + "position": [1560, 1760] + }, + { + "parameters": { + "model": "gpt-3.5-turbo-0125", + "options": { + "temperature": 0 + } + }, + "id": "93ff6597-cac9-4847-8efd-e1d03520b4b9", + "name": "OpenAI Chat Model2", + "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", + "typeVersion": 1, + "position": [2100, 1660], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": {}, + "id": "8985b238-8814-4aab-bbf3-801fb52c7757", + "name": "Vector Store Retriever2", + "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", + "typeVersion": 1, + "position": [2380, 1720] + }, + { + "parameters": { + "model": "text-embedding-3-small", + "options": {} + }, + "id": "b2ef63c3-2e18-49dc-8241-ee71eabdd6cb", + "name": "Embeddings OpenAI7", + "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", + "typeVersion": 1, + "position": [2320, 1980], + "credentials": { + "openAiApi": { + "id": "Zak03cqeLUOsgkFI", + "name": "OpenAi account" + } + } + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", + "name": "output_matches", + "value": "={{ $json.response.text?.includes('80') ?? $json.response.includes('80') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "046edb77-d0cd-4e8b-9db3-706c249e557f", + "name": "Edit Fields2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [3500, 1360] + }, + { + "parameters": { + "memoryKey": "bitcoin_wf_test" + }, + "id": "11262bc3-f1db-4162-94c8-5f2d5b279900", + "name": "In-Memory Vector Store2", + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [2320, 1860] + }, + { + "parameters": {}, + "id": "f4ff0f49-ac8b-4f7c-9cd4-90f0f9534772", + "name": "When clicking \"Test workflow\"", + "type": "n8n-nodes-base.manualTrigger", + "typeVersion": 1, + "position": [1000, 1340] + }, + { + "parameters": { + "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" + }, + "id": "06c12027-e965-441d-b1d8-b711eabbeb02", + "name": "Code", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1220, 1340] + }, + { + "parameters": { + "mode": "insert", + "memoryKey": "bitcoin_wf_test", + "clearStore": true + }, + "id": "569a716b-c369-461e-b522-4f890af4fa34", + "name": "In-Memory Vector Store", + "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", + "typeVersion": 1, + "position": [1480, 1340] + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", + "options": {} + }, + "id": "031906b6-9157-4ec4-93ab-55486e5a32f2", + "name": "Question and Answer Chain 1.3", + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.3, + "position": [2400, 1080] + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.4, + "position": [2660, 1340], + "id": "412a579e-3531-4270-983a-c938d66362e3", + "name": "Question and Answer Chain 1.4" + }, + { + "parameters": { + "promptType": "define", + "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", + "options": {} + }, + "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", + "typeVersion": 1.5, + "position": [2800, 1560], + "id": "e3f4a4e8-ef8e-4204-ac46-f0896126fcbe", + "name": "Question and Answer Chain 1.5" + }, + { + "parameters": { + "numberInputs": 3 + }, + "type": "n8n-nodes-base.merge", + "typeVersion": 3, + "position": [3280, 1360], + "id": "619f459a-d2a5-41ce-9b92-85f54d3f4017", + "name": "Merge" + }, + { + "parameters": { + "assignments": { + "assignments": [ + { + "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", + "name": "output_length_matches", + "value": "={{ $items().length === 12 }}", + "type": "boolean" + }, + { + "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", + "name": "has_content", + "value": "={{ $json.pageContent.length > 100 }}", + "type": "boolean" + }, + { + "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", + "name": "has_meta", + "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", + "type": "boolean" + } + ] + }, + "options": {} + }, + "id": "e49fd92f-0a97-44a4-bbf5-c9aa94496ce1", + "name": "Check Vector Store Populated2", + "type": "n8n-nodes-base.set", + "typeVersion": 3.3, + "position": [1940, 1340], + "executeOnce": true + } + ], + "connections": { + "Embeddings OpenAI6": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "Default Data Loader2": { + "ai_document": [ + [ + { + "node": "In-Memory Vector Store", + "type": "ai_document", + "index": 0 + } + ] + ] + }, + "Token Splitter2": { + "ai_textSplitter": [ + [ + { + "node": "Default Data Loader2", + "type": "ai_textSplitter", + "index": 0 + } + ] + ] + }, + "OpenAI Chat Model2": { + "ai_languageModel": [ + [ + { + "node": "Question and Answer Chain 1.3", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.4", + "type": "ai_languageModel", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.5", + "type": "ai_languageModel", + "index": 0 + } + ] + ] + }, + "Vector Store Retriever2": { + "ai_retriever": [ + [ + { + "node": "Question and Answer Chain 1.5", + "type": "ai_retriever", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.4", + "type": "ai_retriever", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.3", + "type": "ai_retriever", + "index": 0 + } + ] + ] + }, + "Embeddings OpenAI7": { + "ai_embedding": [ + [ + { + "node": "In-Memory Vector Store2", + "type": "ai_embedding", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store2": { + "ai_vectorStore": [ + [ + { + "node": "Vector Store Retriever2", + "type": "ai_vectorStore", + "index": 0 + } + ] + ] + }, + "When clicking \"Test workflow\"": { + "main": [ + [ + { + "node": "Code", + "type": "main", + "index": 0 + } + ] + ] + }, + "Code": { + "main": [ + [ + { + "node": "In-Memory Vector Store", + "type": "main", + "index": 0 + } + ] + ] + }, + "In-Memory Vector Store": { + "main": [ + [ + { + "node": "Check Vector Store Populated2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain 1.3": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Question and Answer Chain 1.4": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Question and Answer Chain 1.5": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 2 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "Edit Fields2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Check Vector Store Populated2": { + "main": [ + [ + { + "node": "Question and Answer Chain 1.5", + "type": "main", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.3", + "type": "main", + "index": 0 + }, + { + "node": "Question and Answer Chain 1.4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": { + "executionOrder": "v1" + }, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true + }, + "pinData": {}, + "versionId": "3669c4ec-780d-4c3d-88a9-d470593b5ed9", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/26.json b/packages/testing/playwright/test-workflows/workflows/26.json new file mode 100644 index 0000000000..98cd164b5a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/26.json @@ -0,0 +1,654 @@ +{ + "createdAt": "2021-02-17T09:14:09.452Z", + "updatedAt": "2021-05-21T11:16:43.023Z", + "id": "26", + "name": "ClickUp:Folder:create update getAll get delete:Goal:create update getAll get delete:GoalKeyResult:create update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c237659f-9d24-4aa2-9869-8965d9a1591b" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=testFolder{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [460, 220], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "5034da19-bed1-4282-a8e9-6cf18d227daf" + }, + { + "parameters": { + "resource": "folder", + "operation": "update", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "updateFields": { + "name": "=testFolderUpdated{{Date.now()}}" + } + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [740, 220], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f16090cd-67d3-41bc-b1f5-9449d3334323" + }, + { + "parameters": { + "resource": "folder", + "operation": "getAll", + "team": "4651110", + "space": "8716115", + "limit": 1, + "filters": {} + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1050, 220], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "5ecdc66a-43f2-4ee6-9139-32d43694f4b2" + }, + { + "parameters": { + "resource": "folder", + "operation": "get", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp3", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1330, 220], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "fb668fdb-e839-4b50-a683-1583474a2e0a" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp4", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1610, 220], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "0c7006d8-7a50-47a1-aa3d-b7d55041a95e" + }, + { + "parameters": { + "resource": "goal", + "team": "4651110", + "name": "=testGoal{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp5", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [450, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "bf9c004a-aec4-44fe-93c3-502b994deb5e" + }, + { + "parameters": { + "resource": "goal", + "operation": "update", + "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "updateFields": { + "name": "=testGoalUpdated{{Date.now()}}" + } + }, + "name": "ClickUp6", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1630, 390], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "1612db26-06b6-4311-823a-7f333867704c" + }, + { + "parameters": { + "resource": "goal", + "operation": "getAll", + "team": "4651110", + "limit": 1 + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1950, 390], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "52f593da-feb7-44e3-b4b1-480a6b3c7b80" + }, + { + "parameters": { + "resource": "goal", + "operation": "get", + "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}" + }, + "name": "ClickUp8", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2230, 390], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "e634fee5-7272-483b-81af-2f2edb2a1568" + }, + { + "parameters": { + "resource": "goal", + "operation": "delete", + "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}" + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2510, 390], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "fa8e6453-a83e-41cf-a447-25dded6c83cd" + }, + { + "parameters": { + "resource": "goalKeyResult", + "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}", + "name": "=testGoalResult{{Date.now()}}", + "type": "boolean", + "additionalFields": {} + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [730, 510], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "f5eca6a5-4ab4-462b-941f-5daafe6950b2" + }, + { + "parameters": { + "resource": "goalKeyResult", + "operation": "update", + "keyResult": "={{$node[\"ClickUp10\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated Key result{{Date.now()}}" + } + }, + "name": "ClickUp11", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1060, 510], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "6c66b452-6837-4db7-bc40-407dad872c28" + }, + { + "parameters": { + "resource": "goalKeyResult", + "operation": "delete", + "keyResult": "={{$node[\"ClickUp10\"].json[\"id\"]}}" + }, + "name": "ClickUp12", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1340, 510], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "disabled": true, + "id": "27caaec0-7dd1-4af8-bc0a-61425c6e212f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [590, 220], + "typeVersion": 1, + "id": "4617b9ef-c630-4c2f-9e38-bc8beb444063" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [890, 220], + "typeVersion": 1, + "id": "bd5ba78b-2492-4f5e-8c96-4cf38d7de98f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1180, 220], + "typeVersion": 1, + "id": "370f5b9c-91d0-4473-b6d2-75c3b5e22d4d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1470, 220], + "typeVersion": 1, + "id": "10594b96-9cfd-47a8-8195-27c04b33295c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [580, 400], + "typeVersion": 1, + "id": "57f1facf-1e6b-45a2-9163-bcf5f35cd956" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [890, 510], + "typeVersion": 1, + "id": "abad8d7c-4ace-444f-8dd1-3d6f1d1ddc7c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [1200, 510], + "typeVersion": 1, + "id": "f5b4c39b-e920-4abb-8b3b-3f2b1fe6725e" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds7", + "type": "n8n-nodes-base.function", + "position": [1500, 390], + "typeVersion": 1, + "id": "56e8b458-e6e0-4926-a5a3-62945de38f3b" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds8", + "type": "n8n-nodes-base.function", + "position": [1790, 390], + "typeVersion": 1, + "id": "e0177c72-6a50-499d-a271-4b1a1ea60bd3" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds9", + "type": "n8n-nodes-base.function", + "position": [2090, 390], + "typeVersion": 1, + "id": "3127e2cf-5e3b-47d7-ad5f-79ad1a1ae8e7" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds10", + "type": "n8n-nodes-base.function", + "position": [2380, 390], + "typeVersion": 1, + "id": "e6f31f9c-ef3a-49f8-a207-c16085088c71" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp2": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp3": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp5": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp6": { + "main": [ + [ + { + "node": "Sleep 8 Seconds8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp7": { + "main": [ + [ + { + "node": "Sleep 8 Seconds9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp8": { + "main": [ + [ + { + "node": "Sleep 8 Seconds10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp11": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp12": { + "main": [ + [ + { + "node": "Sleep 8 Seconds7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds7": { + "main": [ + [ + { + "node": "ClickUp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds8": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds9": { + "main": [ + [ + { + "node": "ClickUp8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds10": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/27.json b/packages/testing/playwright/test-workflows/workflows/27.json new file mode 100644 index 0000000000..e1fd98eaa3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/27.json @@ -0,0 +1,802 @@ +{ + "createdAt": "2021-02-17T09:32:18.514Z", + "updatedAt": "2021-05-21T11:18:41.858Z", + "id": "27", + "name": "ClickUp:Task:create update member getAll get delete:List:create update customFields member getAll get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [160, 420], + "id": "98e4c4b0-c5a3-465e-b621-662cd30ba485" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=TestFolder{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [310, 310], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "5e4c4ffe-c474-4ee1-a0b7-ca7023c3308d" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folder": "={{$json[\"id\"]}}", + "name": "=TestList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [580, 340], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "84597659-cbe6-468b-9229-7eb3e7fc4481" + }, + { + "parameters": { + "resource": "list", + "operation": "update", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdateTestList{{Date.now()}}" + } + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [860, 660], + "retryOnFail": true, + "waitBetweenTries": 500, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "37ede561-0fc6-4a18-8909-fd7815004a6c" + }, + { + "parameters": { + "resource": "list", + "team": "4651110", + "space": "8716115", + "folder": "={{$json[\"folder\"][\"id\"]}}", + "list": "={{$json[\"id\"]}}" + }, + "name": "ClickUp3", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1100, 660], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "7653a4d3-5046-4174-a2a2-651003ef4a11" + }, + { + "parameters": { + "resource": "list", + "operation": "member", + "id": "={{$node[\"ClickUp2\"].json[\"id\"]}}", + "returnAll": false, + "limit": 1 + }, + "name": "ClickUp4", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1400, 660], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "b4f551cc-edc7-4fb5-93d2-f2923b43e773" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "limit": 1, + "filters": {} + }, + "name": "ClickUp5", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1730, 660], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "2aaf834a-4856-4851-a723-30e92aef06da" + }, + { + "parameters": { + "resource": "list", + "operation": "get", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp6", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2050, 660], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "8f3cd1df-88e8-490e-956e-fa526e9efc06" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2380, 660], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "6927c6fa-e5ff-4645-9a41-323ea0f4e0f3" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp8", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2670, 660], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "30e40940-f242-4989-b107-6c570b7383b4" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folder": "={{$json[\"folder\"][\"id\"]}}", + "list": "={{$json[\"id\"]}}", + "name": "=testTask{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [850, 460], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "eaa614eb-b42a-4e87-8778-72f56553f57d" + }, + { + "parameters": { + "operation": "update", + "id": "={{$json[\"id\"]}}", + "updateFields": { + "name": "={{$json[\"name\"]}}Updated{{Date.now()}}" + } + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1100, 460], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "5958b2ae-0eab-4b4d-ad0a-8eb925b6948c" + }, + { + "parameters": { + "operation": "member", + "id": "={{$json[\"id\"]}}", + "returnAll": false, + "limit": 1 + }, + "name": "ClickUp11", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1400, 460], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "9e30c9e7-cf31-4520-a08e-a90990cecd9e" + }, + { + "parameters": { + "operation": "getAll", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "returnAll": false, + "limit": 1, + "filters": {} + }, + "name": "ClickUp12", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1740, 460], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "75a7b4ee-7d37-4384-8d6b-1f0785d73575" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"ClickUp9\"].json[\"id\"]}}" + }, + "name": "ClickUp13", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2050, 460], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "6f52a60f-2a79-449e-8a8e-0bd4005bdfbf" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"ClickUp9\"].json[\"id\"]}}" + }, + "name": "ClickUp14", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2380, 460], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "2a32012b-e6e5-4b42-8cfd-95318e12b81d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [440, 310], + "typeVersion": 1, + "id": "b1a45946-ff9a-483d-99b3-42f6dc8d6471" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [710, 340], + "typeVersion": 1, + "id": "f780613f-41a1-4c01-b7b5-0143f87c6f3a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [980, 460], + "typeVersion": 1, + "id": "51af53ab-592e-4417-9601-92c4714c1980" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1240, 460], + "typeVersion": 1, + "id": "d5bfeee6-1a7e-4353-a20f-4ed4b5cba689" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [1570, 460], + "typeVersion": 1, + "id": "9ab01733-73f7-498e-a969-9515ad2b5e32" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [1890, 460], + "typeVersion": 1, + "id": "aa025cf9-c5e5-4f3b-bb62-3197d973011c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [2210, 460], + "typeVersion": 1, + "id": "9d4d54c4-f642-4e4c-b717-10387a49989d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds7", + "type": "n8n-nodes-base.function", + "position": [980, 660], + "typeVersion": 1, + "id": "d724d742-235c-43df-ba81-619d2f840dd5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds8", + "type": "n8n-nodes-base.function", + "position": [1240, 660], + "typeVersion": 1, + "id": "d0b9f5e5-c66c-479b-bf37-c04b2643742f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds9", + "type": "n8n-nodes-base.function", + "position": [1550, 660], + "typeVersion": 1, + "id": "3950ee56-9ec9-4e78-ada3-857ab17aba27" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds10", + "type": "n8n-nodes-base.function", + "position": [1890, 660], + "typeVersion": 1, + "id": "c3728ed7-486c-4a6d-865e-08a21426368c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds11", + "type": "n8n-nodes-base.function", + "position": [2210, 660], + "typeVersion": 1, + "id": "021dbc08-7d4e-4867-808c-58f6844c6634" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds12", + "type": "n8n-nodes-base.function", + "position": [2530, 660], + "typeVersion": 1, + "id": "be53074b-6bfd-4fef-b359-034dd3be06f4" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds13", + "type": "n8n-nodes-base.function", + "position": [700, 660], + "typeVersion": 1, + "id": "ce69e0ce-50d7-416f-9349-dc3b5e378fd3" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp2": { + "main": [ + [ + { + "node": "Sleep 8 Seconds7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp3": { + "main": [ + [ + { + "node": "Sleep 8 Seconds8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp4": { + "main": [ + [ + { + "node": "Sleep 8 Seconds9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp5": { + "main": [ + [ + { + "node": "Sleep 8 Seconds10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp6": { + "main": [ + [ + { + "node": "Sleep 8 Seconds11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp7": { + "main": [ + [ + { + "node": "Sleep 8 Seconds12", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp9": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp11": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp12": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp13": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp14": { + "main": [ + [ + { + "node": "Sleep 8 Seconds13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds7": { + "main": [ + [ + { + "node": "ClickUp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds8": { + "main": [ + [ + { + "node": "ClickUp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds9": { + "main": [ + [ + { + "node": "ClickUp5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds10": { + "main": [ + [ + { + "node": "ClickUp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds11": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds12": { + "main": [ + [ + { + "node": "ClickUp8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds13": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/28.json b/packages/testing/playwright/test-workflows/workflows/28.json new file mode 100644 index 0000000000..60a9f3dd5c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/28.json @@ -0,0 +1,556 @@ +{ + "createdAt": "2021-02-17T10:31:28.487Z", + "updatedAt": "2021-05-21T11:19:34.732Z", + "id": "28", + "name": "ClickUp:CheckList:create update delete:CheckListItem:create update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "2cd723b8-61fc-43c8-8f3f-1ea7352d0380" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=test{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [440, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "572a26d0-b9b3-4770-9117-8887e5b44fa6" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "name": "=testingList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [720, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "9eeacdb8-f581-4e85-a1df-2a95c1addfc3" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folder": "={{$json[\"folder\"][\"id\"]}}", + "list": "={{$json[\"id\"]}}", + "name": "=testingTask{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1000, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "268944a2-0717-4eae-89af-fc0b04410f28" + }, + { + "parameters": { + "resource": "checklist", + "task": "={{$json[\"id\"]}}", + "name": "=checkListTest{{Date.now()}}" + }, + "name": "ClickUp3", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1320, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "ba8f8804-c2c4-4b27-af32-f7cf1b927015" + }, + { + "parameters": { + "resource": "checklist", + "operation": "update", + "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", + "updateFields": { + "name": "=checkListUpdated{{Date.now()}}" + } + }, + "name": "ClickUp5", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2620, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f2497296-0a02-4776-8630-4b60ced78f68" + }, + { + "parameters": { + "resource": "checklist", + "operation": "delete", + "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}" + }, + "name": "ClickUp6", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2900, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "a683cc12-b055-4e54-9e3b-8de767cc74a6" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp4", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3170, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "8dd64f31-29d1-4875-8d03-01d0af2c6794" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3450, 290], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "36227deb-d4d2-418b-8343-e1377555e1f3" + }, + { + "parameters": { + "resource": "checklistItem", + "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", + "name": "=Item{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp8", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1620, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f24f0655-5198-4eb7-a940-67ee22c2348a" + }, + { + "parameters": { + "resource": "checklistItem", + "operation": "update", + "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", + "checklistItem": "={{$node[\"ClickUp8\"].json[\"items\"][0][\"id\"]}}", + "updateFields": { + "name": "=UpdatedItem{{Date.now()}}" + } + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1940, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "3810e977-772d-4bce-b194-44e5bd8d011a" + }, + { + "parameters": { + "resource": "checklistItem", + "operation": "delete", + "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", + "checklistItem": "={{$node[\"ClickUp8\"].json[\"items\"][0][\"id\"]}}" + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2280, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "27d6aa81-4506-4e1d-af70-7261b7451814" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [570, 300], + "typeVersion": 1, + "id": "27b3d626-18a4-41e8-a461-a528119ddabf" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [860, 400], + "typeVersion": 1, + "id": "71a5ce83-df35-4968-8700-2d78833fc835" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1150, 400], + "typeVersion": 1, + "id": "a2a519d7-b353-4bc3-aefc-511ede861469" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1500, 500], + "typeVersion": 1, + "id": "34f7d210-cc78-4215-aaef-c9b789897a83" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [1780, 500], + "typeVersion": 1, + "id": "d6795c16-86a6-4928-99e7-416cd41d1d35" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [2120, 500], + "typeVersion": 1, + "id": "edd68a24-372b-47bd-b8a5-ed26c5b16289" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [2500, 400], + "typeVersion": 1, + "id": "36eec449-eacd-490f-b61e-58102b5964e6" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds8", + "type": "n8n-nodes-base.function", + "position": [3050, 350], + "typeVersion": 1, + "id": "4f7c7d5d-b24a-4651-84e0-b3de2908c9ec" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds9", + "type": "n8n-nodes-base.function", + "position": [3330, 290], + "typeVersion": 1, + "id": "fdd473de-9eb4-4193-886f-6b2d401ec539" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp2": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp3": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp5": { + "main": [ + [ + { + "node": "ClickUp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp6": { + "main": [ + [ + { + "node": "Sleep 8 Seconds8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp4": { + "main": [ + [ + { + "node": "Sleep 8 Seconds9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp8": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp9": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds8": { + "main": [ + [ + { + "node": "ClickUp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds9": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/29.json b/packages/testing/playwright/test-workflows/workflows/29.json new file mode 100644 index 0000000000..3f37527b87 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/29.json @@ -0,0 +1,422 @@ +{ + "createdAt": "2021-02-17T11:06:49.772Z", + "updatedAt": "2021-05-21T11:22:04.303Z", + "id": "29", + "name": "ClickUp:Comment:create update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "31a422ab-f12f-4746-ae7a-bf991eb8cfb2" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=Test2{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "64ab5323-4dc3-4f28-bdb8-da24f78d8017" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "name": "=testingList2{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [680, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f6c32a1e-8187-4e08-8283-a51ec248d1e0" + }, + { + "parameters": { + "resource": "comment", + "commentOn": "list", + "id": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "commentText": "=CommentOnList2{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [960, 420], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "d27edbe8-e7d6-41bd-b9d0-3baaaeb62946" + }, + { + "parameters": { + "resource": "comment", + "operation": "update", + "comment": "={{$node[\"ClickUp2\"].json[\"id\"]}}", + "updateFields": { + "commentText": "=commentUpdated{{Date.now()}}" + } + }, + "name": "ClickUp3", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1230, 420], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "11679d32-a338-4ace-993e-ade4de313f2d" + }, + { + "parameters": { + "resource": "comment", + "operation": "getAll", + "commentsOn": "list", + "id": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "ClickUp4", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1520, 420], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "0b4921e6-d3a0-4784-b0ad-bec284c82f0d" + }, + { + "parameters": { + "resource": "comment", + "operation": "delete", + "comment": "={{$node[\"ClickUp4\"].json[\"id\"]}}" + }, + "name": "ClickUp5", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1830, 420], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "b714cd49-ad36-44d5-8b3b-366fc2dfc678" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2400, 290], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "2db1799e-fc8d-4025-b620-012fca33414a" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp6", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2130, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "23a70dfb-25da-4931-80b0-b5dca7d6554d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [550, 300], + "typeVersion": 1, + "id": "01532975-dbf4-4757-a52b-255765b578bd" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [810, 400], + "typeVersion": 1, + "id": "50e69461-441f-4e30-be11-e2a426d4ec05" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1100, 420], + "typeVersion": 1, + "id": "89191a40-0e4b-482b-a346-c7e04d9dd93f" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1370, 420], + "typeVersion": 1, + "id": "fd4dddb0-7f59-42bb-aac0-07c76dea598e" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [1670, 420], + "typeVersion": 1, + "id": "3179d398-f06c-4902-82ac-3689d262297a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [2000, 350], + "typeVersion": 1, + "id": "bfa972c2-e9ac-4500-8ffb-1ede8db29900" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [2270, 290], + "typeVersion": 1, + "id": "2a6b234c-2bcf-4295-b092-2d7ba6ab7dd1" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp2": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp3": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp4": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp5": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp6": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/30.json b/packages/testing/playwright/test-workflows/workflows/30.json new file mode 100644 index 0000000000..4bef9987e5 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/30.json @@ -0,0 +1,423 @@ +{ + "createdAt": "2021-02-17T11:28:33.699Z", + "updatedAt": "2021-05-21T11:22:40.069Z", + "id": "30", + "name": "ClickUp:TaskDependency:create delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "c8338da0-7dbd-4b7b-ad70-c682f23f274b" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=TestFolder3{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "49bfdc4c-78c5-4fa0-ad06-749599d37da9" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "name": "=TestList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [700, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "22b07b3b-3d70-4812-8113-ca3414a823fe" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "name": "=testTask{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [990, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "f1468cfb-3736-4be0-b195-1f0c5f755890" + }, + { + "parameters": { + "resource": "taskDependency", + "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", + "dependsOnTask": "={{$node[\"ClickUp11\"].json[\"id\"]}}" + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1530, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "51f2c6b6-b7a4-41fc-b2e0-ce6185f735a3" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "name": "=testTask2{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp11", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1250, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "befbbbf0-82d4-41f2-a557-f58d40499944" + }, + { + "parameters": { + "resource": "taskDependency", + "operation": "delete", + "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", + "dependsOnTask": "={{$node[\"ClickUp11\"].json[\"id\"]}}" + }, + "name": "ClickUp12", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1810, 500], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "86f22c06-fcb6-40eb-a5f5-9e2e70bd768a" + }, + { + "parameters": { + "resource": "list", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" + }, + "name": "ClickUp7", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2080, 350], + "alwaysOutputData": true, + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "e81f92bb-d7a6-49d5-8627-684107126a98" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp8", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2370, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "a5a69ffb-9f8d-40c6-aa84-a19bc6701824" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [550, 300], + "typeVersion": 1, + "id": "7d5fb22c-f448-40ff-981c-ea5d4a9e191c" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [850, 400], + "typeVersion": 1, + "id": "19cce08a-a818-4749-9b8f-95aa6d36a847" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1120, 400], + "typeVersion": 1, + "id": "1a67dc29-5e28-4c23-921b-d8198ab9c4ff" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1390, 500], + "typeVersion": 1, + "id": "d80fb697-e532-4fca-a70a-7ba202475d18" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [1670, 500], + "typeVersion": 1, + "id": "43edd50f-e0fd-433f-ba37-0b5b3c2534a4" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [1950, 350], + "typeVersion": 1, + "id": "7507f4e6-4a8b-4080-ae36-df0df0d2243a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [2240, 300], + "typeVersion": 1, + "id": "a08f6787-67f4-4a5e-92a8-4c0479911f6e" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp9": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp11": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp12": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp7": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp8", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/31.json b/packages/testing/playwright/test-workflows/workflows/31.json new file mode 100644 index 0000000000..b880f6525e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/31.json @@ -0,0 +1,747 @@ +{ + "createdAt": "2021-02-17T11:37:42.892Z", + "updatedAt": "2021-05-21T11:23:28.228Z", + "id": "31", + "name": "ClickUp:TimeEntry:create update start stop getall get delete:TimeEntryTag: add getAll remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [180, 300], + "id": "57e2a34f-32b5-40cf-af01-bd1673d56885" + }, + { + "parameters": { + "resource": "folder", + "team": "4651110", + "space": "8716115", + "name": "=TestFolder3{{Date.now()}}" + }, + "name": "ClickUp", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [340, 300], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "e54b56d0-3678-4f29-ba16-124c8bab978e" + }, + { + "parameters": { + "resource": "list", + "operation": "create", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "name": "=TestList{{Date.now()}}", + "additionalFields": {} + }, + "name": "ClickUp1", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [620, 350], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "7c895a57-ff70-4d75-bba0-2e909803ce14" + }, + { + "parameters": { + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "name": "={{Date.now()}}task", + "additionalFields": {} + }, + "name": "ClickUp9", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [880, 400], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "941edfd0-d249-4679-bfb9-7b3de98942cf" + }, + { + "parameters": { + "resource": "timeEntry", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "start": "={{Date.now()}}", + "duration": 2, + "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "ClickUp10", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1230, 490], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "49d9fddf-92bb-41c2-83be-4fc1307fc00b" + }, + { + "parameters": { + "resource": "timeEntryTag", + "team": "4651110", + "timeEntryIds": "={{$node[\"ClickUp10\"].json[\"id\"]}}", + "tagsUi": { + "tagsValues": [ + { + "name": "n8n", + "tag_bg": "#FF3503", + "tag_fg": "#FFFFFF" + } + ] + } + }, + "name": "ClickUp11", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1530, 570], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "a9c8efeb-cdfb-4759-84bd-5073734056c8" + }, + { + "parameters": { + "resource": "timeEntryTag", + "operation": "getAll", + "team": "4651110" + }, + "name": "ClickUp12", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [1900, 570], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "c3c98b7f-7587-4d12-9e2a-5608b35c959c" + }, + { + "parameters": { + "resource": "timeEntryTag", + "operation": "remove", + "team": "4651110", + "timeEntryIds": "={{$node[\"ClickUp10\"].json[\"id\"]}}", + "tagNames": [ + "{\"name\":\"n8n\",\"creator\":8779387,\"tag_bg\":\"#FF3503\",\"tag_fg\":\"#FFFFFF\"}" + ] + }, + "name": "ClickUp13", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2210, 570], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "40847957-d93e-4f0c-954f-ae8460fe35c0" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "update", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", + "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", + "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}", + "updateFields": { + "duration": 1 + } + }, + "name": "ClickUp14", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2490, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "e52fb5d1-f1bf-4a1d-a8f3-d37a17fc601b" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "start", + "team": "4651110", + "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "ClickUp15", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [2770, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "55ca7b79-42a1-4029-bf83-3278d6186820" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "stop", + "team": "4651110" + }, + "name": "ClickUp16", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3060, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "660f4dc1-4264-4633-b92a-58ed05f70724" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "getAll", + "team": "4651110", + "limit": 1, + "filters": {} + }, + "name": "ClickUp17", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3330, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "0e143171-62db-4f3e-8d53-fb25c89b9d21" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "get", + "team": "4651110", + "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}" + }, + "name": "ClickUp18", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3600, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "58c0bb4e-2325-49c2-b121-c3c5e3124276" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "delete", + "team": "4651110", + "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}" + }, + "name": "ClickUp19", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [3870, 480], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "b2c2ab25-d4e3-463b-bb71-8cf8c127fb0c" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "team": "4651110", + "space": "8716115", + "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" + }, + "name": "ClickUp2", + "type": "n8n-nodes-base.clickUp", + "typeVersion": 1, + "position": [4170, 330], + "credentials": { + "clickUpApi": { + "id": "13", + "name": "clickup cred" + } + }, + "id": "ae521f8e-61da-427c-9078-bb0d34372a3a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds", + "type": "n8n-nodes-base.function", + "position": [470, 300], + "typeVersion": 1, + "id": "cd778215-46cb-4040-b5a8-4eacd1713e50" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds1", + "type": "n8n-nodes-base.function", + "position": [750, 350], + "typeVersion": 1, + "id": "ac37f999-d0e8-463c-9088-9e530c89c251" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds2", + "type": "n8n-nodes-base.function", + "position": [1020, 400], + "typeVersion": 1, + "id": "8a0375d2-4cf9-47f7-a096-cfa848791175" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds3", + "type": "n8n-nodes-base.function", + "position": [1370, 500], + "typeVersion": 1, + "id": "442ac115-e73d-48c8-9db4-152a2593067d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds4", + "type": "n8n-nodes-base.function", + "position": [1710, 570], + "typeVersion": 1, + "id": "e5d50f49-fbe6-43bd-b490-089d24588c8d" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds5", + "type": "n8n-nodes-base.function", + "position": [2050, 570], + "typeVersion": 1, + "id": "3d46fa02-ec36-4965-87b9-a9454fce76e3" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds6", + "type": "n8n-nodes-base.function", + "position": [2360, 480], + "typeVersion": 1, + "id": "3275a0ae-e00f-4d98-8b16-79946d1e87f3" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds7", + "type": "n8n-nodes-base.function", + "position": [2630, 480], + "typeVersion": 1, + "id": "a1722ed7-f526-483d-b14c-9658c3823e09" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds8", + "type": "n8n-nodes-base.function", + "position": [2910, 480], + "typeVersion": 1, + "id": "0b493dec-41b3-418e-a163-5e76ee274146" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds9", + "type": "n8n-nodes-base.function", + "position": [3200, 480], + "typeVersion": 1, + "id": "bf973582-986d-4962-a3bb-d415384ad5e5" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds10", + "type": "n8n-nodes-base.function", + "position": [3470, 480], + "typeVersion": 1, + "id": "e6a2b2ac-c798-4ad0-9974-580c871fca4a" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds11", + "type": "n8n-nodes-base.function", + "position": [3730, 480], + "typeVersion": 1, + "id": "1595390e-6e3f-46d7-8c02-26c52e3a62dd" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 8 Seconds12", + "type": "n8n-nodes-base.function", + "position": [4050, 330], + "typeVersion": 1, + "id": "73d2d5c3-8485-4828-b2d6-e923259a9235" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ClickUp", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp": { + "main": [ + [ + { + "node": "Sleep 8 Seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp1": { + "main": [ + [ + { + "node": "Sleep 8 Seconds1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp9": { + "main": [ + [ + { + "node": "Sleep 8 Seconds2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp10": { + "main": [ + [ + { + "node": "Sleep 8 Seconds3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp11": { + "main": [ + [ + { + "node": "Sleep 8 Seconds4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp12": { + "main": [ + [ + { + "node": "Sleep 8 Seconds5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp13": { + "main": [ + [ + { + "node": "Sleep 8 Seconds6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp14": { + "main": [ + [ + { + "node": "Sleep 8 Seconds7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp15": { + "main": [ + [ + { + "node": "Sleep 8 Seconds8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp16": { + "main": [ + [ + { + "node": "Sleep 8 Seconds9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp17": { + "main": [ + [ + { + "node": "Sleep 8 Seconds10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp18": { + "main": [ + [ + { + "node": "Sleep 8 Seconds11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ClickUp19": { + "main": [ + [ + { + "node": "Sleep 8 Seconds12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds": { + "main": [ + [ + { + "node": "ClickUp1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds1": { + "main": [ + [ + { + "node": "ClickUp9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds2": { + "main": [ + [ + { + "node": "ClickUp10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds3": { + "main": [ + [ + { + "node": "ClickUp11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds4": { + "main": [ + [ + { + "node": "ClickUp12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds5": { + "main": [ + [ + { + "node": "ClickUp13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds6": { + "main": [ + [ + { + "node": "ClickUp14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds7": { + "main": [ + [ + { + "node": "ClickUp15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds8": { + "main": [ + [ + { + "node": "ClickUp16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds9": { + "main": [ + [ + { + "node": "ClickUp17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds10": { + "main": [ + [ + { + "node": "ClickUp18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds11": { + "main": [ + [ + { + "node": "ClickUp19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 8 Seconds12": { + "main": [ + [ + { + "node": "ClickUp2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/32.json b/packages/testing/playwright/test-workflows/workflows/32.json new file mode 100644 index 0000000000..092e5636d1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/32.json @@ -0,0 +1,143 @@ +{ + "createdAt": "2021-02-17T12:54:18.856Z", + "updatedAt": "2021-02-24T12:51:15.701Z", + "id": "32", + "name": "Drif:Contact:create update get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "a8373e79-8b14-48ae-9baf-79db4bf1a92a" + }, + { + "parameters": { + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": { + "name": "=Test{{Date.now()}}" + } + }, + "name": "Drift ", + "type": "n8n-nodes-base.drift", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "driftApi": { + "id": "15", + "name": "Drift API credentials" + } + }, + "id": "8cd5c238-7feb-4b60-985a-d99db59390bc" + }, + { + "parameters": { + "operation": "update", + "contactId": "={{$node[\"Drift \"].json[\"id\"]}}", + "updateFields": { + "name": "=node qtest{{Date.now()}}" + } + }, + "name": "Drift 1", + "type": "n8n-nodes-base.drift", + "typeVersion": 1, + "position": [640, 300], + "credentials": { + "driftApi": { + "id": "15", + "name": "Drift API credentials" + } + }, + "id": "480edf8d-c1f6-4196-a659-f7b54c33e3db" + }, + { + "parameters": { + "operation": "get", + "contactId": "={{$node[\"Drift \"].json[\"id\"]}}" + }, + "name": "Drift 2", + "type": "n8n-nodes-base.drift", + "typeVersion": 1, + "position": [790, 300], + "credentials": { + "driftApi": { + "id": "15", + "name": "Drift API credentials" + } + }, + "id": "d495bd88-0ed2-4016-acea-78deee947cc7" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"Drift \"].json[\"id\"]}}" + }, + "name": "Drift 3", + "type": "n8n-nodes-base.drift", + "typeVersion": 1, + "position": [940, 300], + "credentials": { + "driftApi": { + "id": "15", + "name": "Drift API credentials" + } + }, + "id": "2dce7e0c-3abd-45c8-a3d2-61edecd7a2bf" + } + ], + "connections": { + "Drift ": { + "main": [ + [ + { + "node": "Drift 1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Drift 1": { + "main": [ + [ + { + "node": "Drift 2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Drift 2": { + "main": [ + [ + { + "node": "Drift 3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Drift ", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/33.json b/packages/testing/playwright/test-workflows/workflows/33.json new file mode 100644 index 0000000000..72b34b202e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/33.json @@ -0,0 +1,172 @@ +{ + "createdAt": "2021-02-17T13:25:16.665Z", + "updatedAt": "2021-02-17T13:25:16.665Z", + "id": "33", + "name": "Zoom:Meeting:create update getAll get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e177badc-c473-46ec-a4f7-6abe3cf18850" + }, + { + "parameters": { + "topic": "test", + "additionalFields": {} + }, + "name": "Zoom", + "type": "n8n-nodes-base.zoom", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "zoomApi": { + "id": "16", + "name": "Zoom JWT token" + } + }, + "id": "52fd7dd2-0260-4e24-b2e7-2fb0e6e96757" + }, + { + "parameters": { + "operation": "update", + "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", + "updateFields": { + "duration": 30 + } + }, + "name": "Zoom1", + "type": "n8n-nodes-base.zoom", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "zoomApi": { + "id": "16", + "name": "Zoom JWT token" + } + }, + "id": "c2ccd698-377b-478e-ab75-dff35325ac93" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Zoom2", + "type": "n8n-nodes-base.zoom", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "zoomApi": { + "id": "16", + "name": "Zoom JWT token" + } + }, + "id": "5ca84447-9b5e-4679-b061-8b457ed1423a" + }, + { + "parameters": { + "operation": "get", + "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Zoom3", + "type": "n8n-nodes-base.zoom", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "zoomApi": { + "id": "16", + "name": "Zoom JWT token" + } + }, + "id": "bc1c531c-ee12-4f4e-bbde-c2a6a950ab3e" + }, + { + "parameters": { + "operation": "delete", + "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Zoom4", + "type": "n8n-nodes-base.zoom", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "zoomApi": { + "id": "16", + "name": "Zoom JWT token" + } + }, + "id": "05b90102-2196-41d0-ba64-42e8c45d2258" + } + ], + "connections": { + "Zoom": { + "main": [ + [ + { + "node": "Zoom1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoom1": { + "main": [ + [ + { + "node": "Zoom2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoom2": { + "main": [ + [ + { + "node": "Zoom3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoom3": { + "main": [ + [ + { + "node": "Zoom4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Zoom", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/34.json b/packages/testing/playwright/test-workflows/workflows/34.json new file mode 100644 index 0000000000..dd5817f208 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/34.json @@ -0,0 +1,229 @@ +{ + "createdAt": "2021-02-17T14:32:51.109Z", + "updatedAt": "2021-06-02T11:29:13.526Z", + "id": "34", + "name": "Strava:Activity:create get update getAll getComments getKudos getLaps", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "afcd2eb5-ee88-4fd8-ad2a-122f2ee05b6d" + }, + { + "parameters": { + "name": "TestActivity", + "type": "Run", + "startDate": "={{Date.now()}}", + "elapsedTime": 5, + "additionalFields": {} + }, + "name": "Strava", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "3a0f90c9-47d1-4e97-b2ef-d04ffc09c7ab" + }, + { + "parameters": { + "operation": "update", + "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", + "updateFields": { + "type": "Ride" + } + }, + "name": "Strava1", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "b7731003-b34b-4cc9-b7cb-d6e1391268f8" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Strava2", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "notes": "IGNORED_PROPERTIES=device_watts", + "id": "7619daca-da98-4c79-9575-237c5ac602d2" + }, + { + "parameters": { + "operation": "get", + "activityId": "={{$node[\"Strava\"].json[\"id\"]}}" + }, + "name": "Strava3", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "a2d40830-1aa4-4ffc-bc4c-de84003490ed" + }, + { + "parameters": { + "operation": "getComments", + "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Strava4", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [600, 460], + "alwaysOutputData": true, + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "1d83183d-5238-47eb-b89d-4283af3953a8" + }, + { + "parameters": { + "operation": "getKudos", + "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Strava5", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [750, 460], + "alwaysOutputData": true, + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "cdbc41db-3938-46a2-b167-c714aaa8dd5b" + }, + { + "parameters": { + "operation": "getLaps", + "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Strava6", + "type": "n8n-nodes-base.strava", + "typeVersion": 1, + "position": [900, 460], + "alwaysOutputData": true, + "credentials": { + "stravaOAuth2Api": { + "id": "17", + "name": "Strava credentials" + } + }, + "id": "86be5364-f022-43cb-b567-2b983f422ce7" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Strava", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strava": { + "main": [ + [ + { + "node": "Strava4", + "type": "main", + "index": 0 + }, + { + "node": "Strava3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strava1": { + "main": [ + [ + { + "node": "Strava2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strava5": { + "main": [ + [ + { + "node": "Strava6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strava4": { + "main": [ + [ + { + "node": "Strava5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Strava3": { + "main": [ + [ + { + "node": "Strava1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/35.json b/packages/testing/playwright/test-workflows/workflows/35.json new file mode 100644 index 0000000000..0f7335685e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/35.json @@ -0,0 +1,383 @@ +{ + "createdAt": "2021-02-17T16:01:29.116Z", + "updatedAt": "2021-02-17T18:38:58.265Z", + "id": "35", + "name": "Slack:User:getPresence info:UserProfile:get update:Message:post getPermalink update postEphermera l delete:Reaction:add get remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [220, 550], + "id": "994d0931-d8cf-46ec-80dd-afa0d22717a1" + }, + { + "parameters": { + "resource": "userProfile", + "additionalFields": {} + }, + "name": "Slack", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [460, 450], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "f4b748aa-95ac-491d-9aae-438e9d4af174" + }, + { + "parameters": { + "resource": "userProfile", + "operation": "update", + "additionalFields": { + "status_text": "Testing..." + } + }, + "name": "Slack1", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "79590777-6621-433a-88b2-555078feb8e1" + }, + { + "parameters": { + "channel": "random", + "text": "=Message at{{(new Date().toString())}}", + "attachments": [], + "otherOptions": {} + }, + "name": "Slack13", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [420, 630], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "1f43049e-8dd6-425f-bb8a-e06edce9418b" + }, + { + "parameters": { + "operation": "getPermalink", + "channelId": "C01MZ82T9TR", + "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" + }, + "name": "Slack14", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1060, 630], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "837e9401-e7f1-49f2-91ab-3f9882b13d89" + }, + { + "parameters": { + "operation": "update", + "channelId": "C01MZ82T9TR", + "text": "Message Updated ", + "ts": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}", + "updateFields": {}, + "attachments": [] + }, + "name": "Slack15", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1190, 630], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "afd5e35a-da4c-4167-a208-ea4a4f28cac0" + }, + { + "parameters": { + "operation": "postEphemeral", + "channel": "random", + "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}", + "text": "Message for Me Only", + "attachments": [], + "otherOptions": {} + }, + "name": "Slack16", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1320, 630], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "1105d27e-18a8-4b77-b081-8127252edfbc" + }, + { + "parameters": { + "operation": "delete", + "channelId": "C01MZ82T9TR", + "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" + }, + "name": "Slack17", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1470, 630], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "fc1412c5-331e-4bcb-a830-3f173d51c9ed" + }, + { + "parameters": { + "resource": "reaction", + "channelId": "C01MZ82T9TR", + "name": "+1", + "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" + }, + "name": "Slack18", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [580, 700], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "d5f82714-f62e-4124-8a1d-081ef18b6ae2" + }, + { + "parameters": { + "resource": "reaction", + "operation": "get", + "channelId": "C01MZ82T9TR", + "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" + }, + "name": "Slack19", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [720, 700], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "ad62b51f-a60e-46d8-b174-941f331886fb" + }, + { + "parameters": { + "resource": "reaction", + "operation": "remove", + "channelId": "C01MZ82T9TR", + "name": "+1", + "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" + }, + "name": "Slack20", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [870, 700], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "d865f9ac-2f76-40fe-87e1-9c855cb518ec" + }, + { + "parameters": { + "resource": "user", + "operation": "getPresence", + "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}" + }, + "name": "Slack24", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [580, 850], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "6532165d-7578-4b90-b66d-e204955669dd" + }, + { + "parameters": { + "resource": "user", + "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}" + }, + "name": "Slack25", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [730, 850], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "f013017c-399b-4692-9dfe-be72138349b4" + } + ], + "connections": { + "Slack": { + "main": [ + [ + { + "node": "Slack1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Slack", + "type": "main", + "index": 0 + }, + { + "node": "Slack13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack13": { + "main": [ + [ + { + "node": "Slack18", + "type": "main", + "index": 0 + }, + { + "node": "Slack24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack15": { + "main": [ + [ + { + "node": "Slack16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack16": { + "main": [ + [ + { + "node": "Slack17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack14": { + "main": [ + [ + { + "node": "Slack15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack18": { + "main": [ + [ + { + "node": "Slack19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack19": { + "main": [ + [ + { + "node": "Slack20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack20": { + "main": [ + [ + { + "node": "Slack14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack24": { + "main": [ + [ + { + "node": "Slack25", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/36.json b/packages/testing/playwright/test-workflows/workflows/36.json new file mode 100644 index 0000000000..3d20c0d32b --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/36.json @@ -0,0 +1,680 @@ +{ + "createdAt": "2021-02-17T17:57:34.255Z", + "updatedAt": "2021-07-15T14:42:32.636Z", + "id": "36", + "name": "Slack:File:upload getAll get:Star:add getAll delete:Channgel:create update setPurpose setTopic ge t invite leave join getAll history replies member archive unarchive", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "a26bf258-8876-4142-9a6c-37ac7426e7c9" + }, + { + "parameters": { + "resource": "channel", + "operation": "setPurpose", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "purpose": "Testing" + }, + "name": "Slack3", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [730, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "bd33c223-d19f-43ed-a4f8-6eb524340051" + }, + { + "parameters": { + "resource": "channel", + "operation": "setTopic", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "topic": "QA" + }, + "name": "Slack4", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [870, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "e956c837-0f3e-4075-a246-ce5a5f16ef17" + }, + { + "parameters": { + "resource": "channel", + "operation": "get", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Slack5", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1020, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "66010c67-ac41-4390-a85a-6e3b9de26a98" + }, + { + "parameters": { + "resource": "channel", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Slack6", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1650, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "ead0ce56-689b-43b0-b527-ecd4f869963c" + }, + { + "parameters": { + "resource": "channel", + "operation": "history", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "limit": 1, + "filters": {} + }, + "name": "Slack7", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1820, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "d1dc4c44-619b-42e5-af3f-106fff4a99b5" + }, + { + "parameters": { + "resource": "channel", + "operation": "rename", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "name": "=renamed{{$node[\"Slack2\"].json[\"name\"]}}" + }, + "name": "Slack9", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [580, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "c63a975b-66ec-4f6a-85c4-712dd8f322d7" + }, + { + "parameters": { + "resource": "file", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Slack11", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [590, 390], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "4d54c4d7-285e-4e61-853f-b25cc38160dd" + }, + { + "parameters": { + "resource": "file", + "operation": "get", + "fileId": "={{$node[\"Slack10\"].json[\"id\"]}}" + }, + "name": "Slack12", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [740, 390], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "1cc8f403-d7a4-42a4-8e78-a2443c2aed32" + }, + { + "parameters": { + "resource": "channel", + "operation": "member", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Slack8", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [2120, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "88583aee-b74b-4316-a8c2-2a9ee278275a" + }, + { + "parameters": { + "resource": "channel", + "channelId": "=testchannel{{Math.random().toString(36).replace(/[^a-z]+/g, '')}}", + "additionalFields": { + "isPrivate": false + } + }, + "name": "Slack2", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [440, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "bfc23883-4190-46c7-8b9e-8afb0b4c3435" + }, + { + "parameters": { + "resource": "file", + "fileContent": "=Test file upload {{(new Date().toString())}}", + "options": { + "channelIds": ["C01N780JVPG"] + } + }, + "name": "Slack10", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [440, 390], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "3526fb45-6eca-495d-8535-d77cbf2b78fd" + }, + { + "parameters": { + "resource": "star", + "operation": "delete", + "options": { + "channelId": "C01MZ82T9TR" + } + }, + "name": "Slack23", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [840, 560], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "e4cfa506-e1b9-439f-8070-8c0cc7ba191d" + }, + { + "parameters": { + "resource": "star", + "operation": "getAll", + "limit": 1 + }, + "name": "Slack22", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [690, 560], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "c79469c2-5987-442d-a08a-7b942f8c3fde" + }, + { + "parameters": { + "resource": "star", + "options": { + "channelId": "=C01MZ82T9TR" + } + }, + "name": "Slack21", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [550, 560], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "eb6f3c3e-d6cb-42f4-aa6d-462bde196f28" + }, + { + "parameters": { + "resource": "channel", + "operation": "archive", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" + }, + "name": "Slack", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [2250, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "cb863325-bb94-4669-a174-913a2d504fd9" + }, + { + "parameters": { + "resource": "channel", + "operation": "invite", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "userIds": ["U01N08LEY9M"] + }, + "name": "Slack13", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1160, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "d4c01071-c77a-4605-8382-e0596de883ee" + }, + { + "parameters": { + "resource": "channel", + "operation": "join", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" + }, + "name": "Slack16", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1500, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "b757d3d8-0d72-4efe-bcc0-ba360e423775" + }, + { + "parameters": { + "resource": "channel", + "operation": "replies", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", + "ts": "={{$node[\"Slack7\"].json[\"ts\"]}}", + "filters": {} + }, + "name": "Slack18", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1960, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "c8c86ba2-599e-4546-a006-1509456726b7" + }, + { + "parameters": { + "resource": "channel", + "operation": "leave", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" + }, + "name": "Slack17", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [1330, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "8d90aae7-bcc9-427d-86e4-4c18df0e6c35" + }, + { + "parameters": { + "resource": "channel", + "operation": "archive", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" + }, + "name": "Slack1", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [2540, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "0a23fea3-c8dd-41a4-afef-1701d959d8f1" + }, + { + "parameters": { + "resource": "channel", + "operation": "unarchive", + "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" + }, + "name": "Slack14", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [2400, 230], + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "id": "2f208a4c-9c68-43d6-8dfd-eb1297a79b0d" + }, + { + "parameters": { + "resource": "star", + "operation": "delete", + "options": { + "channelId": "C01MZ82T9TR" + } + }, + "name": "Slack24", + "type": "n8n-nodes-base.slack", + "typeVersion": 1, + "position": [400, 560], + "alwaysOutputData": true, + "credentials": { + "slackApi": { + "id": "18", + "name": "Slack Token" + } + }, + "continueOnFail": true, + "notes": "IGNORED_PROPERTIES=ok,error", + "id": "3d3fd370-7c82-4623-9258-e4d7e5a1e381" + } + ], + "connections": { + "Slack3": { + "main": [ + [ + { + "node": "Slack4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack4": { + "main": [ + [ + { + "node": "Slack5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack5": { + "main": [ + [ + { + "node": "Slack13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack6": { + "main": [ + [ + { + "node": "Slack7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack7": { + "main": [ + [ + { + "node": "Slack18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack9": { + "main": [ + [ + { + "node": "Slack3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack11": { + "main": [ + [ + { + "node": "Slack12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack2": { + "main": [ + [ + { + "node": "Slack9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack10": { + "main": [ + [ + { + "node": "Slack11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack22": { + "main": [ + [ + { + "node": "Slack23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack21": { + "main": [ + [ + { + "node": "Slack22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Slack10", + "type": "main", + "index": 0 + }, + { + "node": "Slack2", + "type": "main", + "index": 0 + }, + { + "node": "Slack24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack8": { + "main": [ + [ + { + "node": "Slack", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack13": { + "main": [ + [ + { + "node": "Slack17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack16": { + "main": [ + [ + { + "node": "Slack6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack18": { + "main": [ + [ + { + "node": "Slack8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack17": { + "main": [ + [ + { + "node": "Slack16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack": { + "main": [ + [ + { + "node": "Slack14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack14": { + "main": [ + [ + { + "node": "Slack1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Slack24": { + "main": [ + [ + { + "node": "Slack21", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/37.json b/packages/testing/playwright/test-workflows/workflows/37.json new file mode 100644 index 0000000000..950d978abe --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/37.json @@ -0,0 +1,424 @@ +{ + "createdAt": "2024-02-14T09:47:52.198Z", + "updatedAt": "2024-02-14T09:47:52.198Z", + "id": "37", + "name": "GitLab:Repository:get getIssues:Issue:create createComment edit get lock:Release:create get getAll update delete:User:getRepositories", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "57d13714-f0f8-46af-a51c-4d6691fe9a52" + }, + { + "parameters": { + "resource": "repository", + "operation": "get", + "owner": "nodeqa", + "repository": "nodemationQA" + }, + "name": "Gitlab", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [560, 180], + "id": "63131b59-53e5-431c-9c4e-daf68d14629c", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + }, + "notes": "IGNORED_PROPERTIES=topics" + }, + { + "parameters": { + "resource": "repository", + "owner": "nodeqa", + "repository": "nodemationQA", + "getRepositoryIssuesFilters": {} + }, + "name": "Gitlab1", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [820, 180], + "id": "6d4cf9da-8e20-45ac-a97e-b78365c53ae9", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + }, + "notes": "CAP_RESULTS_LENGTH=1" + }, + { + "parameters": { + "owner": "nodeqa", + "repository": "nodemationQA", + "title": "=Issue - {{(new Date()).toDateString()}}", + "body": "=QA Test on {{(new Date()).toDateString()}}", + "labels": [], + "assignee_ids": [] + }, + "name": "Gitlab2", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [550, 330], + "id": "6fd68a0d-f82b-4470-8ba0-624caac71815", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "operation": "createComment", + "owner": "nodeqa", + "repository": "nodemationQA", + "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}", + "body": "=Comment on issue - {{(new Date()).toString()}}" + }, + "name": "Gitlab3", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [710, 330], + "id": "f996bfa2-d08a-4943-bd32-6c3042345c24", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "operation": "edit", + "owner": "nodeqa", + "repository": "nodemationQA", + "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}", + "editFields": { + "description": "=Edited {{$node[\"Gitlab2\"].json[\"description\"]}}" + } + }, + "name": "Gitlab4", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [870, 330], + "id": "1dfade56-7b02-4c36-952f-729006aa4dbd", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "operation": "get", + "owner": "nodeqa", + "repository": "nodemationQA", + "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}" + }, + "name": "Gitlab5", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [1020, 330], + "id": "1ff45615-93bb-41b3-83d2-6a6135a77ee9", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "operation": "lock", + "owner": "nodeqa", + "repository": "nodemationQA", + "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}" + }, + "name": "Gitlab6", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [1180, 330], + "id": "f6367788-80ca-45a4-a018-c66b8815f911", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "resource": "release", + "owner": "nodeqa", + "repository": "nodemationQA", + "releaseTag": "=Release-tag-test{{Date.now()}}", + "additionalFields": { + "name": "=Release{{Date.now()}}", + "ref": "master" + } + }, + "name": "Gitlab7", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [540, 490], + "id": "5744f348-d468-45cd-90d8-b37502f20f49", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "resource": "user", + "owner": "n8nqa" + }, + "name": "Gitlab8", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [540, 640], + "id": "919f48e5-1999-40af-89c2-8adce98e843b", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + }, + "notes": "IGNORED_PROPERTIES=topics" + }, + { + "parameters": { + "resource": "release", + "operation": "get", + "owner": "nodeqa", + "repository": "nodemationQA", + "projectId": "24497029", + "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}" + }, + "name": "Gitlab9", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [710, 490], + "id": "782007ea-d789-442c-b44d-fc34e737e467", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "resource": "release", + "operation": "getAll", + "owner": "nodeqa", + "repository": "nodemationQA", + "projectId": "24497029", + "limit": 1, + "additionalFields": {} + }, + "name": "Gitlab10", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [870, 490], + "id": "b441f646-eaef-41b8-934a-d349ae7563b5", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "resource": "release", + "operation": "update", + "owner": "nodeqa", + "repository": "nodemationQA", + "projectId": "24497029", + "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}", + "additionalFields": { + "name": "=Updated{{$node[\"Gitlab7\"].json[\"name\"]}}" + } + }, + "name": "Gitlab11", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [1020, 490], + "id": "f2598d6c-084c-4d97-9e95-b36e1f56faa2", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + }, + { + "parameters": { + "resource": "release", + "operation": "delete", + "owner": "nodeqa", + "repository": "nodemationQA", + "projectId": "24497029", + "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}" + }, + "name": "Gitlab12", + "type": "n8n-nodes-base.gitlab", + "typeVersion": 1, + "position": [1180, 490], + "id": "36983c2c-6114-4692-b925-279a5ec8055b", + "credentials": { + "gitlabApi": { + "id": "19", + "name": "Gitlap token" + } + } + } + ], + "connections": { + "Gitlab": { + "main": [ + [ + { + "node": "Gitlab1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Gitlab", + "type": "main", + "index": 0 + }, + { + "node": "Gitlab2", + "type": "main", + "index": 0 + }, + { + "node": "Gitlab7", + "type": "main", + "index": 0 + }, + { + "node": "Gitlab8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab2": { + "main": [ + [ + { + "node": "Gitlab3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab3": { + "main": [ + [ + { + "node": "Gitlab4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab4": { + "main": [ + [ + { + "node": "Gitlab5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab5": { + "main": [ + [ + { + "node": "Gitlab6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab7": { + "main": [ + [ + { + "node": "Gitlab9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab9": { + "main": [ + [ + { + "node": "Gitlab10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab10": { + "main": [ + [ + { + "node": "Gitlab11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gitlab11": { + "main": [ + [ + { + "node": "Gitlab12", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": { + "templateCredsSetupCompleted": true, + "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" + }, + "pinData": {}, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/38.json b/packages/testing/playwright/test-workflows/workflows/38.json new file mode 100644 index 0000000000..ed77ad310e --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/38.json @@ -0,0 +1,81 @@ +{ + "createdAt": "2021-02-18T09:13:09.580Z", + "updatedAt": "2021-02-18T09:13:09.580Z", + "id": "38", + "name": "Medium:Post:create:Publication:getall", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "fc3fb55c-91d4-4865-8bed-bb672fcf6ed8" + }, + { + "parameters": { + "title": "=Medium node TestQA Draft {{ (new Date()).toGMTString()}}", + "contentFormat": "markdown", + "content": "=# QA test Draft Content\n\n#### {{ (new Date()).toGMTString()}}", + "additionalFields": { + "publishStatus": "draft" + } + }, + "name": "Medium", + "type": "n8n-nodes-base.medium", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "mediumApi": { + "id": "20", + "name": "Medium token" + } + }, + "id": "0c6e0d0c-76e4-4ae0-b97f-ef501bae351c" + }, + { + "parameters": { + "resource": "publication", + "operation": "getAll", + "limit": 1 + }, + "name": "Medium1", + "type": "n8n-nodes-base.medium", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "mediumApi": { + "id": "20", + "name": "Medium token" + } + }, + "id": "a4561f3e-650c-4960-8688-97a4272189a1" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Medium", + "type": "main", + "index": 0 + }, + { + "node": "Medium1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/39.json b/packages/testing/playwright/test-workflows/workflows/39.json new file mode 100644 index 0000000000..e7fb65883d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/39.json @@ -0,0 +1,857 @@ +{ + "createdAt": "2021-02-18T10:30:52.070Z", + "updatedAt": "2021-06-08T08:12:16.812Z", + "id": "39", + "name": "Github:Repository:get getProfile getLicense listPopularPaths listReferrers:File:create edit get delete:Issue:create createComment edit get lock:Release:create get getAll update delete:User:getRepositories invite:Review:create getAll get update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [180, 750], + "id": "f0955b0a-3d0c-48ef-adb2-541915a9acef" + }, + { + "parameters": { + "resource": "repository", + "operation": "getProfile", + "owner": "nodemationqa", + "repository": "nodeQA" + }, + "name": "GitHub", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [620, 300], + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "3d876463-6962-4b4d-b3cb-9015ec6848c0" + }, + { + "parameters": { + "resource": "repository", + "operation": "getLicense", + "owner": "nodemationqa", + "repository": "nodeQA" + }, + "name": "GitHub1", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [770, 300], + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "36bbea35-9d6e-4b28-a5a9-53cab2b5d970" + }, + { + "parameters": { + "resource": "repository", + "operation": "listPopularPaths", + "owner": "nodemationqa", + "repository": "nodeQA" + }, + "name": "GitHub2", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [920, 300], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "f51387a0-836e-4962-90d9-c89190007c49" + }, + { + "parameters": { + "resource": "repository", + "operation": "listReferrers", + "owner": "nodemationqa", + "repository": "nodeQA" + }, + "name": "GitHub3", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [1070, 300], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "db3f98fa-c19d-41fc-922f-0e356b150e0d" + }, + { + "parameters": { + "resource": "repository", + "operation": "get", + "owner": "nodemationqa", + "repository": "nodeQA" + }, + "name": "GitHub4", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [470, 300], + "executeOnce": false, + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "4827b07a-4982-4c4a-b47a-647b05846306" + }, + { + "parameters": { + "resource": "repository", + "owner": "nodemationqa", + "repository": "nodeQA", + "limit": 1, + "getRepositoryIssuesFilters": {} + }, + "name": "GitHub5", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [1210, 300], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "5948497b-3e84-40ba-a87d-dd4da66a208c" + }, + { + "parameters": { + "resource": "file", + "owner": "nodemationqa", + "repository": "nodeQA", + "filePath": "=testFile{{Date.now()}}", + "fileContent": "Test file content, create file operation", + "commitMessage": "=Commited {{(new Date()).toGMTString()}}", + "additionalParameters": { + "branch": { + "branch": "main" + } + } + }, + "name": "GitHub6", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [470, 460], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "752ecae8-1820-4e92-a7e0-8382fb63f94b" + }, + { + "parameters": { + "resource": "file", + "operation": "edit", + "owner": "nodemationqa", + "repository": "nodeQA", + "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", + "fileContent": "Updated Test file content, create file operation", + "commitMessage": "=Updated commit message {{(new Date()).toGMTString()}}", + "additionalParameters": { + "branch": { + "branch": "main" + } + } + }, + "name": "GitHub7", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [630, 460], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "c1326989-6614-42cb-859e-9186e8499ccc" + }, + { + "parameters": { + "resource": "file", + "operation": "get", + "owner": "nodemationqa", + "repository": "nodeQA", + "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", + "asBinaryProperty": false + }, + "name": "GitHub8", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [770, 460], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "2939814a-15b1-4a7b-b829-4b338bdd28a4" + }, + { + "parameters": { + "resource": "file", + "operation": "delete", + "owner": "nodemationqa", + "repository": "nodeQA", + "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", + "commitMessage": "=delete commit message {{(new Date()).toGMTString()}}", + "additionalParameters": { + "branch": { + "branch": "main" + } + } + }, + "name": "GitHub9", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [910, 460], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "68c193fe-ed71-449d-8f46-08e21cc2f08e" + }, + { + "parameters": { + "owner": "nodemationqa", + "repository": "nodeQA", + "title": "=Test Issue created at {{(new Date()).toGMTString()}}", + "body": "=Test issue body {{(new Date()).toGMTString()}}", + "labels": [], + "assignees": [] + }, + "name": "GitHub10", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [470, 620], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "22800dbb-3c5c-4c30-9e94-8f4580c26ba7" + }, + { + "parameters": { + "operation": "createComment", + "owner": "nodemationqa", + "repository": "nodeQA", + "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", + "body": "=Comment on issue at {{(new Date()).toGMTString()}}" + }, + "name": "GitHub11", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [620, 620], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "edaee8cb-6469-4395-8c1d-9f577f5ea262" + }, + { + "parameters": { + "operation": "edit", + "owner": "nodemationqa", + "repository": "nodeQA", + "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", + "editFields": { + "title": "=Updated {{$node[\"GitHub10\"].json[\"title\"]}}{{Date.now()}}", + "body": "=updated Test issue body {{(new Date()).toGMTString()}}" + } + }, + "name": "GitHub12", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [770, 620], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "1b158bcd-d934-4347-8988-ba1e6240a4aa" + }, + { + "parameters": { + "operation": "get", + "owner": "nodemationqa", + "repository": "nodeQA", + "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}" + }, + "name": "GitHub13", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [920, 620], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "7c1c2a47-f0ef-4ba5-8329-0f661e93afe4" + }, + { + "parameters": { + "operation": "lock", + "owner": "nodemationqa", + "repository": "nodeQA", + "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", + "lockReason": "spam" + }, + "name": "GitHub14", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [1060, 620], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "13bb869d-2c1e-433d-a4df-e4b7ed1fe15a" + }, + { + "parameters": { + "resource": "release", + "owner": "nodemationqa", + "repository": "nodeQA", + "releaseTag": "=Release{{Date.now()}}", + "additionalFields": { + "name": "=Release {{(new Date()).toGMTString()}}", + "draft": true + } + }, + "name": "GitHub15", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [470, 770], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "83a9cc6c-815c-476d-a8d5-83a9475daca8" + }, + { + "parameters": { + "resource": "user", + "owner": "nodemationqa" + }, + "name": "GitHub16", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [470, 930], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "ba63e2c6-4ac4-4180-9325-2f61e77f8a7d" + }, + { + "parameters": { + "resource": "user", + "operation": "invite", + "organization": "OrgnodeQA", + "email": "nodeqa@n8n.io" + }, + "name": "GitHub17", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [660, 930], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "ce44c4b5-9ed1-463a-bed2-85102bdb66e2" + }, + { + "parameters": { + "resource": "review", + "owner": "nodemationqa", + "repository": "nodeQA", + "pullRequestNumber": 3, + "event": "comment", + "body": "=Review Test {{(new Date()).toGMTString()}}", + "additionalFields": {} + }, + "name": "GitHub18", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [460, 1080], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "dd259704-d7e5-4a3b-8368-dc65c7241b61" + }, + { + "parameters": { + "resource": "review", + "operation": "getAll", + "owner": "nodemationqa", + "repository": "nodeQA", + "pullRequestNumber": 3, + "limit": 1 + }, + "name": "GitHub19", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [610, 1080], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "1c090f0d-1bad-48d7-86ed-17a63359ace2" + }, + { + "parameters": { + "resource": "review", + "operation": "get", + "owner": "nodemationqa", + "repository": "nodeQA", + "pullRequestNumber": 3, + "reviewId": "={{$node[\"GitHub18\"].json[\"id\"]}}" + }, + "name": "GitHub20", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [750, 1080], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "d917c74c-a3c8-4a12-b4cb-72987ad19f65" + }, + { + "parameters": { + "resource": "review", + "operation": "update", + "owner": "nodemationqa", + "repository": "nodeQA", + "pullRequestNumber": 3, + "reviewId": "={{$node[\"GitHub18\"].json[\"id\"]}}", + "body": "=Updated {{$node[\"GitHub18\"].json[\"body\"]}}" + }, + "name": "GitHub21", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [900, 1080], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "5796a57b-9580-47af-83c2-6770f542eef2" + }, + { + "parameters": { + "resource": "release", + "operation": "getAll", + "owner": "nodemationqa", + "repository": "nodeQA", + "limit": 1 + }, + "name": "GitHub22", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [620, 770], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "c4ce2f6d-7e2c-4931-9a62-f1702168fdca" + }, + { + "parameters": { + "resource": "release", + "operation": "get", + "owner": "nodemationqa", + "repository": "nodeQA", + "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}" + }, + "name": "GitHub23", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [770, 770], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "d286eac6-e189-41d9-8956-3e528219dfc1" + }, + { + "parameters": { + "resource": "release", + "operation": "update", + "owner": "nodemationqa", + "repository": "nodeQA", + "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}", + "additionalFields": { + "draft": true, + "name": "=Updated{{$node[\"GitHub15\"].json[\"name\"]}}", + "tag_name": "=Updated{{$node[\"GitHub15\"].json[\"tag_name\"]}}" + } + }, + "name": "GitHub24", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [920, 770], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "1bc53e99-0f2f-425d-977a-e27a75cd9dbf" + }, + { + "parameters": { + "resource": "release", + "operation": "delete", + "owner": "nodemationqa", + "repository": "nodeQA", + "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}" + }, + "name": "GitHub25", + "type": "n8n-nodes-base.github", + "typeVersion": 1, + "position": [1060, 770], + "alwaysOutputData": true, + "credentials": { + "githubApi": { + "id": "21", + "name": "Github creds" + } + }, + "id": "ceab4826-8e38-4a8b-b60c-7dfcf65b7aa9" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "GitHub4", + "type": "main", + "index": 0 + }, + { + "node": "GitHub6", + "type": "main", + "index": 0 + }, + { + "node": "GitHub10", + "type": "main", + "index": 0 + }, + { + "node": "GitHub15", + "type": "main", + "index": 0 + }, + { + "node": "GitHub16", + "type": "main", + "index": 0 + }, + { + "node": "GitHub18", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub": { + "main": [ + [ + { + "node": "GitHub1", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub1": { + "main": [ + [ + { + "node": "GitHub2", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub2": { + "main": [ + [ + { + "node": "GitHub3", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub3": { + "main": [ + [ + { + "node": "GitHub5", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub4": { + "main": [ + [ + { + "node": "GitHub", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub8": { + "main": [ + [ + { + "node": "GitHub9", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub6": { + "main": [ + [ + { + "node": "GitHub7", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub7": { + "main": [ + [ + { + "node": "GitHub8", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub10": { + "main": [ + [ + { + "node": "GitHub11", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub11": { + "main": [ + [ + { + "node": "GitHub12", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub12": { + "main": [ + [ + { + "node": "GitHub13", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub13": { + "main": [ + [ + { + "node": "GitHub14", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub16": { + "main": [ + [ + { + "node": "GitHub17", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub18": { + "main": [ + [ + { + "node": "GitHub19", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub19": { + "main": [ + [ + { + "node": "GitHub20", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub20": { + "main": [ + [ + { + "node": "GitHub21", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub15": { + "main": [ + [ + { + "node": "GitHub22", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub22": { + "main": [ + [ + { + "node": "GitHub23", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub23": { + "main": [ + [ + { + "node": "GitHub24", + "type": "main", + "index": 0 + } + ] + ] + }, + "GitHub24": { + "main": [ + [ + { + "node": "GitHub25", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/4.json b/packages/testing/playwright/test-workflows/workflows/4.json new file mode 100644 index 0000000000..c4a41049f7 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/4.json @@ -0,0 +1,141 @@ +{ + "createdAt": "2021-01-21T13:48:02.703Z", + "updatedAt": "2021-03-15T13:59:19.891Z", + "id": "4", + "name": "FTP:ftp:list download upload", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "5bc91980-86a2-469c-8ad0-7de1d8c9b7e1" + }, + { + "parameters": { + "operation": "list", + "path": "/1KB.zip" + }, + "name": "FTP1", + "type": "n8n-nodes-base.ftp", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "ftp": { + "id": "106", + "name": "FTP creds" + } + }, + "id": "7aee41cf-627d-424a-99a3-952837497848" + }, + { + "parameters": { + "path": "1KB.zip" + }, + "name": "FTP", + "type": "n8n-nodes-base.ftp", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "ftp": { + "id": "106", + "name": "FTP creds" + } + }, + "id": "ab5f20c7-6464-4779-8e13-b47b11ba9459" + }, + { + "parameters": { + "operation": "upload", + "path": "=/upload/{{$node[\"Set\"].json[\"filename\"]}}" + }, + "name": "FTP2", + "type": "n8n-nodes-base.ftp", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "ftp": { + "id": "106", + "name": "FTP creds" + } + }, + "id": "066b0e3d-918f-4a28-94b6-9432e6e572a1" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "filename", + "value": "=test{{Date.now()}}.zip" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [750, 300], + "id": "08e2e0f0-f730-48cf-a05e-40820a55aaa3" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "FTP1", + "type": "main", + "index": 0 + } + ] + ] + }, + "FTP1": { + "main": [ + [ + { + "node": "FTP", + "type": "main", + "index": 0 + } + ] + ] + }, + "FTP": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "FTP2": { + "main": [[]] + }, + "Set": { + "main": [ + [ + { + "node": "FTP2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/40.json b/packages/testing/playwright/test-workflows/workflows/40.json new file mode 100644 index 0000000000..e11dc8a1fd --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/40.json @@ -0,0 +1,531 @@ +{ + "createdAt": "2021-02-18T14:57:48.780Z", + "updatedAt": "2021-03-16T10:54:02.671Z", + "id": "40", + "name": "Gmail:Draft:create getAll get delete:Label:create getAll get delete:Message:send getAll get reply delete:MessageLabel:add remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [340, 400], + "id": "05c88b78-968b-4f4c-a1e9-8898251d3f7d" + }, + { + "parameters": { + "subject": "=Draft created at {{(new Date()).toGMTString()}}", + "message": "=Draft Test Body", + "additionalFields": {} + }, + "name": "Gmail", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [600, 230], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "707afa42-fc6e-4117-84bc-29282319d5bb" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Gmail1", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [760, 230], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "c73d9c21-ea4d-4976-ad4b-2ae4b0fada15" + }, + { + "parameters": { + "operation": "get", + "messageId": "={{$node[\"Gmail\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Gmail2", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [920, 230], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "67666251-4a70-441a-a383-5582d297edd5" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Gmail\"].json[\"id\"]}}" + }, + "name": "Gmail3", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1070, 230], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "a0b1960d-1a73-43a4-9978-7d3634051884" + }, + { + "parameters": { + "resource": "label", + "name": "=TestLabel{{Date.now()}}" + }, + "name": "Gmail4", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [600, 380], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "f2ddc4ef-a79f-4764-ad1e-8fd88e8cc3d9" + }, + { + "parameters": { + "resource": "label", + "operation": "getAll", + "limit": 1 + }, + "name": "Gmail5", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [760, 380], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "0f6821e9-a68e-46ce-905c-78b14eaa6435" + }, + { + "parameters": { + "resource": "label", + "operation": "get", + "labelId": "={{$node[\"Gmail4\"].json[\"id\"]}}" + }, + "name": "Gmail7", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [920, 380], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "c78804f2-5ea2-48e7-a98d-90ecb236d5b8" + }, + { + "parameters": { + "resource": "message", + "subject": "=Subject {{(new Date()).toGMTString()}}", + "message": "=Email Body {{(new Date()).toGMTString()}}", + "toList": ["node8qa@gmail.com"], + "additionalFields": {} + }, + "name": "Gmail8", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [610, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "3f832f5f-94e0-4f86-a041-cbf30655c43b" + }, + { + "parameters": { + "resource": "message", + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "Gmail9", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1040, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "fb256709-1d09-478c-8a18-331830cd6df1" + }, + { + "parameters": { + "resource": "message", + "operation": "get", + "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Gmail10", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1190, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "5f15fa23-4149-410f-baa0-cca8123707b5" + }, + { + "parameters": { + "resource": "message", + "operation": "delete", + "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}" + }, + "name": "Gmail11", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1620, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "33489121-9268-4bbf-ba17-e2673970d71c" + }, + { + "parameters": { + "resource": "message", + "operation": "reply", + "threadId": "={{$node[\"Gmail8\"].json[\"threadId\"]}}", + "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", + "subject": "=Reply {{(new Date()).toGMTString()}}", + "message": "=Reply body {{(new Date()).toGMTString()}}", + "toList": ["node8qa@gmail.com"], + "additionalFields": {} + }, + "name": "Gmail12", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1330, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "1b8da955-757e-4973-a350-58abac6c4822" + }, + { + "parameters": { + "resource": "messageLabel", + "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", + "labelIds": ["SPAM"] + }, + "name": "Gmail13", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [740, 650], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "87698be8-16c6-496a-82fe-2ed1fcb3422a" + }, + { + "parameters": { + "resource": "message", + "operation": "delete", + "messageId": "={{$node[\"Gmail12\"].json[\"id\"]}}" + }, + "name": "Gmail14", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1890, 530], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "7f58e657-9bf8-4154-9353-39ac27d642cc" + }, + { + "parameters": { + "resource": "messageLabel", + "operation": "remove", + "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", + "labelIds": ["SPAM"] + }, + "name": "Gmail15", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [880, 650], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "0ffaee84-f0cf-42fc-a47d-0c9a25ae6b90" + }, + { + "parameters": { + "resource": "label", + "operation": "delete", + "labelId": "={{$node[\"Gmail4\"].json[\"id\"]}}" + }, + "name": "Gmail16", + "type": "n8n-nodes-base.gmail", + "typeVersion": 1, + "position": [1070, 380], + "credentials": { + "gmailOAuth2": { + "id": "22", + "name": "Gmail 0auth" + } + }, + "id": "998e0199-62ef-462b-a353-b7721c95ad46" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 Second", + "type": "n8n-nodes-base.function", + "position": [1470, 530], + "typeVersion": 1, + "id": "fea0314c-836f-43ea-8d3b-59fff652ad57" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 Second1", + "type": "n8n-nodes-base.function", + "position": [1760, 530], + "typeVersion": 1, + "id": "677eb37a-3a00-4f00-aa8a-cfc7b373cc1c" + } + ], + "connections": { + "Gmail": { + "main": [ + [ + { + "node": "Gmail1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail1": { + "main": [ + [ + { + "node": "Gmail2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail2": { + "main": [ + [ + { + "node": "Gmail3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Gmail8", + "type": "main", + "index": 0 + }, + { + "node": "Gmail4", + "type": "main", + "index": 0 + }, + { + "node": "Gmail", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail4": { + "main": [ + [ + { + "node": "Gmail5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail5": { + "main": [ + [ + { + "node": "Gmail7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail9": { + "main": [ + [ + { + "node": "Gmail10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail8": { + "main": [ + [ + { + "node": "Gmail13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail10": { + "main": [ + [ + { + "node": "Gmail12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail12": { + "main": [ + [ + { + "node": "Sleep 0.5 Second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail13": { + "main": [ + [ + { + "node": "Gmail15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail15": { + "main": [ + [ + { + "node": "Gmail9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail7": { + "main": [ + [ + { + "node": "Gmail16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail14": { + "main": [[]] + }, + "Sleep 0.5 Second": { + "main": [ + [ + { + "node": "Gmail11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 Second1": { + "main": [ + [ + { + "node": "Gmail14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Gmail11": { + "main": [ + [ + { + "node": "Sleep 0.5 Second1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/41.json b/packages/testing/playwright/test-workflows/workflows/41.json new file mode 100644 index 0000000000..6b71dd4592 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/41.json @@ -0,0 +1,210 @@ +{ + "createdAt": "2021-02-18T15:29:36.110Z", + "updatedAt": "2021-02-18T15:56:49.923Z", + "id": "41", + "name": "GoogleCalendar:Event:create getAll get update delete:Calendar:availability", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "6aeb5434-f098-403c-8a10-3b49b0ce5b28" + }, + { + "parameters": { + "resource": "calendar", + "calendar": "node8qa@gmail.com", + "timeMin": "2021-02-17T23:00:00.000Z", + "timeMax": "2021-02-18T23:00:00.000Z", + "options": { + "outputFormat": "availability" + } + }, + "name": "Google Calendar", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [500, 210], + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "1cd92151-378b-42a0-ab14-fb21b6efc5e5" + }, + { + "parameters": { + "calendar": "node8qa@gmail.com", + "start": "2021-02-18T15:50:50.000Z", + "end": "2021-02-19T15:50:50.000Z", + "additionalFields": { + "description": "Test" + } + }, + "name": "Google Calendar1", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [490, 390], + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "89509d2f-ceac-4046-ac47-a0c5d5aada34" + }, + { + "parameters": { + "operation": "get", + "calendar": "node8qa@gmail.com", + "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", + "options": {} + }, + "name": "Google Calendar2", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [820, 390], + "alwaysOutputData": true, + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "48aa1cb4-9649-46f9-9368-fec67709b825" + }, + { + "parameters": { + "operation": "getAll", + "calendar": "node8qa@gmail.com", + "limit": 1, + "options": { + "showDeleted": true + } + }, + "name": "Google Calendar3", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [650, 390], + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "99926665-5d81-4452-96d8-f025a3539ae6" + }, + { + "parameters": { + "operation": "update", + "calendar": "node8qa@gmail.com", + "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", + "updateFields": { + "color": "7" + } + }, + "name": "Google Calendar4", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [980, 390], + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "a673096e-b394-4a98-ba01-e0cdfabde6bd" + }, + { + "parameters": { + "operation": "delete", + "calendar": "node8qa@gmail.com", + "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", + "options": {} + }, + "name": "Google Calendar5", + "type": "n8n-nodes-base.googleCalendar", + "typeVersion": 1, + "position": [1130, 390], + "credentials": { + "googleCalendarOAuth2Api": { + "id": "23", + "name": "Google calendar 0auth creds" + } + }, + "id": "dd64b74a-ab43-4bed-a19c-59817cc6e4ab" + } + ], + "connections": { + "Google Calendar1": { + "main": [ + [ + { + "node": "Google Calendar3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Calendar3": { + "main": [ + [ + { + "node": "Google Calendar2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Calendar2": { + "main": [ + [ + { + "node": "Google Calendar4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Calendar4": { + "main": [ + [ + { + "node": "Google Calendar5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Calendar1", + "type": "main", + "index": 0 + }, + { + "node": "Google Calendar", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/42.json b/packages/testing/playwright/test-workflows/workflows/42.json new file mode 100644 index 0000000000..30b4bb9240 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/42.json @@ -0,0 +1,179 @@ +{ + "createdAt": "2021-02-18T16:06:30.135Z", + "updatedAt": "2021-02-18T16:06:30.135Z", + "id": "42", + "name": "GoogleTask:create update getAll get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [360, 250], + "id": "8a9cccfd-ef20-48c6-b6fa-f21c15ab3ee9" + }, + { + "parameters": { + "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", + "title": "Do Testing", + "additionalFields": {} + }, + "name": "Google Tasks", + "type": "n8n-nodes-base.googleTasks", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "googleTasksOAuth2Api": { + "id": "24", + "name": "Google Tasks 0auth creds" + } + }, + "id": "c007f149-e912-4c92-a05e-faf60bc1b6d3" + }, + { + "parameters": { + "operation": "update", + "title": "Do Testing", + "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", + "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}", + "updateFields": { + "status": "completed" + } + }, + "name": "Google Tasks1", + "type": "n8n-nodes-base.googleTasks", + "typeVersion": 1, + "position": [720, 250], + "credentials": { + "googleTasksOAuth2Api": { + "id": "24", + "name": "Google Tasks 0auth creds" + } + }, + "id": "a1adcb8e-7f47-448b-8dd6-208d815a8515" + }, + { + "parameters": { + "operation": "get", + "title": "Do Testing", + "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", + "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}" + }, + "name": "Google Tasks2", + "type": "n8n-nodes-base.googleTasks", + "typeVersion": 1, + "position": [1070, 250], + "credentials": { + "googleTasksOAuth2Api": { + "id": "24", + "name": "Google Tasks 0auth creds" + } + }, + "id": "ddc28328-f7f5-451e-9a9a-f3b4827cbb0d" + }, + { + "parameters": { + "operation": "delete", + "title": "Do Testing", + "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", + "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}" + }, + "name": "Google Tasks3", + "type": "n8n-nodes-base.googleTasks", + "typeVersion": 1, + "position": [1230, 250], + "credentials": { + "googleTasksOAuth2Api": { + "id": "24", + "name": "Google Tasks 0auth creds" + } + }, + "id": "f9028103-aa27-405c-a081-7ae669cf3e86" + }, + { + "parameters": { + "operation": "getAll", + "title": "Do Testing", + "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", + "limit": 1, + "additionalFields": {} + }, + "name": "Google Tasks4", + "type": "n8n-nodes-base.googleTasks", + "typeVersion": 1, + "position": [890, 250], + "credentials": { + "googleTasksOAuth2Api": { + "id": "24", + "name": "Google Tasks 0auth creds" + } + }, + "id": "96e66609-8e49-4bb0-b393-63ada8d98ccb" + } + ], + "connections": { + "Google Tasks": { + "main": [ + [ + { + "node": "Google Tasks1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Tasks1": { + "main": [ + [ + { + "node": "Google Tasks4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Tasks2": { + "main": [ + [ + { + "node": "Google Tasks3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Tasks4": { + "main": [ + [ + { + "node": "Google Tasks2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Tasks", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/43.json b/packages/testing/playwright/test-workflows/workflows/43.json new file mode 100644 index 0000000000..36cf2e80fa --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/43.json @@ -0,0 +1,206 @@ +{ + "createdAt": "2021-02-19T07:31:35.734Z", + "updatedAt": "2021-06-08T09:27:55.752Z", + "id": "43", + "name": "GoogleContacts:create update getAll get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9b031147-6a8d-44ca-85b0-8cdaf10eb659" + }, + { + "parameters": { + "familyName": "QA", + "givenName": "node", + "additionalFields": { + "companyUi": { + "companyValues": [ + { + "current": true, + "domain": "n8n", + "name": "QA", + "title": "n8nQA" + } + ] + } + } + }, + "name": "Google Contacts", + "type": "n8n-nodes-base.googleContacts", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "googleContactsOAuth2Api": { + "id": "25", + "name": "Google Contacts creds" + } + }, + "id": "7d9e7d33-a215-4997-86a7-4067f990fdbd" + }, + { + "parameters": { + "operation": "update", + "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}", + "fields": ["names"], + "updateFields": { + "givenName": "nodemation" + } + }, + "name": "Google Contacts1", + "type": "n8n-nodes-base.googleContacts", + "typeVersion": 1, + "position": [780, 300], + "credentials": { + "googleContactsOAuth2Api": { + "id": "25", + "name": "Google Contacts creds" + } + }, + "id": "8577325f-5674-4c71-8d0b-15afd2eebde4" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "fields": ["*"], + "options": {} + }, + "name": "Google Contacts2", + "type": "n8n-nodes-base.googleContacts", + "typeVersion": 1, + "position": [940, 300], + "credentials": { + "googleContactsOAuth2Api": { + "id": "25", + "name": "Google Contacts creds" + } + }, + "id": "a4079178-c6c0-490e-8e46-ba06237bbfce" + }, + { + "parameters": { + "operation": "get", + "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}", + "fields": ["*"] + }, + "name": "Google Contacts3", + "type": "n8n-nodes-base.googleContacts", + "typeVersion": 1, + "position": [1100, 300], + "credentials": { + "googleContactsOAuth2Api": { + "id": "25", + "name": "Google Contacts creds" + } + }, + "id": "98244b5e-a280-4717-8c1c-b8dac07fa5f5" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}" + }, + "name": "Google Contacts4", + "type": "n8n-nodes-base.googleContacts", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "googleContactsOAuth2Api": { + "id": "25", + "name": "Google Contacts creds" + } + }, + "id": "0d3f3684-07a8-4465-95dc-59dc3e11bdbb" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(3000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 3 seconds", + "type": "n8n-nodes-base.function", + "position": [610, 300], + "typeVersion": 1, + "id": "e1d77a33-d0c8-4920-a533-bc6fb413ea05" + } + ], + "connections": { + "Google Contacts": { + "main": [ + [ + { + "node": "Sleep 3 seconds", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Contacts1": { + "main": [ + [ + { + "node": "Google Contacts2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Contacts2": { + "main": [ + [ + { + "node": "Google Contacts3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Contacts3": { + "main": [ + [ + { + "node": "Google Contacts4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Contacts", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 3 seconds": { + "main": [ + [ + { + "node": "Google Contacts1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/44.json b/packages/testing/playwright/test-workflows/workflows/44.json new file mode 100644 index 0000000000..1175e0d77d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/44.json @@ -0,0 +1,353 @@ +{ + "createdAt": "2021-02-19T07:45:12.148Z", + "updatedAt": "2021-02-26T12:22:54.085Z", + "id": "44", + "name": "GoogleDrive:Folder:create share delete:File:upload share list download copy delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 450], + "id": "8213c874-bb15-4a4e-af12-efe5b749179c" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "folder", + "name": "testFolder" + }, + "name": "Google Drive", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [500, 290], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "8fb84335-a6b3-4147-a352-72c7911cfe26" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "folder", + "operation": "share", + "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}", + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive1", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [670, 290], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "07038a52-58d5-49a0-bd35-50499664a826" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "folder", + "operation": "delete", + "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}" + }, + "name": "Google Drive2", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [830, 290], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "ebd9563e-f9fa-4ced-a791-fe0ffc3f5d00" + }, + { + "parameters": { + "authentication": "serviceAccount", + "fileContent": "Test File Content", + "name": "testFile", + "parents": [] + }, + "name": "Google Drive3", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [500, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "848f7c4d-60b3-4f21-96a0-28ce6768bff5" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "share", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", + "permissionsUi": { + "permissionsValues": { + "role": "reader", + "type": "anyone" + } + }, + "options": {} + }, + "name": "Google Drive4", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [650, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "6bc457b8-8cce-4664-89a7-3c59a4a1cac9" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "list", + "limit": 1, + "options": {} + }, + "name": "Google Drive5", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [800, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "939faa4e-f542-41ad-804a-cda6cc30cd89" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "download", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" + }, + "name": "Google Drive6", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [960, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "8fa69472-389c-416b-9be1-8e104c99f9f9" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "copy", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", + "options": {} + }, + "name": "Google Drive7", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1100, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "1b9c73b8-4f19-49b8-9165-a8c125e264f6" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "delete", + "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" + }, + "name": "Google Drive8", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1240, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "e17d373d-907f-4635-bd44-b0e85e24acf7" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "delete", + "fileId": "={{$node[\"Google Drive7\"].json[\"id\"]}}" + }, + "name": "Google Drive9", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [1380, 450], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "8621da7a-e990-4dca-84b7-1ddccf256016" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "drive", + "options": {} + }, + "name": "Google Drive10", + "type": "n8n-nodes-base.googleDrive", + "typeVersion": 1, + "position": [500, 610], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "disabled": true, + "id": "6a675ae3-30c5-44cb-8811-66625259b47d" + } + ], + "connections": { + "Google Drive": { + "main": [ + [ + { + "node": "Google Drive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive1": { + "main": [ + [ + { + "node": "Google Drive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Drive", + "type": "main", + "index": 0 + }, + { + "node": "Google Drive3", + "type": "main", + "index": 0 + }, + { + "node": "Google Drive10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive3": { + "main": [ + [ + { + "node": "Google Drive4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive4": { + "main": [ + [ + { + "node": "Google Drive5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive5": { + "main": [ + [ + { + "node": "Google Drive6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive6": { + "main": [ + [ + { + "node": "Google Drive7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive7": { + "main": [ + [ + { + "node": "Google Drive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Drive8": { + "main": [ + [ + { + "node": "Google Drive9", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/45.json b/packages/testing/playwright/test-workflows/workflows/45.json new file mode 100644 index 0000000000..aca83243b4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/45.json @@ -0,0 +1,381 @@ +{ + "createdAt": "2021-02-19T09:08:47.547Z", + "updatedAt": "2021-05-25T12:40:44.118Z", + "id": "45", + "name": "GoogleSheets:SpreadSheet:create:Sheet:create append read lookup update delete clean remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "8c3c86be-d507-41b2-835b-9b49c1c34dc1" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "spreadsheet", + "title": "=TestSpreadSheet {{(new Date()).toGMTString()}}", + "sheetsUi": { + "sheetValues": [] + }, + "options": {} + }, + "name": "Google Sheets", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [440, 200], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "ca817592-040a-4fa1-a171-abe44d7a011c" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "append", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "range": "A:B", + "options": { + "valueInputMode": "USER_ENTERED" + } + }, + "name": "Google Sheets1", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [610, 360], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "f00b599c-3fd2-4c89-a9f0-84f33f4b0271" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "update", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "range": "Sheet1!A:B", + "options": { + "valueInputMode": "USER_ENTERED" + } + }, + "name": "Google Sheets2", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [1200, 360], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "174fac97-78c0-4474-9f9e-2b0a154eb6c5" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "number": [ + { + "name": "id", + "value": "={{$node[\"Function\"].json[\"id\"]}}" + } + ], + "string": [ + { + "name": "name", + "value": "=Updated {{$node[\"Function\"].json[\"name\"]}}" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "position": [1050, 360], + "typeVersion": 1, + "alwaysOutputData": false, + "notesInFlow": true, + "notes": "Update one item name", + "id": "72366cc8-257d-40fe-be42-cc85b8a01edf" + }, + { + "parameters": { + "authentication": "serviceAccount", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "range": "Sheet1!A:C", + "options": {} + }, + "name": "Google Sheets3", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [770, 360], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "34ba96c0-f1d2-4d78-883c-f809166e8688" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "lookup", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "range": "Sheet1!A:B", + "lookupColumn": "name", + "lookupValue": "test1", + "options": {} + }, + "name": "Google Sheets4", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [910, 360], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "e29d0550-1a22-4fc7-96a1-d4cc1b924b2f" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "clear", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "range": "A2:C50" + }, + "name": "Google Sheets5", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [1500, 360], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "6bbb5985-4367-4492-85db-aefcea813c99" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "delete", + "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", + "toDelete": { + "columns": [], + "rows": [ + { + "sheetId": 0, + "startIndex": 1 + } + ] + } + }, + "name": "Google Sheets6", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [1350, 360], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "0c129d65-37c8-48a6-b0fa-062a1b474d96" + }, + { + "parameters": { + "functionCode": "items = [\n {\n json:{\n id: Math.round(Math.random()*1000),\n name: 'test1'\n } \n },\n {\n json:{\n id: Math.round(Math.random()*1000),\n name: 'test2'\n } \n }\n]\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [440, 360], + "notesInFlow": true, + "notes": "create the input data", + "id": "e4dce6be-f388-4159-889f-0c0243a9a407" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "create", + "sheetId": "={{$node[\"Google Sheets\"].json[\"spreadsheetId\"]}}", + "options": { + "gridProperties": { + "columnCount": 10, + "rowCount": 20 + }, + "rightToLeft": false, + "index": 1, + "tabColor": "#FF6E39" + } + }, + "name": "Google Sheets7", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [600, 200], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "e32770bf-a9e6-47cf-a75f-6e335ca46d3d" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "remove", + "sheetId": "={{$node[\"Google Sheets\"].json[\"spreadsheetId\"]}}", + "id": "={{$node[\"Google Sheets7\"].json[\"sheetId\"]}}" + }, + "name": "Google Sheets8", + "type": "n8n-nodes-base.googleSheets", + "typeVersion": 1, + "position": [750, 200], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "b3ff83fc-5bb3-4472-bbf4-c24a56e4ecf1" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Google Sheets", + "type": "main", + "index": 0 + }, + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets1": { + "main": [ + [ + { + "node": "Google Sheets3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets2": { + "main": [ + [ + { + "node": "Google Sheets6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Google Sheets2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets3": { + "main": [ + [ + { + "node": "Google Sheets4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets4": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets6": { + "main": [ + [ + { + "node": "Google Sheets5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Google Sheets1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets": { + "main": [ + [ + { + "node": "Google Sheets7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Sheets7": { + "main": [ + [ + { + "node": "Google Sheets8", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/46.json b/packages/testing/playwright/test-workflows/workflows/46.json new file mode 100644 index 0000000000..ab80aa4da5 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/46.json @@ -0,0 +1,302 @@ +{ + "createdAt": "2021-02-19T09:10:55.093Z", + "updatedAt": "2021-06-04T16:58:49.525Z", + "id": "46", + "name": "GoogleBooks:Volume:getAll get:BookShelf:getAll get:BookShelfVolume:add move getAll remove clear", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [190, 380], + "id": "92c95e9a-bed8-4099-9f53-f2744380c0e2" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "volume", + "operation": "getAll", + "searchQuery": "lean startup", + "limit": 2 + }, + "name": "Google Books", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [480, 300], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "notes": "IGNORED_PROPERTIES=userInfo", + "id": "2cc49cda-b0ee-4c8f-96c9-eede0627537c" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "volume", + "volumeId": "={{$node[\"Google Books\"].json[\"id\"]}}" + }, + "name": "Google Books1", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "notes": "IGNORED_PROPERTIES=layerInfo", + "id": "629b25f8-ced3-41a0-9e8e-47a84c1c654b" + }, + { + "parameters": { + "authentication": "serviceAccount", + "operation": "getAll", + "myLibrary": true, + "limit": 1 + }, + "name": "Google Books2", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [480, 460], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "6deb68ae-0a5d-4d1c-b8f0-e6f7a53bb67a" + }, + { + "parameters": { + "authentication": "serviceAccount", + "myLibrary": true, + "shelfId": "1001" + }, + "name": "Google Books3", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [640, 460], + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "75b090c9-0b7b-466a-8805-3a7a19cb4db8" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "bookshelfVolume", + "operation": "add", + "shelfId": "1001", + "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}" + }, + "name": "Google Books4", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [820, 420], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "de433fd4-9964-4e37-9446-33248f9851f6" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "bookshelfVolume", + "operation": "move", + "shelfId": "1001", + "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}", + "volumePosition": "1" + }, + "name": "Google Books5", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [990, 420], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "f797616b-cd2d-4f41-b138-eafeaac2a059" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "bookshelfVolume", + "myLibrary": true, + "shelfId": "1001", + "limit": 1 + }, + "name": "Google Books6", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [1150, 420], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "notes": "IGNORED_PROPERTIES=layerInfo", + "id": "2c5e6a25-48c7-44e7-bce6-e7b15af5632f" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "bookshelfVolume", + "operation": "remove", + "shelfId": "1001", + "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}" + }, + "name": "Google Books7", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [1340, 420], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "3effe483-67fd-4dc4-90b2-aacea6a8e4b2" + }, + { + "parameters": { + "authentication": "serviceAccount", + "resource": "bookshelfVolume", + "operation": "clear", + "shelfId": "1001" + }, + "name": "Google Books8", + "type": "n8n-nodes-base.googleBooks", + "typeVersion": 1, + "position": [1520, 420], + "alwaysOutputData": true, + "credentials": { + "googleApi": { + "id": "196", + "name": "Google API creds" + } + }, + "id": "e0d6001c-abb2-41b2-a61e-3aaa47999106" + } + ], + "connections": { + "Google Books": { + "main": [ + [ + { + "node": "Google Books1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Google Books", + "type": "main", + "index": 0 + }, + { + "node": "Google Books2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books2": { + "main": [ + [ + { + "node": "Google Books3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books1": { + "main": [ + [ + { + "node": "Google Books4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books4": { + "main": [ + [ + { + "node": "Google Books5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books5": { + "main": [ + [ + { + "node": "Google Books6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books6": { + "main": [ + [ + { + "node": "Google Books7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Google Books7": { + "main": [ + [ + { + "node": "Google Books8", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/47.json b/packages/testing/playwright/test-workflows/workflows/47.json new file mode 100644 index 0000000000..4d5c043a19 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/47.json @@ -0,0 +1,242 @@ +{ + "createdAt": "2021-02-19T14:03:33.612Z", + "updatedAt": "2021-07-12T12:44:36.384Z", + "id": "47", + "name": "Airtable:append update read list delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 250], + "id": "033f4cbc-f36c-41df-bce3-5726a6aace1e" + }, + { + "parameters": { + "operation": "append", + "application": "appxv9J85H3ZM4WZp", + "table": "FixedTestTable", + "options": {} + }, + "name": "Airtable", + "type": "n8n-nodes-base.airtable", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "airtableApi": { + "id": "32", + "name": "Airtable creds" + } + }, + "id": "284d290d-93c8-441b-9b4e-0e21902f55a9" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "Name", + "value": "Test" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [400, 250], + "notesInFlow": true, + "notes": "Set Name column value", + "id": "0cd5f3da-97bd-4121-95f7-502338856476" + }, + { + "parameters": { + "operation": "update", + "application": "appxv9J85H3ZM4WZp", + "table": "FixedTestTable", + "id": "={{$node[\"Airtable\"].json[\"id\"]}}", + "updateAllFields": false, + "fields": ["Name"], + "options": {} + }, + "name": "Airtable1", + "type": "n8n-nodes-base.airtable", + "typeVersion": 1, + "position": [850, 250], + "credentials": { + "airtableApi": { + "id": "32", + "name": "Airtable creds" + } + }, + "id": "3642a3b3-3fc0-4354-b8ae-4340c2735b68" + }, + { + "parameters": { + "application": "appxv9J85H3ZM4WZp", + "table": "FixedTestTable", + "id": "={{$node[\"Airtable\"].json[\"id\"]}}" + }, + "name": "Airtable2", + "type": "n8n-nodes-base.airtable", + "typeVersion": 1, + "position": [1000, 250], + "credentials": { + "airtableApi": { + "id": "32", + "name": "Airtable creds" + } + }, + "id": "3075d56b-f6d9-42e1-9ce5-0270650d39d6" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "Name", + "value": "UpdatedTest" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [700, 250], + "notesInFlow": true, + "notes": "Update Name column", + "id": "517e190a-792d-43b5-a8df-31f4348c62f6" + }, + { + "parameters": { + "operation": "list", + "application": "appxv9J85H3ZM4WZp", + "table": "FixedTestTable", + "returnAll": false, + "limit": 1, + "additionalOptions": {} + }, + "name": "Airtable3", + "type": "n8n-nodes-base.airtable", + "typeVersion": 1, + "position": [1150, 250], + "credentials": { + "airtableApi": { + "id": "32", + "name": "Airtable creds" + } + }, + "id": "51a97002-565f-4ac1-a1a5-83e9190f6ae2" + }, + { + "parameters": { + "operation": "delete", + "application": "appxv9J85H3ZM4WZp", + "table": "FixedTestTable", + "id": "={{$node[\"Airtable\"].json[\"id\"]}}" + }, + "name": "Airtable4", + "type": "n8n-nodes-base.airtable", + "typeVersion": 1, + "position": [1300, 250], + "credentials": { + "airtableApi": { + "id": "32", + "name": "Airtable creds" + } + }, + "id": "5923a88f-cf48-4ea6-8fcd-fdf7ae8eb6ee" + } + ], + "connections": { + "Airtable": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Airtable", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Airtable1": { + "main": [ + [ + { + "node": "Airtable2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Airtable1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Airtable2": { + "main": [ + [ + { + "node": "Airtable3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Airtable3": { + "main": [ + [ + { + "node": "Airtable4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/48.json b/packages/testing/playwright/test-workflows/workflows/48.json new file mode 100644 index 0000000000..bb61d1b549 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/48.json @@ -0,0 +1,540 @@ +{ + "createdAt": "2021-02-19T14:19:19.630Z", + "updatedAt": "2021-02-19T14:42:39.385Z", + "id": "48", + "name": "Asana:Project:getAll get:Task:create update move getAll get delete:TaskComment:add remove:TaskTag:add remove:TaskProject:add remov e:SubTask:create getAll:User:get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [280, 390], + "id": "064566bb-7ae7-4ad5-97ab-69b2973f7eb9" + }, + { + "parameters": { + "resource": "project", + "operation": "getAll", + "workspace": "1177253494675264", + "limit": 1, + "additionalFields": {} + }, + "name": "Asana", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [510, 300], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "c8bc019c-3007-4981-a93e-1f293b6f501a" + }, + { + "parameters": { + "resource": "project", + "id": "={{$node[\"Asana\"].json[\"gid\"]}}" + }, + "name": "Asana1", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [660, 300], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "766f5d4b-3f5d-4f88-bbc4-4814d2b7c1ba" + }, + { + "parameters": { + "workspace": "1177253494675264", + "name": "TaskTest", + "otherProperties": { + "assignee": "1199961026001666" + } + }, + "name": "Asana2", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [510, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "776e73c2-bb77-4fee-8ef7-6921bc50e049" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "otherProperties": { + "name": "UpdatedTestTask" + } + }, + "name": "Asana3", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [660, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "91c57a7e-1138-48dc-8048-0baec087a61d" + }, + { + "parameters": { + "operation": "move", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "projectId": "1199961131378839", + "section": "1199961131378842" + }, + "name": "Asana4", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [820, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "40fb1194-7895-4bcb-ab3d-43918f35f9ed" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": { + "assignee": "1199961026001666", + "workspace": "1177253494675264" + } + }, + "name": "Asana5", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [970, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "3116c2d7-5026-48fd-8f00-158d4fcd8019" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}" + }, + "name": "Asana6", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1130, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "b993560a-0dc1-4ace-8185-ba82913c4c72" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}" + }, + "name": "Asana7", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1680, 460], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "9a2fba6c-df53-494f-91c3-33af89e4c51c" + }, + { + "parameters": { + "resource": "taskComment", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "text": "TestTaskComment", + "additionalFields": {} + }, + "name": "Asana8", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1310, 300], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "a262aed6-8572-4345-b686-abda94858dee" + }, + { + "parameters": { + "resource": "taskComment", + "operation": "remove", + "id": "={{$node[\"Asana8\"].json[\"gid\"]}}" + }, + "name": "Asana9", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1460, 300], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "82eaa43c-f3a9-482e-bd61-8c33b2c6702b" + }, + { + "parameters": { + "resource": "taskTag", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "tag": "1199534487398432" + }, + "name": "Asana10", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1310, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "0fa8b198-1c6a-4148-a9c3-1d99223118c6" + }, + { + "parameters": { + "resource": "taskTag", + "operation": "remove", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "tag": "1199534487398432" + }, + "name": "Asana11", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1460, 450], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "fef9c7fa-3a84-4fce-9e1c-56aee5cff928" + }, + { + "parameters": { + "resource": "taskProject", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "project": "1199961131378839", + "additionalFields": {} + }, + "name": "Asana12", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1310, 600], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "b90287d6-0d4a-44b7-b526-4debcc327803" + }, + { + "parameters": { + "resource": "taskProject", + "operation": "remove", + "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "project": "1199961131378839" + }, + "name": "Asana13", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1460, 600], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "dc5a5de2-f621-47e9-8b9b-5ed13e7ba90c" + }, + { + "parameters": { + "resource": "user", + "userId": "1199961026001666" + }, + "name": "Asana14", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [510, 620], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "b95e4adb-3e89-498f-9919-b8e5d2c92a4d" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "workspace": "1177253494675264" + }, + "name": "Asana15", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [650, 620], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "2c9da710-8406-4d84-a8d1-c888ffc1e13e" + }, + { + "parameters": { + "resource": "subtask", + "taskId": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "name": "SubTestTask", + "otherProperties": {} + }, + "name": "Asana16", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1310, 760], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "6788086b-1b9f-47c7-8eb4-31ba19ababe3" + }, + { + "parameters": { + "resource": "subtask", + "operation": "getAll", + "taskId": "={{$node[\"Asana2\"].json[\"gid\"]}}", + "limit": 1, + "options": {} + }, + "name": "Asana17", + "type": "n8n-nodes-base.asana", + "typeVersion": 1, + "position": [1460, 760], + "credentials": { + "asanaApi": { + "id": "33", + "name": "Asana creds" + } + }, + "id": "87cfd6a1-342a-43eb-b056-febc6d6c9a47" + } + ], + "connections": { + "Asana": { + "main": [ + [ + { + "node": "Asana1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana2": { + "main": [ + [ + { + "node": "Asana3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana3": { + "main": [ + [ + { + "node": "Asana4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana4": { + "main": [ + [ + { + "node": "Asana5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana5": { + "main": [ + [ + { + "node": "Asana6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana6": { + "main": [ + [ + { + "node": "Asana8", + "type": "main", + "index": 0 + }, + { + "node": "Asana10", + "type": "main", + "index": 0 + }, + { + "node": "Asana12", + "type": "main", + "index": 0 + }, + { + "node": "Asana16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana8": { + "main": [ + [ + { + "node": "Asana9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana9": { + "main": [[]] + }, + "Asana10": { + "main": [ + [ + { + "node": "Asana11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana11": { + "main": [[]] + }, + "Asana12": { + "main": [ + [ + { + "node": "Asana13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana13": { + "main": [[]] + }, + "Start": { + "main": [ + [ + { + "node": "Asana2", + "type": "main", + "index": 0 + }, + { + "node": "Asana14", + "type": "main", + "index": 0 + }, + { + "node": "Asana", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana14": { + "main": [ + [ + { + "node": "Asana15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana16": { + "main": [ + [ + { + "node": "Asana17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Asana17": { + "main": [ + [ + { + "node": "Asana7", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/49.json b/packages/testing/playwright/test-workflows/workflows/49.json new file mode 100644 index 0000000000..efa1aa8864 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/49.json @@ -0,0 +1,115 @@ +{ + "createdAt": "2021-02-19T16:46:19.188Z", + "updatedAt": "2021-02-19T16:46:33.650Z", + "id": "49", + "name": "Bitly:Link:create get update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [300, 300], + "id": "2780ec3a-4691-4fb0-b10a-71c14b669e40" + }, + { + "parameters": { + "longUrl": "https://n8n.io/", + "additionalFields": { + "title": "n8n" + } + }, + "name": "Bitly", + "type": "n8n-nodes-base.bitly", + "typeVersion": 1, + "position": [560, 300], + "credentials": { + "bitlyApi": { + "id": "34", + "name": "Bitly creds" + } + }, + "id": "f8d1516e-50b7-475e-9745-9b5b6bc8219c" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"Bitly\"].json[\"id\"]}}" + }, + "name": "Bitly1", + "type": "n8n-nodes-base.bitly", + "typeVersion": 1, + "position": [730, 300], + "credentials": { + "bitlyApi": { + "id": "34", + "name": "Bitly creds" + } + }, + "id": "26aef02a-14df-4496-81c4-6f241501e42b" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"Bitly\"].json[\"id\"]}}", + "updateFields": { + "group": "Bl2jgvxfKYU" + } + }, + "name": "Bitly2", + "type": "n8n-nodes-base.bitly", + "typeVersion": 1, + "position": [890, 300], + "credentials": { + "bitlyApi": { + "id": "34", + "name": "Bitly creds" + } + }, + "id": "d661eb9e-7481-4724-93b5-39e25d0f3e9f" + } + ], + "connections": { + "Bitly": { + "main": [ + [ + { + "node": "Bitly1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Bitly1": { + "main": [ + [ + { + "node": "Bitly2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Bitly", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/5.json b/packages/testing/playwright/test-workflows/workflows/5.json new file mode 100644 index 0000000000..d322262fc6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/5.json @@ -0,0 +1,93 @@ +{ + "createdAt": "2021-02-15T11:38:21.443Z", + "updatedAt": "2021-05-20T15:25:59.639Z", + "id": "5", + "name": "Hackernews:All:getAll:Article:get:User:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "481a7e7f-5ea7-402b-8316-f72c37b850bb" + }, + { + "parameters": { + "resource": "all", + "limit": 1, + "additionalFields": {} + }, + "name": "Hacker News", + "type": "n8n-nodes-base.hackerNews", + "typeVersion": 1, + "position": [450, 300], + "id": "3c48cdd6-1b9f-41cc-9ffd-861839a17846" + }, + { + "parameters": { + "articleId": "={{$json[\"objectID\"]}}", + "additionalFields": {} + }, + "name": "Hacker News1", + "type": "n8n-nodes-base.hackerNews", + "typeVersion": 1, + "position": [650, 300], + "id": "3cd97e86-f978-498a-9519-117a930529ad" + }, + { + "parameters": { + "resource": "user", + "username": "={{$json[\"author\"]}}" + }, + "name": "Hacker News2", + "type": "n8n-nodes-base.hackerNews", + "typeVersion": 1, + "position": [850, 300], + "id": "4f1db844-dea5-4ee0-bf62-ae05a7467fe7" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Hacker News", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hacker News": { + "main": [ + [ + { + "node": "Hacker News1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hacker News1": { + "main": [ + [ + { + "node": "Hacker News2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/50.json b/packages/testing/playwright/test-workflows/workflows/50.json new file mode 100644 index 0000000000..4ba78db4f9 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/50.json @@ -0,0 +1,170 @@ +{ + "createdAt": "2021-02-19T17:00:08.359Z", + "updatedAt": "2021-02-19T17:00:09.839Z", + "id": "50", + "name": "Brandfetch:color company font logo industry", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "82e5bad6-fe48-46f5-a494-d5c92fb33bde" + }, + { + "parameters": { + "operation": "color", + "domain": "n8n.io" + }, + "name": "Brandfetch", + "type": "n8n-nodes-base.Brandfetch", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "brandfetchApi": { + "id": "35", + "name": "Brandfetch creds" + } + }, + "id": "5116c2ec-f940-48ed-b325-577e41ec28ab" + }, + { + "parameters": { + "operation": "company", + "domain": "n8n.io" + }, + "name": "Brandfetch1", + "type": "n8n-nodes-base.Brandfetch", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "brandfetchApi": { + "id": "35", + "name": "Brandfetch creds" + } + }, + "id": "efa378a2-cac0-4e32-a068-ed3260cdbf5d" + }, + { + "parameters": { + "operation": "font", + "domain": "n8n.io" + }, + "name": "Brandfetch2", + "type": "n8n-nodes-base.Brandfetch", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "brandfetchApi": { + "id": "35", + "name": "Brandfetch creds" + } + }, + "id": "7052951a-6829-437b-b222-13e0d19f8b2d" + }, + { + "parameters": { + "operation": "industry", + "domain": "n8n.io" + }, + "name": "Brandfetch3", + "type": "n8n-nodes-base.Brandfetch", + "typeVersion": 1, + "position": [1100, 300], + "credentials": { + "brandfetchApi": { + "id": "35", + "name": "Brandfetch creds" + } + }, + "id": "98a08780-4212-4f77-9d7e-043da423672a" + }, + { + "parameters": { + "domain": "n8n.io", + "download": true, + "imageTypes": ["icon"] + }, + "name": "Brandfetch4", + "type": "n8n-nodes-base.Brandfetch", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "brandfetchApi": { + "id": "35", + "name": "Brandfetch creds" + } + }, + "id": "0966b6d6-13c0-4571-9b79-4ac6966e7210" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Brandfetch", + "type": "main", + "index": 0 + } + ] + ] + }, + "Brandfetch": { + "main": [ + [ + { + "node": "Brandfetch1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Brandfetch1": { + "main": [ + [ + { + "node": "Brandfetch2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Brandfetch2": { + "main": [ + [ + { + "node": "Brandfetch4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Brandfetch3": { + "main": [[]] + }, + "Brandfetch4": { + "main": [ + [ + { + "node": "Brandfetch3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/51.json b/packages/testing/playwright/test-workflows/workflows/51.json new file mode 100644 index 0000000000..5c33e2d317 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/51.json @@ -0,0 +1,434 @@ +{ + "createdAt": "2021-02-22T07:24:58.045Z", + "updatedAt": "2021-06-07T09:03:59.431Z", + "id": "51", + "name": "Clockify:Project:create update get getAll:Tag:create update getAll delete:TimeEntry:create update get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [290, 420], + "id": "d407a858-2b0d-47c9-8004-c2aa1c1debb5" + }, + { + "parameters": { + "workspaceId": "60335ad3f24e660123d7fdee", + "name": "=TestProject created {{(new Date).toGMTString()}}", + "additionalFields": {} + }, + "name": "Clockify", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "b95e9179-0b3e-41de-9f8e-e5ed5fb969e9" + }, + { + "parameters": { + "operation": "update", + "workspaceId": "60335ad3f24e660123d7fdee", + "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}", + "updateFields": { + "name": "=Updated {{$node[\"Clockify\"].json[\"name\"]}}" + } + }, + "name": "Clockify1", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [650, 250], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "0eec5307-ecca-4bc5-b40f-e21090c2941c" + }, + { + "parameters": { + "operation": "get", + "workspaceId": "60335ad3f24e660123d7fdee", + "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}" + }, + "name": "Clockify2", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [800, 250], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "dfaaf0b6-7657-42f7-b1a3-7bedbcdebfc0" + }, + { + "parameters": { + "operation": "getAll", + "workspaceId": "60335ad3f24e660123d7fdee", + "limit": 1, + "additionalFields": {} + }, + "name": "Clockify3", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [950, 250], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "e7648d2a-b3f5-4a72-97bc-4d923df7d32c" + }, + { + "parameters": { + "operation": "delete", + "workspaceId": "60335ad3f24e660123d7fdee", + "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}" + }, + "name": "Clockify4", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [1100, 250], + "notesInFlow": true, + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "disabled": true, + "notes": "delete require archive first", + "id": "59497092-bb8d-41cb-b80e-8642e83fe865" + }, + { + "parameters": { + "resource": "tag", + "workspaceId": "60335ad3f24e660123d7fdee", + "name": "=TestTag{{$evaluateExpression(Math.random())}}" + }, + "name": "Clockify5", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "780628c7-b7cb-4657-9d59-add61d07e849" + }, + { + "parameters": { + "resource": "tag", + "operation": "update", + "workspaceId": "60335ad3f24e660123d7fdee", + "tagId": "={{$node[\"Clockify5\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdatedTag{{$evaluateExpression(Math.random())}}" + } + }, + "name": "Clockify6", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [830, 400], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "43d5352c-56b1-4c6a-93c2-e09569209485" + }, + { + "parameters": { + "resource": "tag", + "operation": "getAll", + "workspaceId": "60335ad3f24e660123d7fdee", + "limit": 1, + "additionalFields": {} + }, + "name": "Clockify7", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [980, 400], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "28ccc080-049d-461f-ab30-ff877b0e0a92" + }, + { + "parameters": { + "resource": "tag", + "operation": "delete", + "workspaceId": "60335ad3f24e660123d7fdee", + "tagId": "={{$node[\"Clockify5\"].json[\"id\"]}}" + }, + "name": "Clockify8", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [1130, 400], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "a3cc2dea-5a89-44ac-92da-bcfbeac654a2" + }, + { + "parameters": { + "resource": "timeEntry", + "workspaceId": "60335ad3f24e660123d7fdee", + "start": "={{(new Date()).toISOString()}}", + "additionalFields": {} + }, + "name": "Clockify9", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [500, 560], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "2297d639-4261-46d0-b269-bd240b732fca" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "update", + "workspaceId": "60335ad3f24e660123d7fdee", + "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}", + "updateFields": { + "description": "Updated time entry" + } + }, + "name": "Clockify10", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [650, 560], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "936d9faf-b8eb-4f28-aa6e-4ce43bf119ae" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "get", + "workspaceId": "60335ad3f24e660123d7fdee", + "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Clockify11", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [800, 560], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "1b7e1644-9988-4794-91e4-278ec8dba2c4" + }, + { + "parameters": { + "resource": "timeEntry", + "operation": "delete", + "workspaceId": "60335ad3f24e660123d7fdee", + "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}" + }, + "name": "Clockify12", + "type": "n8n-nodes-base.clockify", + "typeVersion": 1, + "position": [950, 560], + "credentials": { + "clockifyApi": { + "id": "36", + "name": "Clockify creds" + } + }, + "id": "8af95310-ac19-43b8-a8c1-df89b2a715cc" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [660, 400], + "typeVersion": 1, + "id": "be2fd4bd-f014-48b8-9e52-f18cc6595477" + } + ], + "connections": { + "Clockify": { + "main": [ + [ + { + "node": "Clockify1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify1": { + "main": [ + [ + { + "node": "Clockify2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify2": { + "main": [ + [ + { + "node": "Clockify3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify3": { + "main": [ + [ + { + "node": "Clockify4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify5": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify6": { + "main": [ + [ + { + "node": "Clockify7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify7": { + "main": [ + [ + { + "node": "Clockify8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify9": { + "main": [ + [ + { + "node": "Clockify10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify10": { + "main": [ + [ + { + "node": "Clockify11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Clockify11": { + "main": [ + [ + { + "node": "Clockify12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Clockify", + "type": "main", + "index": 0 + }, + { + "node": "Clockify5", + "type": "main", + "index": 0 + }, + { + "node": "Clockify9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "Clockify6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/52.json b/packages/testing/playwright/test-workflows/workflows/52.json new file mode 100644 index 0000000000..75f1229c3f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/52.json @@ -0,0 +1,593 @@ +{ + "createdAt": "2021-02-22T08:19:03.344Z", + "updatedAt": "2021-02-25T09:52:14.205Z", + "id": "52", + "name": "Coda:Table:getAllColumns getColumn getAllRows getRow createRow pushButton deleteRow:View:getAll get getAllViewColumns getAllViewRows updateViewRow pushViewButto n:Formula:get getAll:Control:get getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 450], + "id": "20619e15-af58-4fc0-9d21-275a6e4d4ebb" + }, + { + "parameters": { + "resource": "control", + "operation": "getAll", + "docId": "2-5DWWeFZp", + "limit": 1 + }, + "name": "Coda", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [430, 220], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "fc0f43ee-65aa-4676-b393-6e3e9ffc33ca" + }, + { + "parameters": { + "resource": "control", + "docId": "2-5DWWeFZp", + "controlId": "={{$node[\"Coda\"].json[\"id\"]}}" + }, + "name": "Coda1", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [580, 220], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "ac99a243-1fed-4faf-842d-96108d5b4d60" + }, + { + "parameters": { + "resource": "formula", + "operation": "getAll", + "docId": "2-5DWWeFZp", + "limit": 1 + }, + "name": "Coda2", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [430, 370], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "8523646e-fffb-4958-b9fb-2ac34e3282e8" + }, + { + "parameters": { + "resource": "formula", + "docId": "2-5DWWeFZp", + "formulaId": "={{$node[\"Coda2\"].json[\"id\"]}}" + }, + "name": "Coda3", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [580, 370], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "7027e41a-e726-4a36-af68-e05d5c64efac" + }, + { + "parameters": { + "operation": "getAllColumns", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "limit": 1 + }, + "name": "Coda4", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [430, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "ddb40d66-f1ad-49c3-a11d-c10c384f3e4f" + }, + { + "parameters": { + "operation": "getColumn", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "columnId": "={{$node[\"Coda4\"].json[\"id\"]}}" + }, + "name": "Coda5", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [580, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "e0443974-4778-4c76-9a7b-3307506f7ad9" + }, + { + "parameters": { + "operation": "getAllRows", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "limit": 1, + "options": {} + }, + "name": "Coda6", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [730, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "4d07fe9e-29f0-481d-860d-623d5e2f4116" + }, + { + "parameters": { + "operation": "getRow", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}", + "options": {} + }, + "name": "Coda7", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [880, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "b00e4b21-5acb-493a-bb52-20725a4c4dde" + }, + { + "parameters": { + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "options": {} + }, + "name": "Coda8", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [1180, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "814390a0-e0f7-4981-9243-b34b5b613071" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "number": [ + { + "name": "number", + "value": 101 + }, + { + "name": "sum" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1030, 530], + "id": "99b92bf6-f5d5-4c43-bd76-f55735c496f2" + }, + { + "parameters": { + "operation": "deleteRow", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}" + }, + "name": "Coda9", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [1480, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "783160e7-a206-4dc3-9bce-b4b914c54a49" + }, + { + "parameters": { + "operation": "pushButton", + "docId": "2-5DWWeFZp", + "tableId": "grid-lDqTU2W4nP", + "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}", + "columnId": "c-hTB8QwFtUS" + }, + "name": "Coda10", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [1330, 530], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "43a39974-ac1c-4c2c-9011-113b8865f770" + }, + { + "parameters": { + "resource": "view", + "operation": "getAll", + "docId": "2-5DWWeFZp", + "limit": 1 + }, + "name": "Coda11", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [430, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "01270518-cd5e-41bc-860e-800107940b68" + }, + { + "parameters": { + "resource": "view", + "docId": "2-5DWWeFZp", + "viewId": "table-FTj1L0rh08" + }, + "name": "Coda12", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [580, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "f3f9ed26-a541-4107-ba9f-c1bd2004f886" + }, + { + "parameters": { + "resource": "view", + "operation": "getAllViewColumns", + "docId": "2-5DWWeFZp", + "viewId": "table-FTj1L0rh08", + "limit": 1 + }, + "name": "Coda13", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [730, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "6edc3858-5763-410f-8bb5-15bf84ce38db" + }, + { + "parameters": { + "resource": "view", + "operation": "getAllViewRows", + "docId": "2-5DWWeFZp", + "viewId": "table-FTj1L0rh08", + "limit": 1, + "options": {} + }, + "name": "Coda14", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [880, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "2e87f275-a020-4629-8319-7a47d149796e" + }, + { + "parameters": { + "resource": "view", + "operation": "updateViewRow", + "docId": "2-5DWWeFZp", + "viewId": "table-FTj1L0rh08", + "rowId": "={{$node[\"Coda14\"].json[\"id\"]}}", + "keyName": "number", + "options": { + "disableParsing": true + } + }, + "name": "Coda15", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [1180, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "0594b22d-0857-450a-9aa2-f2bf6cefd24d" + }, + { + "parameters": { + "keepOnlySet": true, + "values": { + "number": [ + { + "name": "number", + "value": 102 + }, + { + "name": "sum" + } + ] + }, + "options": {} + }, + "name": "Set1", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [1030, 700], + "id": "8af848c3-52a4-465b-99c7-e73c480825e4" + }, + { + "parameters": { + "resource": "view", + "operation": "pushViewButton", + "docId": "2-5DWWeFZp", + "viewId": "table-FTj1L0rh08", + "rowId": "={{$node[\"Coda14\"].json[\"id\"]}}", + "columnId": "c-hTB8QwFtUS" + }, + "name": "Coda16", + "type": "n8n-nodes-base.coda", + "typeVersion": 1, + "position": [1330, 700], + "credentials": { + "codaApi": { + "id": "37", + "name": "Code creds" + } + }, + "id": "a48740c3-b5b1-4ac0-825b-accc0296dba0" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Coda11", + "type": "main", + "index": 0 + }, + { + "node": "Coda4", + "type": "main", + "index": 0 + }, + { + "node": "Coda2", + "type": "main", + "index": 0 + }, + { + "node": "Coda", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda": { + "main": [ + [ + { + "node": "Coda1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda2": { + "main": [ + [ + { + "node": "Coda3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda4": { + "main": [ + [ + { + "node": "Coda5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda5": { + "main": [ + [ + { + "node": "Coda6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda6": { + "main": [ + [ + { + "node": "Coda7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda7": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda8": { + "main": [ + [ + { + "node": "Coda10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set": { + "main": [ + [ + { + "node": "Coda8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda10": { + "main": [ + [ + { + "node": "Coda9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda11": { + "main": [ + [ + { + "node": "Coda12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda12": { + "main": [ + [ + { + "node": "Coda13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda13": { + "main": [ + [ + { + "node": "Coda14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda14": { + "main": [ + [ + { + "node": "Set1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Coda15": { + "main": [ + [ + { + "node": "Coda16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set1": { + "main": [ + [ + { + "node": "Coda15", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/53.json b/packages/testing/playwright/test-workflows/workflows/53.json new file mode 100644 index 0000000000..019d7f57e3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/53.json @@ -0,0 +1,371 @@ +{ + "createdAt": "2021-02-22T09:25:07.982Z", + "updatedAt": "2021-06-01T10:33:44.740Z", + "id": "53", + "name": "ConvertKit:CustomField:create getAll update delete:Form:getAll addSubscriber getSubscriptions:Tag:create getAll:TagSubscriber:add getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "524988a0-a07b-4aca-8284-22aa6f951ca0" + }, + { + "parameters": { + "resource": "customField", + "operation": "create", + "label": "=testField{{$evaluateExpression(Math.random())}}" + }, + "name": "ConvertKit", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [450, 240], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "dcc8137a-d346-418a-b782-11cc2249b029" + }, + { + "parameters": { + "resource": "customField", + "operation": "getAll", + "limit": 1 + }, + "name": "ConvertKit1", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [600, 240], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "be466a4d-3611-4f4d-bca6-997b894d1a07" + }, + { + "parameters": { + "resource": "customField", + "id": "={{$node[\"ConvertKit\"].json[\"id\"]}}", + "label": "UpdatedTestField" + }, + "name": "ConvertKit2", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [750, 240], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "c09251ba-7a0a-4221-9f52-c40061f2b62b" + }, + { + "parameters": { + "resource": "customField", + "operation": "delete", + "id": "={{$node[\"ConvertKit\"].json[\"id\"]}}" + }, + "name": "ConvertKit3", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [900, 240], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "d3073227-93de-4e3e-a82e-410659aeb65a" + }, + { + "parameters": { + "operation": "getAll" + }, + "name": "ConvertKit4", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [450, 400], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "9792b051-1166-4ab6-bac6-2aae6f269f0a" + }, + { + "parameters": { + "id": 2059113, + "email": "=fakeemail{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "ConvertKit5", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [600, 400], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "195f9241-fc99-4184-aed1-b7a7a2672b2f" + }, + { + "parameters": { + "operation": "getSubscriptions", + "id": 2059113, + "limit": 1, + "additionalFields": {} + }, + "name": "ConvertKit6", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [1490, 400], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "0ceb3aa2-56ef-4bb6-b08c-50f8267d85be" + }, + { + "parameters": { + "resource": "tag", + "name": "=tag{{Date.now()}}" + }, + "name": "ConvertKit7", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [750, 490], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "9d905c82-8c32-4114-881a-28268f3238e7" + }, + { + "parameters": { + "resource": "tag", + "operation": "getAll", + "limit": 1 + }, + "name": "ConvertKit8", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [890, 490], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "c5461704-d54f-4ad2-b0e1-fa9f217888ed" + }, + { + "parameters": { + "resource": "tagSubscriber", + "operation": "add", + "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", + "email": "={{$node[\"ConvertKit5\"].json[\"subscriber\"][\"email_address\"]}}", + "additionalFields": {} + }, + "name": "ConvertKit9", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [1050, 550], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "2b123134-1ed6-415f-b9c2-d20b0e1782c6" + }, + { + "parameters": { + "resource": "tagSubscriber", + "operation": "getAll", + "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "ConvertKit10", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [1200, 550], + "alwaysOutputData": true, + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "6b44a0a6-9252-48b3-848f-74feb59c7845" + }, + { + "parameters": { + "resource": "tagSubscriber", + "operation": "delete", + "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", + "email": "={{$node[\"ConvertKit5\"].json[\"subscriber\"][\"email_address\"]}}" + }, + "name": "ConvertKit11", + "type": "n8n-nodes-base.convertKit", + "typeVersion": 1, + "position": [1350, 550], + "credentials": { + "convertKitApi": { + "id": "38", + "name": "ConvertKit creds" + } + }, + "id": "4c309c5b-a55f-47da-9dee-8620b505e501" + } + ], + "connections": { + "ConvertKit": { + "main": [ + [ + { + "node": "ConvertKit1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit1": { + "main": [ + [ + { + "node": "ConvertKit2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit2": { + "main": [ + [ + { + "node": "ConvertKit3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "ConvertKit", + "type": "main", + "index": 0 + }, + { + "node": "ConvertKit4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit5": { + "main": [ + [ + { + "node": "ConvertKit7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit4": { + "main": [ + [ + { + "node": "ConvertKit5", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit7": { + "main": [ + [ + { + "node": "ConvertKit8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit8": { + "main": [ + [ + { + "node": "ConvertKit9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit9": { + "main": [ + [ + { + "node": "ConvertKit10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit10": { + "main": [ + [ + { + "node": "ConvertKit11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ConvertKit11": { + "main": [ + [ + { + "node": "ConvertKit6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/54.json b/packages/testing/playwright/test-workflows/workflows/54.json new file mode 100644 index 0000000000..4ae4f1b1a3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/54.json @@ -0,0 +1,769 @@ +{ + "createdAt": "2021-02-22T10:00:31.563Z", + "updatedAt": "2021-02-22T10:50:12.567Z", + "id": "54", + "name": "InvoiceNinja:Client:create getAll get delete:Expense:create getAll get delete:Invoice:create getAll get email delete:Payment:create get getAll delete:Quote:crea te getAll get email delete:Task:create getAll get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 850], + "id": "1d47bc56-1b68-4ff0-8007-ae06b9c29610" + }, + { + "parameters": { + "additionalFields": { + "clientName": "=TestClient{{Date.now()}}" + } + }, + "name": "Invoice Ninja", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [500, 390], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "5b32c13a-c05e-45b6-8fdc-6174ebc941ea" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Invoice Ninja1", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [650, 390], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "1db90b48-219d-4e96-a782-7ff5823e9ee5" + }, + { + "parameters": { + "operation": "get", + "clientId": "={{$node[\"Invoice Ninja\"].json[\"id\"]}}", + "options": {} + }, + "name": "Invoice Ninja2", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [800, 390], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "f3e516a2-8e52-4fdb-80ba-932c960f6976" + }, + { + "parameters": { + "operation": "delete", + "clientId": "={{$node[\"Invoice Ninja\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja3", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [950, 390], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "cd219ff6-4105-4690-8d9c-918d8f35cdd9" + }, + { + "parameters": { + "resource": "expense", + "additionalFields": { + "amount": 100 + } + }, + "name": "Invoice Ninja4", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [500, 550], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "1d666aef-f593-42d3-9b61-fb54fe36bf0e" + }, + { + "parameters": { + "resource": "expense", + "operation": "getAll", + "limit": 1 + }, + "name": "Invoice Ninja5", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [650, 550], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "42b27738-9c2e-41e5-ba79-93efb0087729" + }, + { + "parameters": { + "resource": "expense", + "operation": "get", + "expenseId": "={{$node[\"Invoice Ninja4\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja6", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [800, 550], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "578e0bbd-f7a9-4640-a3ad-de936eaacd79" + }, + { + "parameters": { + "resource": "expense", + "operation": "delete", + "expenseId": "={{$node[\"Invoice Ninja4\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja7", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [950, 550], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "994c5b63-8463-49db-b22f-5019e9c0917b" + }, + { + "parameters": { + "resource": "invoice", + "additionalFields": { + "email": "test@gmail.com" + } + }, + "name": "Invoice Ninja8", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [500, 710], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "4153127d-468e-4c08-9f06-768e4b192403" + }, + { + "parameters": { + "resource": "invoice", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Invoice Ninja9", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1250, 710], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "9c236165-1824-44f9-8614-00e0a17a1103" + }, + { + "parameters": { + "resource": "invoice", + "operation": "get", + "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}", + "options": {} + }, + "name": "Invoice Ninja10", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1400, 710], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "44b48920-a293-4ca9-9033-178a18b3bf21" + }, + { + "parameters": { + "resource": "invoice", + "operation": "email", + "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja11", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1550, 710], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "aa19e0ab-0cbb-496c-a110-d16119d8a998" + }, + { + "parameters": { + "resource": "invoice", + "operation": "delete", + "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja12", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1700, 710], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "9bb13cc8-610b-42c1-9f6d-8971091ae507" + }, + { + "parameters": { + "resource": "payment", + "invoice": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}", + "amount": 102, + "additionalFields": {} + }, + "name": "Invoice Ninja14", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [650, 820], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "d19e4bad-d79d-4012-b32a-257cb0ebaa05" + }, + { + "parameters": { + "resource": "quote", + "additionalFields": { + "email": "test@gmail.com" + } + }, + "name": "Invoice Ninja15", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [500, 1020], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "c00c4d59-128a-41eb-9518-b132948d1054" + }, + { + "parameters": { + "resource": "quote", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Invoice Ninja16", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [650, 1020], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "0b4a39fa-9360-4011-b989-a42fc7d283ee" + }, + { + "parameters": { + "resource": "quote", + "operation": "get", + "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}", + "options": {} + }, + "name": "Invoice Ninja17", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [800, 1020], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "3d2b2f4b-eed9-4419-849d-cae56ae9cba3" + }, + { + "parameters": { + "resource": "quote", + "operation": "email", + "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja18", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [950, 1020], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "f99b80b6-5dda-4bc6-b2c4-1a43c715f23c" + }, + { + "parameters": { + "resource": "quote", + "operation": "delete", + "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja19", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1100, 1020], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "0a02025d-782e-4f1f-b17a-618449393a87" + }, + { + "parameters": { + "resource": "task", + "additionalFields": {} + }, + "name": "Invoice Ninja20", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [500, 1180], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "42fbd794-c557-4b30-863a-fbbe0012772d" + }, + { + "parameters": { + "resource": "task", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Invoice Ninja21", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [650, 1180], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "dd74acb7-ad5f-4a04-8b54-5d57846031dc" + }, + { + "parameters": { + "resource": "task", + "operation": "get", + "taskId": "={{$node[\"Invoice Ninja20\"].json[\"id\"]}}", + "options": {} + }, + "name": "Invoice Ninja22", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [800, 1180], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "2066f094-5f18-4e14-9349-4ae32a803a4a" + }, + { + "parameters": { + "resource": "task", + "operation": "delete", + "taskId": "={{$node[\"Invoice Ninja20\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja23", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [950, 1180], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "7f0705d7-cb3d-44d5-a47b-65605b653f4a" + }, + { + "parameters": { + "resource": "payment", + "operation": "get", + "paymentId": "={{$node[\"Invoice Ninja14\"].json[\"id\"]}}", + "options": {} + }, + "name": "Invoice Ninja24", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [800, 820], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "a3f3f226-e931-4185-891c-b98f554a1634" + }, + { + "parameters": { + "resource": "payment", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Invoice Ninja25", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [950, 820], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "e4660139-dc2c-4555-88aa-ab38b4ac1f31" + }, + { + "parameters": { + "resource": "payment", + "operation": "delete", + "paymentId": "={{$node[\"Invoice Ninja14\"].json[\"id\"]}}" + }, + "name": "Invoice Ninja26", + "type": "n8n-nodes-base.invoiceNinja", + "typeVersion": 1, + "position": [1100, 820], + "credentials": { + "invoiceNinjaApi": { + "id": "39", + "name": "Invoice Ninja creds " + } + }, + "id": "465cbca5-b9b9-4e70-b245-a80defd3c7cd" + } + ], + "connections": { + "Invoice Ninja": { + "main": [ + [ + { + "node": "Invoice Ninja1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja1": { + "main": [ + [ + { + "node": "Invoice Ninja2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Invoice Ninja4", + "type": "main", + "index": 0 + }, + { + "node": "Invoice Ninja8", + "type": "main", + "index": 0 + }, + { + "node": "Invoice Ninja15", + "type": "main", + "index": 0 + }, + { + "node": "Invoice Ninja", + "type": "main", + "index": 0 + }, + { + "node": "Invoice Ninja20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja3": { + "main": [[]] + }, + "Invoice Ninja2": { + "main": [ + [ + { + "node": "Invoice Ninja3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja4": { + "main": [ + [ + { + "node": "Invoice Ninja5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja5": { + "main": [ + [ + { + "node": "Invoice Ninja6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja6": { + "main": [ + [ + { + "node": "Invoice Ninja7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja8": { + "main": [ + [ + { + "node": "Invoice Ninja14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja9": { + "main": [ + [ + { + "node": "Invoice Ninja10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja10": { + "main": [ + [ + { + "node": "Invoice Ninja11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja11": { + "main": [ + [ + { + "node": "Invoice Ninja12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja15": { + "main": [ + [ + { + "node": "Invoice Ninja16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja16": { + "main": [ + [ + { + "node": "Invoice Ninja17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja17": { + "main": [ + [ + { + "node": "Invoice Ninja18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja18": { + "main": [ + [ + { + "node": "Invoice Ninja19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja20": { + "main": [ + [ + { + "node": "Invoice Ninja21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja21": { + "main": [ + [ + { + "node": "Invoice Ninja22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja22": { + "main": [ + [ + { + "node": "Invoice Ninja23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja14": { + "main": [ + [ + { + "node": "Invoice Ninja24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja24": { + "main": [ + [ + { + "node": "Invoice Ninja25", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja25": { + "main": [ + [ + { + "node": "Invoice Ninja26", + "type": "main", + "index": 0 + } + ] + ] + }, + "Invoice Ninja26": { + "main": [ + [ + { + "node": "Invoice Ninja9", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/55.json b/packages/testing/playwright/test-workflows/workflows/55.json new file mode 100644 index 0000000000..f95d01a1d2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/55.json @@ -0,0 +1,113 @@ +{ + "createdAt": "2021-02-22T11:10:50.078Z", + "updatedAt": "2021-02-22T11:10:50.078Z", + "id": "55", + "name": "Hunter: domainSearch emailFinder emailVerifier", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "71b4c90c-bc69-40af-ae0d-4148c869e90f" + }, + { + "parameters": { + "domain": "n8n.io", + "limit": 1, + "filters": {} + }, + "name": "Hunter", + "type": "n8n-nodes-base.hunter", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "hunterApi": { + "id": "40", + "name": "Hunter creds" + } + }, + "id": "1d897521-8f0d-4e5b-8c16-e4db83af76de" + }, + { + "parameters": { + "operation": "emailFinder", + "domain": "n8n.io", + "firstname": "hosting", + "lastname": "test" + }, + "name": "Hunter1", + "type": "n8n-nodes-base.hunter", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "hunterApi": { + "id": "40", + "name": "Hunter creds" + } + }, + "id": "e3d7ac81-0e2f-4c1c-947e-99539c16049f" + }, + { + "parameters": { + "operation": "emailVerifier", + "email": "nodeqa@n8n.io" + }, + "name": "Hunter2", + "type": "n8n-nodes-base.hunter", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "hunterApi": { + "id": "40", + "name": "Hunter creds" + } + }, + "id": "6882fbb1-7af6-4585-90f3-d2881e1c07aa" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Hunter", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hunter": { + "main": [ + [ + { + "node": "Hunter1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Hunter1": { + "main": [ + [ + { + "node": "Hunter2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/56.json b/packages/testing/playwright/test-workflows/workflows/56.json new file mode 100644 index 0000000000..94be9aa656 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/56.json @@ -0,0 +1,1040 @@ +{ + "createdAt": "2021-02-22T11:29:46.504Z", + "updatedAt": "2021-02-22T13:29:41.718Z", + "id": "56", + "name": "Trello:Board:*List:*Card:*Label:*CardComment:*Attachment:*CheckList:*", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [-580, 310], + "id": "60bc897d-49b0-41d9-9ecd-a241e69f23fd" + }, + { + "parameters": { + "resource": "board", + "name": "TestBoard", + "description": "test qa board", + "additionalFields": {} + }, + "name": "Trello", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [-300, 311], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "d9bb9631-be15-44b7-8962-15adb038513f" + }, + { + "parameters": { + "resource": "board", + "operation": "update", + "id": "={{$node[\"Trello\"].json[\"id\"]}}", + "updateFields": { + "name": "UpatedTestBoard" + } + }, + "name": "Trello1", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2970, 301], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "5240d7bc-d9d5-465e-87d5-7d68513b0552" + }, + { + "parameters": { + "resource": "board", + "operation": "get", + "id": "={{$node[\"Trello\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello2", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [3120, 301], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "d7d28b3a-a2ec-4c45-aeab-ffd60fa7ed1c" + }, + { + "parameters": { + "resource": "board", + "operation": "delete", + "id": "={{$node[\"Trello\"].json[\"id\"]}}" + }, + "name": "Trello3", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [3270, 301], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "bfd73a34-44a6-4067-9e68-47f217a6e96a" + }, + { + "parameters": { + "resource": "list", + "idBoard": "={{$node[\"Trello\"].json[\"id\"]}}", + "name": "To Test", + "additionalFields": {} + }, + "name": "Trello4", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [-160, 411], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "f539269f-9813-4158-9cfb-3568adc2ad4a" + }, + { + "parameters": { + "resource": "list", + "operation": "update", + "id": "={{$node[\"Trello4\"].json[\"id\"]}}", + "updateFields": {} + }, + "name": "Trello5", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [-10, 411], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "6cc9eb56-e9ac-48bd-965f-61da503191f8" + }, + { + "parameters": { + "resource": "list", + "operation": "get", + "id": "={{$node[\"Trello4\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello6", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [140, 411], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "9ee41feb-6b2d-4b76-9e39-13a8a41553e6" + }, + { + "parameters": { + "resource": "list", + "operation": "getAll", + "id": "={{$node[\"Trello\"].json[\"id\"]}}", + "limit": 1, + "additionalFields": {} + }, + "name": "Trello7", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [290, 411], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "34c2e5be-9ae1-4212-991b-8099e11fedb1" + }, + { + "parameters": { + "resource": "list", + "operation": "getCards", + "id": "={{$node[\"Trello4\"].json[\"id\"]}}", + "limit": 1, + "additionalFields": {} + }, + "name": "Trello8", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2550, 401], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "6ecf2b95-1431-4ca6-85da-a099c2152169" + }, + { + "parameters": { + "resource": "list", + "operation": "archive", + "id": "={{$node[\"Trello4\"].json[\"id\"]}}" + }, + "name": "Trello9", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2840, 401], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "92cfc2ec-b2bb-4e00-afae-1a540903886a" + }, + { + "parameters": { + "listId": "={{$node[\"Trello4\"].json[\"id\"]}}", + "name": "TestCard", + "description": "qa test card", + "additionalFields": {} + }, + "name": "Trello10", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [430, 511], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "3ecf077b-90ae-484b-91f7-a134defb5a9b" + }, + { + "parameters": { + "resource": "cardComment", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "text": "Test comment" + }, + "name": "Trello11", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [590, 591], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "f60d1db5-08b7-47d3-8e87-c6d6db863400" + }, + { + "parameters": { + "resource": "cardComment", + "operation": "update", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "commentId": "={{$node[\"Trello11\"].json[\"id\"]}}", + "text": "Updated comment" + }, + "name": "Trello12", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [740, 591], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "b9b78d60-9ac7-47a7-a21d-91c0eea11529" + }, + { + "parameters": { + "resource": "cardComment", + "operation": "delete", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "commentId": "={{$node[\"Trello11\"].json[\"id\"]}}" + }, + "name": "Trello13", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [890, 591], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "ab58cd8f-6d9c-4d13-9061-e7075baa09a0" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"Trello10\"].json[\"id\"]}}", + "updateFields": { + "name": "UpdateTestCard" + } + }, + "name": "Trello14", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2270, 501], + "alwaysOutputData": true, + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "4a02293e-8c77-4fec-96d4-b30ef8bef67d" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"Trello10\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello15", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2410, 501], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "5f3eecb4-bdc3-41ee-8c08-6133996cfe6c" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Trello10\"].json[\"id\"]}}" + }, + "name": "Trello16", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2700, 501], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "4b372bda-f6ba-4148-af60-7baa2750b199" + }, + { + "parameters": { + "resource": "label", + "operation": "create", + "boardId": "={{$node[\"Trello\"].json[\"id\"]}}", + "name": "TestLabel", + "color": "blue" + }, + "name": "Trello17", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [590, 431], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "00028ce8-a909-46b7-a39b-2893f039dfb4" + }, + { + "parameters": { + "resource": "label", + "operation": "update", + "id": "={{$node[\"Trello17\"].json[\"id\"]}}", + "updateFields": { + "color": "orange" + } + }, + "name": "Trello18", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [730, 431], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "4b45bec0-38ea-44fb-b8ce-2bdeb0111749" + }, + { + "parameters": { + "resource": "label", + "boardId": "={{$node[\"Trello\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello19", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [870, 431], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "a6d224e2-f55b-41a4-9682-27221a17946e" + }, + { + "parameters": { + "resource": "checklist", + "operation": "create", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "name": "TestCheckList", + "additionalFields": {} + }, + "name": "Trello20", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [590, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "59a94a1d-eb67-48bc-82ea-065bd2ef4458" + }, + { + "parameters": { + "resource": "checklist", + "operation": "createCheckItem", + "checklistId": "={{$node[\"Trello20\"].json[\"id\"]}}", + "name": "TestCheckListItem", + "additionalFields": {} + }, + "name": "Trello21", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [740, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "1fd1b5e1-6029-4a2a-972e-43014d5fafc1" + }, + { + "parameters": { + "resource": "checklist", + "operation": "updateCheckItem", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", + "additionalFields": { + "name": "UpdatedCheckListItem", + "state": "complete" + } + }, + "name": "Trello22", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [920, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "8736bed5-3556-44ae-a95f-3bdf353beaab" + }, + { + "parameters": { + "resource": "checklist", + "operation": "getCheckItem", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello23", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1090, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "16a9b8ce-2f76-4bf2-89c0-5adaf2f82c13" + }, + { + "parameters": { + "resource": "checklist", + "operation": "completedCheckItems", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello24", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1270, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "6e2b2fd6-0fa0-44d8-8530-d95043cf117f" + }, + { + "parameters": { + "resource": "checklist", + "operation": "getCheckItem", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello25", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1440, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "0387d97e-31f6-4226-9da6-c029714fd5dd" + }, + { + "parameters": { + "resource": "checklist", + "operation": "deleteCheckItem", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}" + }, + "name": "Trello26", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1600, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "368bfe8c-797a-4458-90bb-24c54393e038" + }, + { + "parameters": { + "resource": "checklist", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello27", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1740, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "c67011e2-140d-489d-bffd-7e3cd6704fee" + }, + { + "parameters": { + "resource": "checklist", + "operation": "get", + "id": "={{$node[\"Trello20\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello28", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1890, 281], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "61c6e9e9-d539-43fa-ab8b-836c660a4182" + }, + { + "parameters": { + "resource": "checklist", + "operation": "delete", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "id": "={{$node[\"Trello20\"].json[\"id\"]}}" + }, + "name": "Trello29", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [2040, 281], + "alwaysOutputData": true, + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "3d78422e-1c16-4ece-8aac-c62178ff0687" + }, + { + "parameters": { + "resource": "attachment", + "operation": "create", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "url": "https://cdn-images-1.medium.com/max/159/1*b9a5qBIsH4Jn2b7Lqq9fHg@2x.png", + "additionalFields": {} + }, + "name": "Trello30", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [590, 751], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "38fa57aa-5631-469e-9c6f-a2f6fa5e87cf" + }, + { + "parameters": { + "resource": "attachment", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello31", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [730, 751], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "b6fa8d72-0a6e-471a-bfa9-46c70dc0f1cb" + }, + { + "parameters": { + "resource": "attachment", + "operation": "get", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "id": "={{$node[\"Trello30\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Trello32", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [890, 751], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "d789d4bf-4a60-43da-963d-41fc5ea923e1" + }, + { + "parameters": { + "resource": "attachment", + "operation": "delete", + "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", + "id": "={{$node[\"Trello30\"].json[\"id\"]}}" + }, + "name": "Trello33", + "type": "n8n-nodes-base.trello", + "typeVersion": 1, + "position": [1050, 751], + "credentials": { + "trelloApi": { + "id": "41", + "name": "Trello creds" + } + }, + "id": "7d6b761b-1dc0-45c6-852e-c5a7d1e7d3d7" + } + ], + "connections": { + "Trello": { + "main": [ + [ + { + "node": "Trello4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello1": { + "main": [ + [ + { + "node": "Trello2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello2": { + "main": [ + [ + { + "node": "Trello3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello4": { + "main": [ + [ + { + "node": "Trello5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello5": { + "main": [ + [ + { + "node": "Trello6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello6": { + "main": [ + [ + { + "node": "Trello7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello7": { + "main": [ + [ + { + "node": "Trello10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello8": { + "main": [ + [ + { + "node": "Trello16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello9": { + "main": [ + [ + { + "node": "Trello1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello10": { + "main": [ + [ + { + "node": "Trello30", + "type": "main", + "index": 0 + }, + { + "node": "Trello11", + "type": "main", + "index": 0 + }, + { + "node": "Trello17", + "type": "main", + "index": 0 + }, + { + "node": "Trello20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello11": { + "main": [ + [ + { + "node": "Trello12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello12": { + "main": [ + [ + { + "node": "Trello13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello14": { + "main": [ + [ + { + "node": "Trello15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello15": { + "main": [ + [ + { + "node": "Trello8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello16": { + "main": [ + [ + { + "node": "Trello9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello17": { + "main": [ + [ + { + "node": "Trello18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello18": { + "main": [ + [ + { + "node": "Trello19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello20": { + "main": [ + [ + { + "node": "Trello21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello21": { + "main": [ + [ + { + "node": "Trello22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello22": { + "main": [ + [ + { + "node": "Trello23", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello23": { + "main": [ + [ + { + "node": "Trello24", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello24": { + "main": [ + [ + { + "node": "Trello25", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello25": { + "main": [ + [ + { + "node": "Trello26", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello26": { + "main": [ + [ + { + "node": "Trello27", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello27": { + "main": [ + [ + { + "node": "Trello28", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello28": { + "main": [ + [ + { + "node": "Trello29", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello29": { + "main": [ + [ + { + "node": "Trello14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello30": { + "main": [ + [ + { + "node": "Trello31", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello31": { + "main": [ + [ + { + "node": "Trello32", + "type": "main", + "index": 0 + } + ] + ] + }, + "Trello32": { + "main": [ + [ + { + "node": "Trello33", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Trello", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/57.json b/packages/testing/playwright/test-workflows/workflows/57.json new file mode 100644 index 0000000000..672510bbf4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/57.json @@ -0,0 +1,126 @@ +{ + "createdAt": "2021-02-22T13:24:15.920Z", + "updatedAt": "2021-07-14T13:33:54.633Z", + "id": "57", + "name": "Mindee:receipt:predict:invoice:predict", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [330, 230], + "id": "a2fb028a-a712-440d-b273-88e18c86f688" + }, + { + "parameters": {}, + "name": "Mindee", + "type": "n8n-nodes-base.mindee", + "typeVersion": 1, + "position": [650, 150], + "credentials": { + "mindeeReceiptApi": { + "id": "44", + "name": "Mindee Receipt creds" + } + }, + "id": "d1c7c807-0f46-48d7-a6a8-07c6fbd9298e" + }, + { + "parameters": { + "url": "https://upload.wikimedia.org/wikipedia/commons/0/0b/ReceiptSwiss.jpg", + "responseFormat": "file", + "options": {}, + "headerParametersUi": { + "parameter": [ + { + "name": "User-agent", + "value": "n8n-io app" + } + ] + } + }, + "name": "HTTP Request", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 1, + "position": [500, 150], + "id": "8313ed3a-96d5-4f34-8d5c-76bcdc7be95a" + }, + { + "parameters": { + "resource": "invoice" + }, + "name": "Mindee1", + "type": "n8n-nodes-base.mindee", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "mindeeInvoiceApi": { + "id": "45", + "name": "Mindee Invoice creds" + } + }, + "id": "1632bf97-ed0a-49cc-8c55-be7be333c91b" + }, + { + "parameters": { + "url": "https://www.invoicesimple.com/wp-content/uploads/2018/06/Sample-Invoice-printable.png", + "responseFormat": "file", + "options": {} + }, + "name": "HTTP Request1", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 1, + "position": [500, 300], + "id": "72d76ab1-1074-42ca-af84-cf8dc7eef32f" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "HTTP Request", + "type": "main", + "index": 0 + }, + { + "node": "HTTP Request1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "main": [ + [ + { + "node": "Mindee", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request1": { + "main": [ + [ + { + "node": "Mindee1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/58.json b/packages/testing/playwright/test-workflows/workflows/58.json new file mode 100644 index 0000000000..0cc7bd03e1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/58.json @@ -0,0 +1,197 @@ +{ + "createdAt": "2021-02-23T09:32:37.389Z", + "updatedAt": "2021-02-23T09:33:19.392Z", + "id": "58", + "name": "Todoist:Task:create get close reopen getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "1756bcfd-e673-45a5-abd8-9ee7b59e6a5c" + }, + { + "parameters": { + "project": 2259097055, + "labels": [2156287483], + "content": "Test Task", + "options": {} + }, + "name": "Todoist", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "9e3c07cc-af99-4d37-a4f4-f2d1786109aa" + }, + { + "parameters": { + "operation": "get", + "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" + }, + "name": "Todoist1", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "b617cd35-9714-4c7e-8913-c3d7819d3ad3" + }, + { + "parameters": { + "operation": "close", + "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" + }, + "name": "Todoist2", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "f9bc971d-a014-4ec9-b701-7fdfbb308454" + }, + { + "parameters": { + "operation": "reopen", + "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" + }, + "name": "Todoist3", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "f6d4be0d-b7c1-4eea-b1eb-ef2f7ed1b6b8" + }, + { + "parameters": { + "operation": "delete", + "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" + }, + "name": "Todoist4", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "967b63c7-4f60-4598-bdb3-9109ca2df94a" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Todoist5", + "type": "n8n-nodes-base.todoist", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "todoistApi": { + "id": "43", + "name": "Todoist creds" + } + }, + "id": "92240fb4-1d58-4dc9-bb29-db2804189e1d" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Todoist", + "type": "main", + "index": 0 + } + ] + ] + }, + "Todoist": { + "main": [ + [ + { + "node": "Todoist1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Todoist1": { + "main": [ + [ + { + "node": "Todoist2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Todoist2": { + "main": [ + [ + { + "node": "Todoist3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Todoist5": { + "main": [ + [ + { + "node": "Todoist4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Todoist3": { + "main": [ + [ + { + "node": "Todoist5", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/59.json b/packages/testing/playwright/test-workflows/workflows/59.json new file mode 100644 index 0000000000..4f01678888 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/59.json @@ -0,0 +1,342 @@ +{ + "createdAt": "2021-02-23T10:02:06.947Z", + "updatedAt": "2021-06-03T12:24:52.296Z", + "id": "59", + "name": "SendGrid:List:create update get getAll delete:Contact:upsert getAll get delete:mail:send", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [150, 400], + "id": "cab42b4b-d902-4524-ba7c-a43e35900705" + }, + { + "parameters": { + "name": "=TestList{{Date.now()}}" + }, + "name": "SendGrid", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [350, 300], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "79f6deca-f925-4162-8d81-14c466ace4ac" + }, + { + "parameters": { + "operation": "update", + "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}", + "name": "=UpdatedTestList{{Date.now()}}" + }, + "name": "SendGrid1", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "80d58751-f59c-4685-b9a8-c8a438171803" + }, + { + "parameters": { + "operation": "get", + "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}" + }, + "name": "SendGrid2", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "5f09a27b-d2f9-4dd2-ad82-1ca7679c0499" + }, + { + "parameters": { + "operation": "delete", + "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}" + }, + "name": "SendGrid3", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "cfa7cafc-72ee-4197-916a-9fbe335eeecd" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "SendGrid4", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "2460a6da-9efa-4613-8083-58b940cefb38" + }, + { + "parameters": { + "resource": "contact", + "email": "=fakeemail{{Date.now()}}@gmail.com", + "additionalFields": { + "firstName": "Fake", + "lastName": "Email" + } + }, + "name": "SendGrid5", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [350, 450], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "0c1183f8-3849-4019-88cd-0e9498e772ce" + }, + { + "parameters": { + "resource": "contact", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "SendGrid6", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [650, 450], + "executeOnce": false, + "alwaysOutputData": true, + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "ae3988ef-4046-4a88-81a4-3f9dec1c90f3" + }, + { + "parameters": { + "resource": "contact", + "operation": "get", + "contactId": "={{$node[\"SendGrid6\"].json[\"id\"]}}" + }, + "name": "SendGrid7", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [800, 450], + "alwaysOutputData": true, + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "727c4520-d781-4914-ae55-8413368dfe4a" + }, + { + "parameters": { + "resource": "contact", + "operation": "delete", + "ids": "=undefined" + }, + "name": "SendGrid8", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [950, 450], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "99abe2ed-524c-482b-9a87-f5043c7568cd" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1000);\nreturn item;" + }, + "name": "FunctionItem", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [500, 450], + "notes": "Sleep function", + "id": "5b5fc626-adc4-47af-811a-3785d04f8b75" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(5000);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 5 Seconds", + "type": "n8n-nodes-base.function", + "position": [1400, 200], + "typeVersion": 1, + "id": "c1921fc7-275d-4fc9-bb8c-151d5a525b90" + }, + { + "parameters": { + "resource": "mail", + "fromEmail": "node8qa@gmail.com", + "fromName": "node,qa", + "toEmail": "node8qa@gmail.com", + "subject": "SendGrid test workflow", + "contentValue": "=Message at {{(new Date).toUTCString()}}", + "additionalFields": {} + }, + "name": "SendGrid9", + "type": "n8n-nodes-base.sendGrid", + "typeVersion": 1, + "position": [350, 600], + "credentials": { + "sendGridApi": { + "id": "46", + "name": "SendGrid creds" + } + }, + "id": "189e1b95-2ad7-4c7e-8f87-b6114c4d99cb" + } + ], + "connections": { + "SendGrid": { + "main": [ + [ + { + "node": "SendGrid1", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid1": { + "main": [ + [ + { + "node": "SendGrid2", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid2": { + "main": [ + [ + { + "node": "SendGrid4", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid4": { + "main": [ + [ + { + "node": "SendGrid3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "SendGrid", + "type": "main", + "index": 0 + }, + { + "node": "SendGrid5", + "type": "main", + "index": 0 + }, + { + "node": "SendGrid9", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid5": { + "main": [ + [ + { + "node": "FunctionItem", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid6": { + "main": [ + [ + { + "node": "SendGrid7", + "type": "main", + "index": 0 + } + ] + ] + }, + "SendGrid7": { + "main": [ + [ + { + "node": "SendGrid8", + "type": "main", + "index": 0 + } + ] + ] + }, + "FunctionItem": { + "main": [ + [ + { + "node": "SendGrid6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/6.json b/packages/testing/playwright/test-workflows/workflows/6.json new file mode 100644 index 0000000000..129253afbc --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/6.json @@ -0,0 +1,69 @@ +{ + "createdAt": "2021-04-14T14:13:32.964Z", + "updatedAt": "2021-04-14T14:57:59.464Z", + "id": "6", + "name": "Static files workflow", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "48c3bb01-34b1-416a-a29a-428f46b0b5a0" + }, + { + "parameters": { + "fileName": "=/tmp/{{$node[\"Set files\"].json[\"filename\"]}}", + "dataPropertyName": "binaryfile" + }, + "name": "Write Binary File", + "type": "n8n-nodes-base.writeBinaryFile", + "typeVersion": 1, + "position": [650, 300], + "id": "3975413e-bcd6-4e7a-a57d-a6d16d734dcd" + }, + { + "parameters": { + "functionCode": "files = [\n {\n mimeType: 'image/png',\n data: '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',\n fileName: 'n8n-logo.png',\n },\n\n {\n mimeType: 'application/pdf',\n data: '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3iVUEWUxQu8Tqou1xDr0TqGR2ExsJbYTO4rdxD7l0TMKxSJxojhNnCU+LtriAnGxuFRcIa4RN4hviJsv1nddIR/7zXgoAawCVgUTwSTwElAGLwWDYAiMgAqogTpogFHwcvAK8EqwOvgn8CqwJlgLvA5MAa8H64I3gDeC9cEG4E1gI7AJ2BRsBt4KtgHbgneC7cEOYCrYGUwDu4BdwW5gd7AH2BPsBfYG+4B9wX7g3WB/cAA4EL/QPwl+B34P/hs8Bf4A/sgYJaAAiqAHlEAv5R9On8tpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNr8w+lzOm3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW384fU6nHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGnnD6fP6bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047f7enb4Yo7jROmcQ9oQIowR6QR9YBawKJoJ+8BJQBgNgEAyDEVABVdAAo+BlYDXwcvBKsDpYA7wGTAavBeuA14HXg3XBG8AbwfrgTWAjsDHYBGwG3gq2AFuCt4OtwTvAduCdYHvwLrADmAp2BDuBncE0sAvYFewGdgd7gIgfHMW2jSaA2MJRbOEotnA0CcQWjmILRy8FsZ2j2M7REMi29h9On8tpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcPp335++SE7bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG03b59+GIwhFaHLHY6Ox6hr4CaTpNBZJDGpAFZDFZSlYg8uMbFX6peoKcEqTy54ZrCXWEWmSFUJ9so1ObCq0wnnMPemxkCDls9GP6V0TL2CZMpsfH44JL52K5p4Wlwiq69Dr239vQU6GFtBe9KLSSPWESmUci+A/E5fgPRAr+91AX/3u4Ef97qE9bXorvhUpZ1E/KPLAYHAnafL1ewrt80AULwPngPMyVx8ty+DIO3xazMfU5sAh8Bp+M4/On8/lMnr6ENJfFQkX6AOZaCY7DtAks3ibqmM1rno1RwtkcsdrGY3oR/3wmT0t4OpvFKkUL8D4W1RMp1i2q4l0smmcKiZBmpBWeEe5FBpIMko1IEUV4aiwW27NsH7PnJe4JDyMknB0ezQwJD2QRXikR+zfM+sDs3dDyNDY1GxwCTgRngRMos1BCFi8hC0tm8RKyeAlZKCELJWShhCyU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kYPrt5OXtxSXaxZf+jNV8/IY1Cx6nMM59q+xJrj4U28LwUPKkqiMLlSdsLBPG+x1W7usXXdCsD8qLLTNy2LdXqFSjuSk0+CydwCDYzt/8yB/3Sv+qBSlj27BEMh/ABW4qmINCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMCAwIG9iag0KPDwvVHlwZS9YUmVmL1NpemUgMjAvV1sgMSA0IDJdIC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDgxPj4NCnN0cmVhbQ0KeJxjYACC//8ZgaQgAwOIqoVQW8EU42EwxcwPobaDKZZlEOo2mGIVYGBgAmoQYGCGUCwQihVCMUEoqBI2kIZfMB4jkMfeATaFI5eBAQACHwkSDQplbmRzdHJlYW0NCmVuZG9iag0KeHJlZg0KMCAyMQ0KMDAwMDAwMDAxMCA2NTUzNSBmDQowMDAwMDAwMDE3IDAwMDAwIG4NCjAwMDAwMDAxMjUgMDAwMDAgbg0KMDAwMDAwMDE4MSAwMDAwMCBuDQowMDAwMDAwNDUxIDAwMDAwIG4NCjAwMDAwMDA3ODMgMDAwMDAgbg0KMDAwMDAwMDk1MSAwMDAwMCBuDQowMDAwMDAxMTkwIDAwMDAwIG4NCjAwMDAwMDEyNDMgMDAwMDAgbg0KMDAwMDAwMTI5NiAwMDAwMCBuDQowMDAwMDAwMDExIDY1NTM1IGYNCjAwMDAwMDAwMTIgNjU1MzUgZg0KMDAwMDAwMDAxMyA2NTUzNSBmDQowMDAwMDAwMDE0IDY1NTM1IGYNCjAwMDAwMDAwMTUgNjU1MzUgZg0KMDAwMDAwMDAxNiA2NTUzNSBmDQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMTkyOCAwMDAwMCBuDQowMDAwMDAyMTU3IDAwMDAwIG4NCjAwMDAxODU1MTkgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dID4+DQpzdGFydHhyZWYNCjE4NTc5OQ0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9QcmV2IDE4NTc5OS9YUmVmU3RtIDE4NTUxOT4+DQpzdGFydHhyZWYNCjE4NjM3Ng0KJSVFT0Y=',\n fileName: '05-versions-space.pdf',\n },\n\n {\n mimeType: 'image/png',\n data: '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',\n fileName: 'n8n-screenshot.png',\n }\n]\n\nreturn files.map(file => ({json:{filename:file.fileName},binary:{binaryfile:file}}));\n" + }, + "name": "Set files", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [450, 300], + "id": "3f6a46bd-b5e9-4ff3-9562-335c4f540f02" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Set files", + "type": "main", + "index": 0 + } + ] + ] + }, + "Set files": { + "main": [ + [ + { + "node": "Write Binary File", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": {}, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/60.json b/packages/testing/playwright/test-workflows/workflows/60.json new file mode 100644 index 0000000000..0dfcddcf4d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/60.json @@ -0,0 +1,175 @@ +{ + "createdAt": "2021-02-23T15:27:09.090Z", + "updatedAt": "2021-07-16T07:21:35.499Z", + "id": "60", + "name": "Taiga:Issue:create update get getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [170, 350], + "id": "f7f8b0e2-b017-4579-b9e0-3ba533335d3a" + }, + { + "parameters": { + "projectId": 399742, + "subject": "Test", + "additionalFields": { + "description": "TestIssue" + } + }, + "name": "Taiga", + "type": "n8n-nodes-base.taiga", + "typeVersion": 1, + "position": [350, 350], + "credentials": { + "taigaApi": { + "id": "221", + "name": "taigaApi" + } + }, + "id": "c7b5324f-05d8-4eb7-a4f2-0f0a4c6de1da" + }, + { + "parameters": { + "operation": "update", + "projectId": 399742, + "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}", + "updateFields": { + "subject": "UpdatedTest" + } + }, + "name": "Taiga1", + "type": "n8n-nodes-base.taiga", + "typeVersion": 1, + "position": [500, 350], + "credentials": { + "taigaApi": { + "id": "221", + "name": "taigaApi" + } + }, + "id": "c156fd69-32cb-4b38-b85a-aeac05032c23" + }, + { + "parameters": { + "operation": "get", + "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}" + }, + "name": "Taiga2", + "type": "n8n-nodes-base.taiga", + "typeVersion": 1, + "position": [650, 350], + "credentials": { + "taigaApi": { + "id": "221", + "name": "taigaApi" + } + }, + "id": "2f3418a5-b09a-4db3-9cb8-c8d10b31a4b6" + }, + { + "parameters": { + "operation": "getAll", + "projectId": 399742, + "limit": 1, + "filters": {} + }, + "name": "Taiga3", + "type": "n8n-nodes-base.taiga", + "typeVersion": 1, + "position": [800, 350], + "credentials": { + "taigaApi": { + "id": "221", + "name": "taigaApi" + } + }, + "id": "a100f3a0-d4ae-41f3-81d5-21101a91eef6" + }, + { + "parameters": { + "operation": "delete", + "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}" + }, + "name": "Taiga4", + "type": "n8n-nodes-base.taiga", + "typeVersion": 1, + "position": [950, 350], + "credentials": { + "taigaApi": { + "id": "221", + "name": "taigaApi" + } + }, + "id": "a1c664cd-c0f0-44af-94ce-6c650aee489c" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Taiga", + "type": "main", + "index": 0 + } + ] + ] + }, + "Taiga": { + "main": [ + [ + { + "node": "Taiga1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Taiga1": { + "main": [ + [ + { + "node": "Taiga2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Taiga2": { + "main": [ + [ + { + "node": "Taiga3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Taiga3": { + "main": [ + [ + { + "node": "Taiga4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/61.json b/packages/testing/playwright/test-workflows/workflows/61.json new file mode 100644 index 0000000000..56492ab38f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/61.json @@ -0,0 +1,525 @@ +{ + "createdAt": "2021-02-23T16:32:02.682Z", + "updatedAt": "2021-07-14T13:38:50.003Z", + "id": "61", + "name": "Spotify:Artist:get getAlbums getRelatedArtists getTopTracks:Album:get getNewReleases getTracks:Track:get getAudioFeatures:Playlist:create getUserPlaylists get add getTracks delete:Player:recentylPlayed currentlyPlaying:Library:getLikedTracks", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "4509b9ad-036c-4042-9094-565f3831b616" + }, + { + "parameters": { + "resource": "artist", + "id": "0dwFxqYkvZLSA6U6XfQcDV" + }, + "name": "Spotify", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [440, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "1d211521-bf07-43d1-a537-76a43689659f" + }, + { + "parameters": { + "resource": "artist", + "operation": "getAlbums", + "id": "0dwFxqYkvZLSA6U6XfQcDV", + "limit": 1 + }, + "name": "Spotify1", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "5335e14c-1580-43cf-ab02-e0a6ff3a8682" + }, + { + "parameters": { + "resource": "artist", + "operation": "getRelatedArtists", + "id": "0dwFxqYkvZLSA6U6XfQcDV" + }, + "name": "Spotify2", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "87c2549e-56ae-4bce-94aa-f6a28da0a87c" + }, + { + "parameters": { + "resource": "artist", + "operation": "getTopTracks", + "id": "0dwFxqYkvZLSA6U6XfQcDV" + }, + "name": "Spotify3", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [600, 460], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "69240ec6-ad37-46b3-80d2-b1656c2f1334" + }, + { + "parameters": { + "resource": "album", + "id": "={{$node[\"Spotify1\"].json[\"id\"]}}" + }, + "name": "Spotify4", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [810, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "00066fda-fa7f-4070-a687-fe253bfdd1cb" + }, + { + "parameters": { + "resource": "album", + "operation": "getTracks", + "id": "={{$node[\"Spotify1\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Spotify5", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [1100, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "a2a42efb-f876-4612-acfd-2325108cea84" + }, + { + "parameters": { + "resource": "track", + "operation": "get", + "id": "={{$node[\"Spotify5\"].json[\"id\"]}}" + }, + "name": "Spotify6", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "be6c985b-88be-424f-b7c3-76126a347140" + }, + { + "parameters": { + "resource": "track", + "operation": "getAudioFeatures", + "id": "={{$node[\"Spotify5\"].json[\"id\"]}}" + }, + "name": "Spotify7", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [1400, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "6c05d655-43c2-456d-a9d0-a80ac251c1f6" + }, + { + "parameters": { + "resource": "playlist", + "operation": "getUserPlaylists", + "limit": 1 + }, + "name": "Spotify8", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [450, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "36defd84-29a1-4f39-896e-4885daaec151" + }, + { + "parameters": { + "resource": "playlist", + "operation": "get", + "id": "={{$node[\"Spotify8\"].json[\"id\"]}}" + }, + "name": "Spotify9", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [600, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "61c3c3dd-c263-4f2d-bd2d-c30ee5cd24ed" + }, + { + "parameters": { + "resource": "playlist", + "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", + "trackID": "spotify:track:2ea6bt302Bq8Hiulp8Bn2C", + "additionalFields": {} + }, + "name": "Spotify10", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [750, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "1aba2540-e5c6-4e19-9afb-1ce402ee9e63" + }, + { + "parameters": { + "resource": "playlist", + "operation": "getTracks", + "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", + "limit": 1 + }, + "name": "Spotify11", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [900, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "b73d97e3-8689-4d5a-b63a-798b841f97df" + }, + { + "parameters": { + "resource": "playlist", + "operation": "delete", + "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", + "trackID": "spotify:track:2ea6bt302Bq8Hiulp8Bn2C" + }, + "name": "Spotify12", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [1050, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "0a06cad9-d378-4206-8974-4a32f47c3ca2" + }, + { + "parameters": { + "operation": "recentlyPlayed", + "limit": 1 + }, + "name": "Spotify14", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [450, 0], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "e053e2f6-6166-4642-aae0-45c9e1fd7e8a" + }, + { + "parameters": { + "operation": "currentlyPlaying" + }, + "name": "Spotify15", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [600, 0], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "3f6ce69d-fe20-4ae8-9e0f-2fd6819829b8" + }, + { + "parameters": { + "resource": "album", + "operation": "getNewReleases", + "limit": 1, + "filters": { + "country": "DE" + } + }, + "name": "Spotify13", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "56209a90-208b-427e-91a6-2afeed0a2637" + }, + { + "parameters": { + "resource": "playlist", + "operation": "create", + "name": "=Playlist{{Date.now()}}", + "additionalFields": { + "public": true + } + }, + "name": "Spotify16", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [1200, 610], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "59830b10-56b4-49b0-b2fd-c21829acb8f6" + }, + { + "parameters": { + "resource": "library", + "limit": 1 + }, + "name": "Spotify17", + "type": "n8n-nodes-base.spotify", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "spotifyOAuth2Api": { + "id": "223", + "name": "Spotify OAuth2 creds" + } + }, + "id": "8ffb18bc-7e7a-403c-bcb1-60732c28f358" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Spotify", + "type": "main", + "index": 0 + }, + { + "node": "Spotify8", + "type": "main", + "index": 0 + }, + { + "node": "Spotify14", + "type": "main", + "index": 0 + }, + { + "node": "Spotify17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify": { + "main": [ + [ + { + "node": "Spotify1", + "type": "main", + "index": 0 + }, + { + "node": "Spotify3", + "type": "main", + "index": 0 + }, + { + "node": "Spotify2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify1": { + "main": [ + [ + { + "node": "Spotify4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify4": { + "main": [ + [ + { + "node": "Spotify13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify5": { + "main": [ + [ + { + "node": "Spotify6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify6": { + "main": [ + [ + { + "node": "Spotify7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify8": { + "main": [ + [ + { + "node": "Spotify9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify9": { + "main": [ + [ + { + "node": "Spotify10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify10": { + "main": [ + [ + { + "node": "Spotify11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify11": { + "main": [ + [ + { + "node": "Spotify12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify14": { + "main": [ + [ + { + "node": "Spotify15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify13": { + "main": [ + [ + { + "node": "Spotify5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spotify12": { + "main": [ + [ + { + "node": "Spotify16", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/62.json b/packages/testing/playwright/test-workflows/workflows/62.json new file mode 100644 index 0000000000..eb54e6c920 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/62.json @@ -0,0 +1,105 @@ +{ + "createdAt": "2021-02-25T08:31:03.195Z", + "updatedAt": "2021-02-25T08:32:00.908Z", + "id": "62", + "name": "ProfitWell:Company:getSetting:Metric:getMontly getDaily", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [300, 350], + "id": "4dbeace0-2f7c-4987-b559-b94bf635956b" + }, + { + "parameters": { + "resource": "company" + }, + "name": "ProfitWell", + "type": "n8n-nodes-base.profitWell", + "typeVersion": 1, + "position": [500, 270], + "credentials": { + "profitWellApi": { + "id": "51", + "name": "ProfitWell creds" + } + }, + "id": "641ae41a-7ffd-4644-af38-336ae09074eb" + }, + { + "parameters": { + "type": "monthly", + "options": {} + }, + "name": "ProfitWell1", + "type": "n8n-nodes-base.profitWell", + "typeVersion": 1, + "position": [500, 420], + "credentials": { + "profitWellApi": { + "id": "51", + "name": "ProfitWell creds" + } + }, + "id": "fa1e6b3f-6aee-43da-a1a5-7a5f5e820430" + }, + { + "parameters": { + "type": "daily", + "month": "={{(new Date()).toISOString().slice(0,7)}}", + "simple": false, + "options": {} + }, + "name": "ProfitWell2", + "type": "n8n-nodes-base.profitWell", + "typeVersion": 1, + "position": [650, 420], + "credentials": { + "profitWellApi": { + "id": "51", + "name": "ProfitWell creds" + } + }, + "id": "fba5b0a1-1e81-473c-9973-2d7f21a646d3" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ProfitWell", + "type": "main", + "index": 0 + }, + { + "node": "ProfitWell1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ProfitWell1": { + "main": [ + [ + { + "node": "ProfitWell2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/63.json b/packages/testing/playwright/test-workflows/workflows/63.json new file mode 100644 index 0000000000..536e0ff7ba --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/63.json @@ -0,0 +1,145 @@ +{ + "createdAt": "2021-02-25T09:15:01.281Z", + "updatedAt": "2021-03-10T14:03:08.426Z", + "id": "63", + "name": "Segment:Identify:create:Track:event page", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 400], + "id": "238a4bec-9ecf-47ad-a99b-98ac07a426da" + }, + { + "parameters": { + "userId": "rzfu5AbHm7U3rj7jMdqsjW", + "traits": { + "traitsUi": [ + { + "key": "type", + "value": "test" + } + ] + } + }, + "name": "Segment", + "type": "n8n-nodes-base.segment", + "typeVersion": 1, + "position": [500, 250], + "credentials": { + "segmentApi": { + "id": "52", + "name": "Segment creds" + } + }, + "id": "228fb339-6315-4c04-bce3-18d4c16019ad" + }, + { + "parameters": { + "resource": "track", + "userId": "rzfu5AbHm7U3rj7jMdqsjW", + "event": "click" + }, + "name": "Segment1", + "type": "n8n-nodes-base.segment", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "segmentApi": { + "id": "52", + "name": "Segment creds" + } + }, + "id": "09f95724-5ae1-4bc3-9aa0-7010129aa7da" + }, + { + "parameters": { + "resource": "track", + "operation": "page", + "userId": "rzfu5AbHm7U3rj7jMdqsjW", + "name": "landing" + }, + "name": "Segment2", + "type": "n8n-nodes-base.segment", + "typeVersion": 1, + "position": [650, 400], + "credentials": { + "segmentApi": { + "id": "52", + "name": "Segment creds" + } + }, + "id": "f80c0402-ca47-417c-bc0c-b5d4b0b463fc" + }, + { + "parameters": { + "resource": "group", + "userId": "rzfu5AbHm7U3rj7jMdqsjW", + "groupId": "=FixedGroupID", + "traits": { + "traitsUi": [ + { + "key": "mode", + "value": "test" + } + ] + } + }, + "name": "Segment3", + "type": "n8n-nodes-base.segment", + "typeVersion": 1, + "position": [500, 550], + "credentials": { + "segmentApi": { + "id": "52", + "name": "Segment creds" + } + }, + "id": "58a1a209-2fbe-48aa-8b8f-186ce492cd12" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Segment", + "type": "main", + "index": 0 + }, + { + "node": "Segment1", + "type": "main", + "index": 0 + }, + { + "node": "Segment3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Segment1": { + "main": [ + [ + { + "node": "Segment2", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/64.json b/packages/testing/playwright/test-workflows/workflows/64.json new file mode 100644 index 0000000000..9bc702ddcb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/64.json @@ -0,0 +1,84 @@ +{ + "createdAt": "2021-02-25T09:24:41.132Z", + "updatedAt": "2021-02-25T09:24:41.132Z", + "id": "64", + "name": "SIGNL4:Alert:send resolve", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e54d4fc1-752f-436e-8c86-139e373a54de" + }, + { + "parameters": { + "message": "=test{{Date.now()}}", + "additionalFields": { + "title": "=Title{{Date.now()}}" + } + }, + "name": "SIGNL4", + "type": "n8n-nodes-base.signl4", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "signl4Api": { + "id": "53", + "name": "Signal4 creds" + } + }, + "id": "870742ca-8ae9-44f6-a2e0-b6ec40298cd2" + }, + { + "parameters": { + "operation": "resolve", + "externalId": "={{$node[\"SIGNL4\"].json[\"eventId\"]}}" + }, + "name": "SIGNL", + "type": "n8n-nodes-base.signl4", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "signl4Api": { + "id": "53", + "name": "Signal4 creds" + } + }, + "id": "95ab047b-4159-45fd-9ec6-2d1b9c326a5f" + } + ], + "connections": { + "SIGNL4": { + "main": [ + [ + { + "node": "SIGNL", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "SIGNL4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/65.json b/packages/testing/playwright/test-workflows/workflows/65.json new file mode 100644 index 0000000000..1245284e69 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/65.json @@ -0,0 +1,110 @@ +{ + "createdAt": "2021-02-25T09:43:01.461Z", + "updatedAt": "2021-02-25T09:43:01.461Z", + "id": "65", + "name": "Spontit:Push:create", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "e33d511e-ced8-4880-a890-e943c6aab5dc" + }, + { + "parameters": { + "content": "=Content {{Date.now()}}", + "additionalFields": { + "pushTitle": "=TestNotif {{Date.now()}}" + } + }, + "name": "Spontit", + "type": "n8n-nodes-base.spontit", + "typeVersion": 1, + "position": [470, 300], + "credentials": { + "spontitApi": { + "id": "54", + "name": "Spontit creds" + } + }, + "id": "06d02833-8870-4d12-a60f-59c1763f0361" + }, + { + "parameters": { + "url": "={{$node[\"Spontit\"].json[\"message\"].replace(\"Pushed! Available at \",\"\")}}", + "responseFormat": "string", + "options": {} + }, + "name": "HTTP Request", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 1, + "position": [650, 300], + "id": "e22a1da8-01dc-476f-b449-527888f5d58e" + }, + { + "parameters": { + "extractionValues": { + "values": [ + { + "key": "data-subscription", + "cssSelector": "#loadApp_script[data-subscription]", + "returnValue": "attribute", + "attribute": "data-subscription" + } + ] + }, + "options": {} + }, + "name": "HTML Extract", + "type": "n8n-nodes-base.htmlExtract", + "typeVersion": 1, + "position": [850, 300], + "id": "641a91ef-f7a2-4f1a-8876-bd0b0cf133cb" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Spontit", + "type": "main", + "index": 0 + } + ] + ] + }, + "Spontit": { + "main": [ + [ + { + "node": "HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "main": [ + [ + { + "node": "HTML Extract", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/66.json b/packages/testing/playwright/test-workflows/workflows/66.json new file mode 100644 index 0000000000..6d4556f5c2 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/66.json @@ -0,0 +1,147 @@ +{ + "createdAt": "2021-02-25T10:14:44.063Z", + "updatedAt": "2021-02-25T10:14:44.063Z", + "id": "66", + "name": "Storyblok:Story:get getAll publish unpublish", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "0da0a738-e19c-4837-af8b-0a1ae6cd7943" + }, + { + "parameters": { + "source": "managementApi", + "operation": "getAll", + "space": 106530, + "returnAll": true, + "filters": {} + }, + "name": "Storyblok", + "type": "n8n-nodes-base.storyblok", + "typeVersion": 1, + "position": [440, 300], + "credentials": { + "storyblokManagementApi": { + "id": "56", + "name": "Storyblok Management creds" + } + }, + "id": "76bbeb75-0065-41cf-943e-2cdf4cdc53b1" + }, + { + "parameters": { + "source": "managementApi", + "space": 106530, + "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}" + }, + "name": "Storyblok1", + "type": "n8n-nodes-base.storyblok", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "storyblokManagementApi": { + "id": "56", + "name": "Storyblok Management creds" + } + }, + "id": "27852b2f-f00f-4dee-8df5-30f7aaabbfc2" + }, + { + "parameters": { + "source": "managementApi", + "operation": "publish", + "space": 106530, + "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}", + "options": {} + }, + "name": "Storyblok2", + "type": "n8n-nodes-base.storyblok", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "storyblokManagementApi": { + "id": "56", + "name": "Storyblok Management creds" + } + }, + "id": "fa39cb57-fe77-46c3-9ac9-82d3c3b6fced" + }, + { + "parameters": { + "source": "managementApi", + "operation": "unpublish", + "space": 106530, + "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}" + }, + "name": "Storyblok3", + "type": "n8n-nodes-base.storyblok", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "storyblokManagementApi": { + "id": "56", + "name": "Storyblok Management creds" + } + }, + "id": "12a65877-f3a5-46ae-b033-0296c9c23314" + } + ], + "connections": { + "Storyblok": { + "main": [ + [ + { + "node": "Storyblok1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Storyblok1": { + "main": [ + [ + { + "node": "Storyblok2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Storyblok2": { + "main": [ + [ + { + "node": "Storyblok3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Storyblok", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/67.json b/packages/testing/playwright/test-workflows/workflows/67.json new file mode 100644 index 0000000000..ed8358aee4 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/67.json @@ -0,0 +1,719 @@ +{ + "createdAt": "2021-02-25T11:13:34.019Z", + "updatedAt": "2021-05-03T07:55:48.432Z", + "id": "67", + "name": " Twist:Channel:create update get getAll archive unarchive delete:MessageConversation:create get getAll update delete:Thread:create get update getAll delete:Comment:create get update getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "27f84602-beb4-4f88-8218-2a97b75c2224" + }, + { + "parameters": { + "resource": "channel", + "workspaceId": 164330, + "name": "=TestChannel{{Date.now()}}", + "additionalFields": {} + }, + "name": "Twist", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "5f8b0940-95b9-4ceb-b582-978ecc2a3054" + }, + { + "parameters": { + "resource": "channel", + "operation": "update", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdatedChannel{{Date.now()}}" + } + }, + "name": "Twist1", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "ae38c81e-4500-4794-a2be-dd13baec5a12" + }, + { + "parameters": { + "resource": "channel", + "operation": "get", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" + }, + "name": "Twist2", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1450, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "13a50551-66d2-41c8-a223-b668d1760bb9" + }, + { + "parameters": { + "resource": "channel", + "operation": "getAll", + "workspaceId": 164330, + "limit": 1, + "filters": {} + }, + "name": "Twist3", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1600, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "ccd8ba04-a775-4726-8fd5-6bd7aab479be" + }, + { + "parameters": { + "workspaceId": 164330, + "conversationId": 1067233, + "content": "=Message {{Date.now()}}", + "additionalFields": {} + }, + "name": "Twist4", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [400, 450], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "d71aab63-c8fc-4707-b1ef-e65c86b57889" + }, + { + "parameters": { + "resource": "channel", + "operation": "archive", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" + }, + "name": "Twist5", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1750, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "ad43fda9-1a8c-4742-a6f4-e06fd9ca6b71" + }, + { + "parameters": { + "resource": "channel", + "operation": "unarchive", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" + }, + "name": "Twist6", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1900, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "7694c0d8-a552-4447-b596-4fc4028286ca" + }, + { + "parameters": { + "resource": "channel", + "operation": "archive", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" + }, + "name": "Twist7", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [2050, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "117e67bf-96e6-45e2-815a-39a061c0b70f" + }, + { + "parameters": { + "resource": "channel", + "operation": "delete", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" + }, + "name": "Twist8", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [2200, 300], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "9f2ac87f-563d-46ea-9e84-20106ae3d298" + }, + { + "parameters": { + "operation": "get", + "id": "={{$node[\"Twist4\"].json[\"id\"]}}" + }, + "name": "Twist9", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "f18044fe-f54c-4508-8d7b-fd207d7592d7" + }, + { + "parameters": { + "operation": "getAll", + "workspaceId": 164330, + "conversationId": 1067233, + "additionalFields": { + "limit": 1 + } + }, + "name": "Twist10", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [800, 450], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "9af8b264-9fd4-42d2-adb3-11c31cc4a2bc" + }, + { + "parameters": { + "operation": "update", + "id": "={{$node[\"Twist4\"].json[\"id\"]}}", + "updateFields": { + "actionsUi": { + "actionValues": [ + { + "action": "open_url", + "button_text": "community ?", + "type": "action", + "url": "http://community.n8n.io" + } + ] + } + } + }, + "name": "Twist11", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1000, 450], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "bee483bf-33e8-4dda-992a-facd5cf7e678" + }, + { + "parameters": { + "operation": "delete", + "id": "={{$node[\"Twist4\"].json[\"id\"]}}" + }, + "name": "Twist12", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1200, 450], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "7069faaa-b9f0-4a53-8a0f-8496697b8a0c" + }, + { + "parameters": { + "resource": "thread", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", + "title": "=Thread{{Date.now()}}", + "content": "test", + "additionalFields": {} + }, + "name": "Twist13", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [550, 150], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "b7484a76-76e7-4b7f-9702-efd247ce3b7f" + }, + { + "parameters": { + "resource": "thread", + "operation": "get", + "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}" + }, + "name": "Twist14", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [700, 150], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "6d2214c7-4046-48ad-8968-bd94b4fead5f" + }, + { + "parameters": { + "resource": "thread", + "operation": "update", + "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", + "updateFields": { + "content": "Updated Content" + } + }, + "name": "Twist15", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [850, 150], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "f18cc9f8-8019-45a6-b129-4503d5e8aabe" + }, + { + "parameters": { + "resource": "thread", + "operation": "delete", + "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}" + }, + "name": "Twist16", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1150, 150], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "0d712781-9323-48c6-9cc7-72cb43bb73d1" + }, + { + "parameters": { + "resource": "thread", + "operation": "getAll", + "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", + "limit": 1, + "filters": {} + }, + "name": "Twist17", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1000, 150], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "6921bbfc-1f9c-4939-874d-d507221603f1" + }, + { + "parameters": { + "resource": "comment", + "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", + "content": "=Comment{{Date.now()}}", + "additionalFields": {} + }, + "name": "Twist18", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [700, 0], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "0c6fb7ef-6ed1-4361-860e-757cbfcaf1d6" + }, + { + "parameters": { + "resource": "comment", + "operation": "get", + "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}" + }, + "name": "Twist19", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [850, 0], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "6a268279-ca4a-4a06-ab80-79a9a7eb46bd" + }, + { + "parameters": { + "resource": "comment", + "operation": "update", + "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}", + "updateFields": { + "content": "Updated Content" + } + }, + "name": "Twist20", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1000, 0], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "21e3d0e7-7334-4540-88ed-bacb111bb3c4" + }, + { + "parameters": { + "resource": "comment", + "operation": "getAll", + "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", + "limit": 1, + "filters": {} + }, + "name": "Twist21", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1150, 0], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "1a4f872d-f05f-474f-a7d9-97f2f046533b" + }, + { + "parameters": { + "resource": "comment", + "operation": "delete", + "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}" + }, + "name": "Twist22", + "type": "n8n-nodes-base.twist", + "typeVersion": 1, + "position": [1300, 0], + "credentials": { + "twistOAuth2Api": { + "id": "58", + "name": "Twist OAuth2 creds" + } + }, + "id": "d2496300-155c-4bd3-8acd-1d3c068dba37" + } + ], + "connections": { + "Twist": { + "main": [ + [ + { + "node": "Twist13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist1": { + "main": [ + [ + { + "node": "Twist2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist2": { + "main": [ + [ + { + "node": "Twist3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Twist", + "type": "main", + "index": 0 + }, + { + "node": "Twist4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist3": { + "main": [ + [ + { + "node": "Twist5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist5": { + "main": [ + [ + { + "node": "Twist6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist6": { + "main": [ + [ + { + "node": "Twist7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist7": { + "main": [ + [ + { + "node": "Twist8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist4": { + "main": [ + [ + { + "node": "Twist9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist9": { + "main": [ + [ + { + "node": "Twist10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist10": { + "main": [ + [ + { + "node": "Twist11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist11": { + "main": [ + [ + { + "node": "Twist12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist13": { + "main": [ + [ + { + "node": "Twist18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist14": { + "main": [ + [ + { + "node": "Twist15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist15": { + "main": [ + [ + { + "node": "Twist17", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist16": { + "main": [ + [ + { + "node": "Twist1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist17": { + "main": [ + [ + { + "node": "Twist16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist18": { + "main": [ + [ + { + "node": "Twist19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist19": { + "main": [ + [ + { + "node": "Twist20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist20": { + "main": [ + [ + { + "node": "Twist21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist21": { + "main": [ + [ + { + "node": "Twist22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Twist22": { + "main": [ + [ + { + "node": "Twist14", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/68.json b/packages/testing/playwright/test-workflows/workflows/68.json new file mode 100644 index 0000000000..21bb48b962 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/68.json @@ -0,0 +1,117 @@ +{ + "createdAt": "2021-02-25T12:44:44.483Z", + "updatedAt": "2021-02-25T12:44:52.927Z", + "id": "68", + "name": "CircleCI:Pipeline:getAll get trigger", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "ccd210e8-4155-4e27-bcda-8ecde0543afe" + }, + { + "parameters": { + "operation": "getAll", + "vcs": "github", + "projectSlug": "nodemationqa/nodeQA", + "limit": 1, + "filters": {} + }, + "name": "CircleCI", + "type": "n8n-nodes-base.circleCi", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "circleCiApi": { + "id": "59", + "name": "CircleCI creds" + } + }, + "id": "72b39f65-9aef-4dd2-9887-a68e247e5c0d" + }, + { + "parameters": { + "vcs": "github", + "projectSlug": "nodemationqa/nodeQA" + }, + "name": "CircleCI1", + "type": "n8n-nodes-base.circleCi", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "circleCiApi": { + "id": "59", + "name": "CircleCI creds" + } + }, + "id": "094f3916-c071-47af-9d66-d54d88a826ff" + }, + { + "parameters": { + "operation": "trigger", + "vcs": "github", + "projectSlug": "nodemationqa/nodeQA", + "additionalFields": { + "branch": "main" + } + }, + "name": "CircleCI2", + "type": "n8n-nodes-base.circleCi", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "circleCiApi": { + "id": "59", + "name": "CircleCI creds" + } + }, + "id": "eeb564f3-d08d-4fdb-8c7a-19937bcb2817" + } + ], + "connections": { + "CircleCI": { + "main": [ + [ + { + "node": "CircleCI1", + "type": "main", + "index": 0 + } + ] + ] + }, + "CircleCI1": { + "main": [ + [ + { + "node": "CircleCI2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "CircleCI", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/69.json b/packages/testing/playwright/test-workflows/workflows/69.json new file mode 100644 index 0000000000..fe14e80630 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/69.json @@ -0,0 +1,221 @@ +{ + "createdAt": "2021-02-25T13:03:37.942Z", + "updatedAt": "2021-07-14T13:44:25.847Z", + "id": "69", + "name": "CoinGecko:Coin:get getAll history candlesick market marketChart price ticker:Event:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [230, 430], + "id": "a288470d-d151-4273-a50d-31c76cd1a2ce" + }, + { + "parameters": { + "resource": "event", + "limit": 1, + "options": { + "upcoming_events_only": false + } + }, + "name": "CoinGecko", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [400, 290], + "notes": "CAP_RESULTS_LENGTH=1", + "id": "b3b33313-3b7b-4569-aec4-77854b0c1980" + }, + { + "parameters": { + "limit": 1 + }, + "name": "CoinGecko1", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [400, 550], + "alwaysOutputData": true, + "id": "e8e650b8-2122-4974-ba3e-74889528cd74" + }, + { + "parameters": { + "operation": "history", + "coinId": "bitcoin", + "date": "2021-02-24T23:00:00.000Z", + "options": { + "localization": false + } + }, + "name": "CoinGecko2", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [770, 330], + "alwaysOutputData": true, + "id": "725e7306-f2dc-4c05-b6d8-ed75a394953b" + }, + { + "parameters": { + "operation": "get", + "coinId": "bitcoin", + "options": { + "localization": false + } + }, + "name": "CoinGecko3", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [630, 330], + "alwaysOutputData": true, + "id": "635e5c09-c4ca-4c05-ae93-7613f12c608a" + }, + { + "parameters": { + "operation": "candlestick", + "baseCurrency": "bitcoin", + "quoteCurrency": "eur", + "days": "1" + }, + "name": "CoinGecko4", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [910, 330], + "alwaysOutputData": true, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "54fc5a2b-34a8-4f41-a9dc-b4b156b2448f" + }, + { + "parameters": { + "operation": "market", + "baseCurrency": "btc", + "limit": 1, + "options": {} + }, + "name": "CoinGecko5", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [630, 480], + "id": "43972652-a7ac-4eb2-92b3-d5ea6328b135" + }, + { + "parameters": { + "operation": "marketChart", + "baseCurrency": "oxbitcoin", + "quoteCurrency": "btc", + "days": "1" + }, + "name": "CoinGecko6", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [630, 630], + "notes": "CAP_RESULTS_LENGTH=1", + "id": "857b16d9-deab-4a5c-9d6d-d79f83cc566e" + }, + { + "parameters": { + "operation": "price", + "baseCurrencies": ["ethereum-classic"], + "quoteCurrencies": ["btc"], + "options": {} + }, + "name": "CoinGecko7", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [630, 780], + "id": "c6d8a963-5bac-4841-a612-3d21b6ea71b6" + }, + { + "parameters": { + "operation": "ticker", + "coinId": "bitcoin", + "limit": 1, + "options": {} + }, + "name": "CoinGecko8", + "type": "n8n-nodes-base.coinGecko", + "typeVersion": 1, + "position": [630, 930], + "notes": "IGNORED_PROPERTIES=target_coin_id", + "id": "16097486-6aaf-476a-8c93-8bfbbd25b056" + } + ], + "connections": { + "CoinGecko1": { + "main": [ + [ + { + "node": "CoinGecko3", + "type": "main", + "index": 0 + }, + { + "node": "CoinGecko5", + "type": "main", + "index": 0 + }, + { + "node": "CoinGecko6", + "type": "main", + "index": 0 + }, + { + "node": "CoinGecko7", + "type": "main", + "index": 0 + }, + { + "node": "CoinGecko8", + "type": "main", + "index": 0 + } + ] + ] + }, + "CoinGecko3": { + "main": [ + [ + { + "node": "CoinGecko2", + "type": "main", + "index": 0 + } + ] + ] + }, + "CoinGecko2": { + "main": [ + [ + { + "node": "CoinGecko4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "CoinGecko1", + "type": "main", + "index": 0 + }, + { + "node": "CoinGecko", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/70.json b/packages/testing/playwright/test-workflows/workflows/70.json new file mode 100644 index 0000000000..76c8ac96ff --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/70.json @@ -0,0 +1,204 @@ +{ + "createdAt": "2021-02-25T13:38:22.940Z", + "updatedAt": "2021-02-25T13:38:22.940Z", + "id": "70", + "name": "Contentful-delivery-api:locale:getAll:entry:getAll:ContentType:get:Asset:getAll get:Space:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [260, 390], + "id": "92fcb1c3-e481-4350-910b-99de6956a87d" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": { + "content_type": "blogPost" + } + }, + "name": "Contentful", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [550, 250], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "e85d9486-96dc-4f89-9ab6-b0b91b1968df" + }, + { + "parameters": { + "resource": "contentType", + "contentTypeId": "blogPost", + "additionalFields": {} + }, + "name": "Contentful1", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [550, 420], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "4958d8ff-37dd-4086-a90b-fcf608a48d26" + }, + { + "parameters": { + "resource": "asset", + "limit": 1, + "additionalFields": {} + }, + "name": "Contentful2", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [550, 570], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "4dabb763-4379-4d65-b484-0dc528535896" + }, + { + "parameters": { + "resource": "asset", + "operation": "get", + "assetId": "5UvpPFo279OoVXHLRXqlo9" + }, + "name": "Contentful3", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [700, 570], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "disabled": true, + "id": "cd08d703-328c-4f6e-a0e5-5681f2aa208a" + }, + { + "parameters": { + "entryId": "={{$node[\"Contentful\"].json[\"author\"][\"sys\"][\"id\"]}}" + }, + "name": "Contentful4", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [700, 250], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "disabled": true, + "id": "f53c8f63-386c-491a-b5f9-119f27aaa421" + }, + { + "parameters": { + "resource": "locale", + "limit": 1 + }, + "name": "Contentful5", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [550, 100], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "429edf92-f2cf-4897-ba31-9413f57b0a46" + }, + { + "parameters": { + "resource": "space" + }, + "name": "Contentful6", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [550, 730], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "36e76b3d-fb38-4abe-a4b9-81c8604f87f8" + } + ], + "connections": { + "Contentful": { + "main": [ + [ + { + "node": "Contentful4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Contentful2": { + "main": [ + [ + { + "node": "Contentful3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Contentful5", + "type": "main", + "index": 0 + }, + { + "node": "Contentful", + "type": "main", + "index": 0 + }, + { + "node": "Contentful1", + "type": "main", + "index": 0 + }, + { + "node": "Contentful2", + "type": "main", + "index": 0 + }, + { + "node": "Contentful6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/71.json b/packages/testing/playwright/test-workflows/workflows/71.json new file mode 100644 index 0000000000..e3150caa31 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/71.json @@ -0,0 +1,211 @@ +{ + "createdAt": "2021-02-25T13:44:10.456Z", + "updatedAt": "2021-02-25T13:44:14.960Z", + "id": "71", + "name": "Contentful-preview-api:locale:getAll:entry:getAll:ContentType:get:Asset:getAll get:Space:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [300, 450], + "id": "b4ecfdaf-3dd8-4462-a893-00fcf0965acb" + }, + { + "parameters": { + "source": "previewApi", + "operation": "getAll", + "limit": 1, + "additionalFields": { + "content_type": "blogPost" + } + }, + "name": "Contentful", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [510, 130], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "6f0e510a-f47b-406b-a3e4-50160a3837f8" + }, + { + "parameters": { + "source": "previewApi", + "resource": "contentType", + "contentTypeId": "blogPost", + "additionalFields": {} + }, + "name": "Contentful1", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [510, 450], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "f667eb16-7c5e-42a8-b94a-465a0c17de0a" + }, + { + "parameters": { + "source": "previewApi", + "resource": "asset", + "limit": 1, + "additionalFields": {} + }, + "name": "Contentful2", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [510, 300], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "9b9910ed-bcbb-4126-8625-d5599ff716a3" + }, + { + "parameters": { + "source": "previewApi", + "resource": "asset", + "operation": "get", + "assetId": "5UvpPFo279OoVXHLRXqlo9" + }, + "name": "Contentful3", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "disabled": true, + "id": "0c26e50d-0829-41dc-8477-b93a812ff7cd" + }, + { + "parameters": { + "source": "previewApi", + "entryId": "={{$node[\"Contentful\"].json[\"author\"][\"sys\"][\"id\"]}}" + }, + "name": "Contentful4", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [660, 130], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "disabled": true, + "id": "c6c48d22-6a1f-4c2c-82eb-2c7c0a43d3e6" + }, + { + "parameters": { + "source": "previewApi", + "resource": "locale", + "limit": 1 + }, + "name": "Contentful5", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [510, 750], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "0ff365a7-b88e-4bc2-965f-4198dc2287ca" + }, + { + "parameters": { + "source": "previewApi", + "resource": "space" + }, + "name": "Contentful6", + "type": "n8n-nodes-base.contentful", + "typeVersion": 1, + "position": [510, 610], + "credentials": { + "contentfulApi": { + "id": "47", + "name": "Contenful creds" + } + }, + "id": "43ab9aa7-dcef-416b-92fc-690040a35086" + } + ], + "connections": { + "Contentful": { + "main": [ + [ + { + "node": "Contentful4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Contentful2": { + "main": [ + [ + { + "node": "Contentful3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Contentful1", + "type": "main", + "index": 0 + }, + { + "node": "Contentful", + "type": "main", + "index": 0 + }, + { + "node": "Contentful5", + "type": "main", + "index": 0 + }, + { + "node": "Contentful2", + "type": "main", + "index": 0 + }, + { + "node": "Contentful6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/72.json b/packages/testing/playwright/test-workflows/workflows/72.json new file mode 100644 index 0000000000..f6a2ba19c0 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/72.json @@ -0,0 +1,530 @@ +{ + "createdAt": "2021-02-25T14:32:07.257Z", + "updatedAt": "2021-11-12T13:03:17.136Z", + "id": "72", + "name": "Zulip:Message:sendPrivate update updateFile sendStream get delete:Stream:create getAll getSubscribed update delete:user:getAll get update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 460], + "id": "b29fb793-aa1e-4659-a887-a6444a072274" + }, + { + "parameters": { + "to": ["nodeqa@n8n.io"], + "content": "=Message {{Date.now()}}" + }, + "name": "Zulip", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [430, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "2eafb3ef-51ac-4153-ba65-f1c736be64f3" + }, + { + "parameters": { + "operation": "update", + "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}", + "updateFields": { + "content": "=Update content {{Date.now()}}" + } + }, + "name": "Zulip1", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [590, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "70a21ba0-3781-4598-86c8-24fa97d813b2" + }, + { + "parameters": { + "operation": "sendStream", + "stream": 278954, + "topic": "topic demonstration", + "content": "Test Stream message {{Date.now()}}" + }, + "name": "Zulip2", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [740, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "b631cfd9-4085-4a3f-9898-f3a2dd6053cc" + }, + { + "parameters": { + "operation": "get", + "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}" + }, + "name": "Zulip3", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [890, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "bbfcd095-ab13-47d0-8826-cad588bb4269" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}" + }, + "name": "Zulip4", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [1040, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "af456d26-456e-4c8a-9df4-4dd5a9bd4f66" + }, + { + "parameters": { + "operation": "delete", + "messageId": "={{$node[\"Zulip2\"].json[\"id\"]}}" + }, + "name": "Zulip5", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "8167982f-4c29-4767-9b2f-4c41d3c1d6da" + }, + { + "parameters": { + "operation": "updateFile" + }, + "name": "Zulip6", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [590, 470], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "27e360f0-add1-4478-b971-47cfaee55374" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [430, 470], + "id": "ca173086-6491-4487-a201-8e7b6ec08c3a" + }, + { + "parameters": { + "resource": "stream", + "subscriptions": { + "properties": [ + { + "name": "StreamTest", + "description": "testing stream from n8n" + } + ] + }, + "additionalFields": {} + }, + "name": "Zulip7", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [430, 620], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "53b92b41-c256-45d1-af57-73cdc927e4ad" + }, + { + "parameters": { + "resource": "stream", + "operation": "getAll", + "additionalFields": { + "includeAllActive": false, + "includeDefault": false, + "includePublic": false + } + }, + "name": "Zulip8", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [600, 620], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "95060b52-7fca-4fe6-89b7-3b95630d3876" + }, + { + "parameters": { + "resource": "stream", + "operation": "update", + "streamId": "={{$node[\"Function\"].json[\"stream_id\"]}}", + "additionalFields": { + "newName": "=UpdateStream{{Date.now()}}" + } + }, + "name": "Zulip9", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [910, 620], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "afcf6e21-92b0-4b87-8de3-0fc7a309ab45" + }, + { + "parameters": { + "functionCode": "\nreturn [items[0]];" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [750, 620], + "notesInFlow": true, + "notes": "Convert multiple result into one", + "id": "281d2d4f-d8d9-4b9f-a150-f8650775d89f" + }, + { + "parameters": { + "resource": "stream", + "operation": "getSubscribed", + "additionalFields": {} + }, + "name": "Zulip10", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [590, 760], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "6193ce51-b480-44e4-ab58-4c4045432e7d" + }, + { + "parameters": { + "resource": "stream", + "operation": "delete", + "streamId": "={{$node[\"Function\"].json[\"stream_id\"]}}" + }, + "name": "Zulip11", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [1050, 620], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "8922c332-3948-4b92-a947-b06327a7cc95" + }, + { + "parameters": { + "resource": "user", + "operation": "getAll", + "additionalFields": {} + }, + "name": "Zulip12", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [440, 910], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "c2eb822b-4473-46ca-a70e-0ab4b7e59647" + }, + { + "parameters": { + "resource": "user", + "operation": "get", + "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", + "additionalFields": {} + }, + "name": "Zulip13", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [590, 910], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "id": "77661e37-ad74-4274-9bdb-c809305369a5" + }, + { + "parameters": { + "resource": "user", + "operation": "update", + "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", + "additionalFields": { + "fullName": "mario" + } + }, + "name": "Zulip14", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [750, 910], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "disabled": true, + "id": "cb5c1ade-b500-48a9-a572-08b57316739f" + }, + { + "parameters": { + "resource": "user", + "operation": "update", + "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", + "additionalFields": { + "fullName": "nodeqa" + } + }, + "name": "Zulip15", + "type": "n8n-nodes-base.zulip", + "typeVersion": 1, + "position": [890, 910], + "credentials": { + "zulipApi": { + "id": "60", + "name": "Zulip creds" + } + }, + "disabled": true, + "id": "bd6174d3-edf6-438c-b60b-b18312458624" + } + ], + "connections": { + "Zulip": { + "main": [ + [ + { + "node": "Zulip1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip1": { + "main": [ + [ + { + "node": "Zulip2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip2": { + "main": [ + [ + { + "node": "Zulip3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip3": { + "main": [ + [ + { + "node": "Zulip4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip4": { + "main": [ + [ + { + "node": "Zulip5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Zulip6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + }, + { + "node": "Zulip", + "type": "main", + "index": 0 + }, + { + "node": "Zulip7", + "type": "main", + "index": 0 + }, + { + "node": "Zulip12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip7": { + "main": [ + [ + { + "node": "Zulip8", + "type": "main", + "index": 0 + }, + { + "node": "Zulip10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip8": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Function": { + "main": [ + [ + { + "node": "Zulip9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip9": { + "main": [ + [ + { + "node": "Zulip11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip12": { + "main": [ + [ + { + "node": "Zulip13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip13": { + "main": [ + [ + { + "node": "Zulip14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zulip14": { + "main": [ + [ + { + "node": "Zulip15", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/73.json b/packages/testing/playwright/test-workflows/workflows/73.json new file mode 100644 index 0000000000..0cf87acceb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/73.json @@ -0,0 +1,761 @@ +{ + "createdAt": "2021-02-25T15:49:55.037Z", + "updatedAt": "2021-06-07T14:53:16.628Z", + "id": "73", + "name": "Youtube:Channel:get getAll update:Playlist:create update getAll get delete:PlaylistItem:add getAll get delete:videoCategory:getAll:Video:rate get upload update delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [310, 550], + "id": "2ee04975-ff22-40e0-a3a9-d2542266c3bf" + }, + { + "parameters": { + "limit": 1, + "filters": { + "id": "UCkdph8FDLpq2UD2i_OlwErA" + }, + "options": {} + }, + "name": "YouTube", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "8688bf50-6db1-432a-851e-fa4cb2f33439" + }, + { + "parameters": { + "operation": "get", + "channelId": "UCiHVTkJtWSdc9N3h0nUGWLg" + }, + "name": "YouTube1", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "18508d2b-7662-4eb0-bb2b-82eebcd49f11" + }, + { + "parameters": { + "operation": "update", + "channelId": "={{$node[\"YouTube\"].json[\"id\"]}}", + "updateFields": { + "brandingSettingsUi": { + "channelSettingsValues": { + "channel": { + "description": "=Update description {{Date.now()}}" + } + } + } + } + }, + "name": "YouTube2", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "83fcbb4e-5ce7-470d-8b11-8f02964774f6" + }, + { + "parameters": { + "operation": "uploadBanner", + "channelId": "UCkdph8FDLpq2UD2i_OlwErA" + }, + "name": "YouTube3", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1250, 300], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "disabled": true, + "id": "94865deb-30fa-4250-8637-ce93c0bc12d7" + }, + { + "parameters": { + "resource": "playlist", + "operation": "create", + "title": "=Test{{Date.now()}}", + "options": {} + }, + "name": "YouTube4", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [500, 450], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "ca4cb125-1083-4e44-a05a-76191b2c6dd4" + }, + { + "parameters": { + "resource": "playlist", + "operation": "update", + "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", + "title": "=UpdatePlaylist{{Date.now()}}", + "updateFields": {} + }, + "name": "YouTube5", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [800, 450], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "55cdf544-6908-4fc8-afad-2752f2373a14" + }, + { + "parameters": { + "resource": "playlist", + "limit": 1, + "filters": {}, + "options": {} + }, + "name": "YouTube6", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1860, 450], + "alwaysOutputData": true, + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "7275ae09-2a2b-4a79-8a11-6b37b51c3426" + }, + { + "parameters": { + "resource": "playlistItem", + "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", + "videoId": "sJO3b0WXm8I", + "options": {} + }, + "name": "YouTube9", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [950, 550], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "ed7dcec9-c5d5-4627-a859-0475ab304c88" + }, + { + "parameters": { + "resource": "playlistItem", + "operation": "getAll", + "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", + "part": ["id", "status", "contentDetails"], + "limit": 1, + "options": {} + }, + "name": "YouTube10", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1250, 550], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "c02c85b3-59e4-4fcf-ad40-1fd9cad8c2f7" + }, + { + "parameters": { + "resource": "playlistItem", + "operation": "get", + "playlistItemId": "={{$node[\"YouTube9\"].json[\"id\"]}}", + "part": ["contentDetails", "id", "status"], + "options": {} + }, + "name": "YouTube11", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1400, 550], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "13002ca6-7817-41c3-b1fe-0d078c8e82f9" + }, + { + "parameters": { + "resource": "playlistItem", + "operation": "delete", + "playlistItemId": "={{$node[\"YouTube9\"].json[\"id\"]}}", + "options": {} + }, + "name": "YouTube12", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1700, 550], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "b0e8f742-b143-4eab-b227-482b3f772e3e" + }, + { + "parameters": { + "resource": "video", + "operation": "rate", + "videoId": "sJO3b0WXm8I", + "rating": "like" + }, + "name": "YouTube13", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [500, 800], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "c13bc29b-3e16-4d0b-ba98-24156e1d64b0" + }, + { + "parameters": { + "resource": "video", + "operation": "get", + "videoId": "sJO3b0WXm8I", + "part": ["status", "id", "snippet"], + "options": {} + }, + "name": "YouTube14", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [800, 800], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "dd846141-f074-41a3-b9f0-4e32ec04639e" + }, + { + "parameters": { + "resource": "video", + "operation": "upload", + "title": "Earth spin", + "regionCode": "DE", + "categoryId": "27", + "options": {} + }, + "name": "YouTube15", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1250, 800], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "disabled": true, + "id": "4bd4cca1-e76c-4889-b5df-5d2eefe7d74c" + }, + { + "parameters": { + "url": "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4", + "responseFormat": "file", + "options": {} + }, + "name": "HTTP Request", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 1, + "position": [950, 800], + "disabled": true, + "id": "b78b84af-4759-42b8-812a-af46ab04d6fb" + }, + { + "parameters": { + "resource": "video", + "operation": "update", + "videoId": "={{$node[\"YouTube15\"].json[\"id\"]}}", + "title": "=Updated Earth spin", + "regionCode": "DE", + "categoryId": "27", + "updateFields": {} + }, + "name": "YouTube16", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1400, 800], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "disabled": true, + "id": "cdb2885f-ab9a-41b1-8e84-071aa040e91a" + }, + { + "parameters": { + "resource": "video", + "operation": "delete", + "videoId": "={{$node[\"YouTube15\"].json[\"id\"]}}", + "options": {} + }, + "name": "YouTube17", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [1690, 800], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "disabled": true, + "id": "15ebb1e6-b8f5-458c-803a-ddd62105b07c" + }, + { + "parameters": { + "resource": "videoCategory", + "regionCode": "DE", + "limit": 1 + }, + "name": "YouTube18", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [500, 630], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "8ec4326f-f615-4acd-bedf-7d138051058a" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [1100, 300], + "disabled": true, + "id": "01e62fe7-5350-4def-9640-18171cbde303" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second", + "type": "n8n-nodes-base.function", + "position": [650, 300], + "typeVersion": 1, + "id": "bea9b966-028f-4891-892b-30415cb38452" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second1", + "type": "n8n-nodes-base.function", + "position": [650, 450], + "typeVersion": 1, + "id": "74460a7d-956c-4a9c-8357-de6b2d1e6076" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second2", + "type": "n8n-nodes-base.function", + "position": [1100, 550], + "typeVersion": 1, + "id": "a565a893-fdb1-45f5-96b9-846146a10c14" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second3", + "type": "n8n-nodes-base.function", + "position": [1550, 550], + "typeVersion": 1, + "id": "4659b2a6-7c8d-4290-9f57-b17e9c566c50" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second4", + "type": "n8n-nodes-base.function", + "position": [650, 800], + "typeVersion": 1, + "id": "15cca754-b296-4cb5-93d1-efd315175e9e" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second5", + "type": "n8n-nodes-base.function", + "position": [1110, 800], + "typeVersion": 1, + "disabled": true, + "id": "caf5b31c-9e80-4796-8ded-c9e1401adbd8" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.5 second6", + "type": "n8n-nodes-base.function", + "position": [1550, 800], + "typeVersion": 1, + "disabled": true, + "id": "8b08f732-62ba-48d3-980b-30b225c6a029" + }, + { + "parameters": { + "resource": "playlist", + "operation": "delete", + "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", + "options": {} + }, + "name": "YouTube7", + "type": "n8n-nodes-base.youTube", + "typeVersion": 1, + "position": [2030, 450], + "credentials": { + "youTubeOAuth2Api": { + "id": "62", + "name": "YouTube OAuth2 creds" + } + }, + "id": "2b8b1d2f-5864-481d-a735-700380ccb2ea" + } + ], + "connections": { + "YouTube": { + "main": [ + [ + { + "node": "YouTube2", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube1": { + "main": [ + [ + { + "node": "Sleep 0.5 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube4": { + "main": [ + [ + { + "node": "Sleep 0.5 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube5": { + "main": [ + [ + { + "node": "YouTube9", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube6": { + "main": [ + [ + { + "node": "YouTube7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "YouTube13", + "type": "main", + "index": 0 + }, + { + "node": "YouTube18", + "type": "main", + "index": 0 + }, + { + "node": "YouTube4", + "type": "main", + "index": 0 + }, + { + "node": "YouTube1", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube9": { + "main": [ + [ + { + "node": "Sleep 0.5 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube10": { + "main": [ + [ + { + "node": "YouTube11", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube11": { + "main": [ + [ + { + "node": "Sleep 0.5 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube12": { + "main": [ + [ + { + "node": "YouTube6", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube13": { + "main": [ + [ + { + "node": "Sleep 0.5 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTTP Request": { + "main": [ + [ + { + "node": "Sleep 0.5 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube14": { + "main": [ + [ + { + "node": "HTTP Request", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube15": { + "main": [ + [ + { + "node": "YouTube16", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube16": { + "main": [ + [ + { + "node": "Sleep 0.5 second6", + "type": "main", + "index": 0 + } + ] + ] + }, + "YouTube2": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "YouTube3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second": { + "main": [ + [ + { + "node": "YouTube", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second1": { + "main": [ + [ + { + "node": "YouTube5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second2": { + "main": [ + [ + { + "node": "YouTube10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second3": { + "main": [ + [ + { + "node": "YouTube12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second4": { + "main": [ + [ + { + "node": "YouTube14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second5": { + "main": [ + [ + { + "node": "YouTube15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.5 second6": { + "main": [ + [ + { + "node": "YouTube17", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/74.json b/packages/testing/playwright/test-workflows/workflows/74.json new file mode 100644 index 0000000000..9b3d8c7aac --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/74.json @@ -0,0 +1,145 @@ +{ + "createdAt": "2021-02-26T08:35:26.228Z", + "updatedAt": "2021-02-26T08:37:00.970Z", + "id": "74", + "name": "E-goi:Contact:create get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "dc6a5a64-8c22-4032-aace-0dea668a571c" + }, + { + "parameters": { + "list": 1, + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "E-goi", + "type": "n8n-nodes-base.egoi", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "egoiApi": { + "id": "63", + "name": "E-goi creds" + } + }, + "id": "25e5ee3b-abfb-427f-afc3-55b27e204f17" + }, + { + "parameters": { + "operation": "get", + "list": 1, + "contactId": "={{$node[\"E-goi\"].json[\"base\"][\"contact_id\"]}}" + }, + "name": "E-goi1", + "type": "n8n-nodes-base.egoi", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "egoiApi": { + "id": "63", + "name": "E-goi creds" + } + }, + "id": "13e4101f-896b-4786-b9b7-ac5a31ad06f5" + }, + { + "parameters": { + "operation": "getAll", + "list": 1, + "limit": 1 + }, + "name": "E-goi2", + "type": "n8n-nodes-base.egoi", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "egoiApi": { + "id": "63", + "name": "E-goi creds" + } + }, + "id": "39aa7752-aa1b-4db5-b1ed-988fa169b544" + }, + { + "parameters": { + "operation": "update", + "list": 1, + "contactId": "={{$node[\"E-goi\"].json[\"base\"][\"contact_id\"]}}", + "updateFields": { + "status": "inactive" + } + }, + "name": "E-goi3", + "type": "n8n-nodes-base.egoi", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "egoiApi": { + "id": "63", + "name": "E-goi creds" + } + }, + "id": "d9cf87e8-dff7-4b74-adbf-8bdf5c22f541" + } + ], + "connections": { + "E-goi": { + "main": [ + [ + { + "node": "E-goi1", + "type": "main", + "index": 0 + } + ] + ] + }, + "E-goi1": { + "main": [ + [ + { + "node": "E-goi2", + "type": "main", + "index": 0 + } + ] + ] + }, + "E-goi2": { + "main": [ + [ + { + "node": "E-goi3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "E-goi", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/75.json b/packages/testing/playwright/test-workflows/workflows/75.json new file mode 100644 index 0000000000..460d8be08d --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/75.json @@ -0,0 +1,523 @@ +{ + "createdAt": "2021-02-26T09:26:39.448Z", + "updatedAt": "2021-02-26T10:58:10.897Z", + "id": "75", + "name": "Harvest:Client:create update getAll get delete:Invoice:create update getAll get delete:Contact:create update get getAll delete:Company:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [150, 300], + "id": "2e356688-aa17-4377-99a8-85bdf89f4804" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "create", + "name": "=Client{{Date.now()}}", + "additionalFields": {} + }, + "name": "Harvest", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 230], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "9dff6c6e-f6e9-4754-9dd5-b68c3adf590f" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdatedClient{{Date.now()}}" + } + }, + "name": "Harvest1", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1310, 230], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "239a0f84-f452-4d2b-b208-3024f68e2104" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest2", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1460, 230], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "fb51704a-377b-4d9b-ad37-0f7dfac320c2" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest\"].json[\"id\"]}}" + }, + "name": "Harvest3", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1610, 230], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "b1c22046-82ed-41a2-961b-fc2fc864a23c" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest\"].json[\"id\"]}}" + }, + "name": "Harvest4", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1760, 230], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "5b049ab1-8091-4a1c-94b9-57b2239cfacf" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "company", + "accountId": 1416330 + }, + "name": "Harvest5", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 440], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "7119f466-ef7a-4ced-bef5-8deefbab4c79" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "contact", + "accountId": 1416330, + "operation": "create", + "firstName": "=FirstName{{Date.now()}}", + "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Harvest6", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "51db9f70-0f68-4722-8ebc-3edf8f342f47" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "contact", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest6\"].json[\"id\"]}}", + "updateFields": { + "first_name": "=FirstNameUpdated{{Date.now()}}" + } + }, + "name": "Harvest7", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "ee3d8921-fe23-4feb-a70b-6695cb2271cb" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "contact", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest6\"].json[\"id\"]}}" + }, + "name": "Harvest8", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e585c5d8-71f7-433a-ae83-70e0a24bed2d" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "contact", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest9", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e113e7b0-c8c2-4f11-a767-462b6a519c5c" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "contact", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest6\"].json[\"id\"]}}" + }, + "name": "Harvest10", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "7820c685-f762-4f66-b602-e20e4dda437a" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "invoice", + "accountId": 1416330, + "operation": "create", + "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", + "additionalFields": { + "subject": "=Subject{{Date.now()}}" + } + }, + "name": "Harvest11", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 140], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "6ffb33ca-58ba-456b-a9ac-d33f3f2e2eee" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "invoice", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}", + "updateFields": { + "subject": "=UpdatedSubject{{Date.now()}}" + } + }, + "name": "Harvest12", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 140], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "bb9bb3dc-ca74-4572-8c44-7bcaca67bd52" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "invoice", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest13", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 140], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "fd41f71c-0899-4887-ab85-8ba208e60b55" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "invoice", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" + }, + "name": "Harvest14", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1000, 140], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "0b68daaf-464e-4e04-bdca-3b67ad74b33e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "invoice", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" + }, + "name": "Harvest15", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1150, 140], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "270d7f79-c97f-4e4e-a0b7-596635eabf8c" + } + ], + "connections": { + "Harvest": { + "main": [ + [ + { + "node": "Harvest11", + "type": "main", + "index": 0 + }, + { + "node": "Harvest6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest1": { + "main": [ + [ + { + "node": "Harvest2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest2": { + "main": [ + [ + { + "node": "Harvest3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest3": { + "main": [ + [ + { + "node": "Harvest4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Harvest", + "type": "main", + "index": 0 + }, + { + "node": "Harvest5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest6": { + "main": [ + [ + { + "node": "Harvest7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest7": { + "main": [ + [ + { + "node": "Harvest8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest8": { + "main": [ + [ + { + "node": "Harvest9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest9": { + "main": [ + [ + { + "node": "Harvest10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest10": { + "main": [ + [ + { + "node": "Harvest1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest11": { + "main": [ + [ + { + "node": "Harvest12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest12": { + "main": [ + [ + { + "node": "Harvest13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest13": { + "main": [ + [ + { + "node": "Harvest14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest14": { + "main": [ + [ + { + "node": "Harvest15", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/76.json b/packages/testing/playwright/test-workflows/workflows/76.json new file mode 100644 index 0000000000..8f044faf5f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/76.json @@ -0,0 +1,761 @@ +{ + "createdAt": "2021-02-26T09:54:20.362Z", + "updatedAt": "2021-03-29T15:02:36.931Z", + "id": "76", + "name": "Harvest:Project:create update getAll get delete:Task:getAll get:TimeEntry:createByDuration createByStartEnd update getAll restartTime stopTime delete:User:me get getAll update", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [160, 650], + "id": "8833cc21-1b21-4e79-b6c7-4393f7466b69" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "create", + "name": "=RandomClient{{Date.now()}}", + "additionalFields": {} + }, + "name": "Harvest", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "1a1ea2ec-520a-4086-b786-358e6f6ee5d1" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest\"].json[\"id\"]}}" + }, + "name": "Harvest1", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "0e833b0d-00e0-4be1-a578-e73017f5065b" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "project", + "accountId": 1416330, + "operation": "create", + "name": "=Project{{Date.now()}}", + "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "Harvest2", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 350], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "4cd6a29d-0972-4169-af76-7b631f35a730" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "project", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}", + "updateFields": {} + }, + "name": "Harvest3", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 350], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e8ef59df-d4e2-4e27-91cc-f192082c7115" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "project", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest4", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 350], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "cabf6a20-aeda-435a-9290-0457d8c92e7d" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "project", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" + }, + "name": "Harvest5", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1000, 350], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "48e37176-9c45-4e1f-943c-58fcc338b060" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "project", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" + }, + "name": "Harvest6", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1150, 350], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "0618ef71-88d4-4e88-9114-59f98596768a" + }, + { + "parameters": { + "authentication": "oAuth2", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest7", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 500], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "8e653471-6477-4538-9691-f7c5f053798e" + }, + { + "parameters": { + "authentication": "oAuth2", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" + }, + "name": "Harvest8", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 500], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e0934891-d965-418d-88bc-13d10ef16171" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "createByDuration", + "projectId": "27925524", + "taskId": "16181821", + "spentDate": "2021-02-26T10:20:56.825Z", + "additionalFields": {} + }, + "name": "Harvest11", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "99c627a7-eb16-4e0b-8288-218fd2ff3f11" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}", + "updateFields": {} + }, + "name": "Harvest12", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "584e3df4-1d4c-4f2a-b2b9-3b5bd7ec47f9" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest13", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "4fc58913-81bf-45f9-8d2f-042898629b9e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "restartTime", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" + }, + "name": "Harvest14", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "c83b2bda-8290-4580-bbfc-cf94e922d90c" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "stopTime", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" + }, + "name": "Harvest15", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1000, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "dd9a6234-40c1-43e8-b901-b5580e1fa8b7" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" + }, + "name": "Harvest16", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1150, 650], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "77ebc40f-31b7-4a18-8461-e6508f5a28fc" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "createByStartEnd", + "projectId": "27925524", + "taskId": "16181821", + "spentDate": "2021-02-26T10:20:56.825Z", + "additionalFields": { + "ended_time": "5:00pm", + "started_time": "8:00am" + } + }, + "name": "Harvest17", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 800], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "57840c65-51d5-423f-a3c3-879093551e8e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "timeEntry", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest17\"].json[\"id\"]}}" + }, + "name": "Harvest18", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 800], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "1235197c-ef59-43fb-804b-6398c4cc1a1e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "accountId": 1416330 + }, + "name": "Harvest19", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [400, 950], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "8a2caa48-eae1-4386-8a08-5977a03ad855" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest19\"].json[\"id\"]}}" + }, + "name": "Harvest20", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [550, 950], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "bcd17478-d82d-45fc-bc97-5d06fddacb36" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "accountId": 1416330, + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Harvest21", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 950], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "f0c8258d-c081-48f1-b276-5cb95e147c7b" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest19\"].json[\"id\"]}}", + "updateFields": { + "timezone": "Berlin" + } + }, + "name": "Harvest22", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 950], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "efad7fea-318e-4125-8fdc-025c60629fbe" + }, + { + "parameters": { + "authentication": "oAuth2", + "accountId": 1416330, + "operation": "create", + "name": "=Task{{Date.now()}}", + "additionalFields": {} + }, + "name": "Harvest9", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [700, 500], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "2fcd0aed-3cf8-4516-808d-74bc63b99373" + }, + { + "parameters": { + "authentication": "oAuth2", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest9\"].json[\"id\"]}}", + "updateFields": { + "name": "=Update{{$node[\"Harvest9\"].json[\"name\"]}}" + } + }, + "name": "Harvest10", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [850, 500], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "0a403014-8e17-4efd-8c36-8b7edd360cfe" + }, + { + "parameters": { + "authentication": "oAuth2", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest9\"].json[\"id\"]}}" + }, + "name": "Harvest23", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [990, 500], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "27bb65f0-6868-437b-b254-269442300f67" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Harvest", + "type": "main", + "index": 0 + }, + { + "node": "Harvest11", + "type": "main", + "index": 0 + }, + { + "node": "Harvest17", + "type": "main", + "index": 0 + }, + { + "node": "Harvest7", + "type": "main", + "index": 0 + }, + { + "node": "Harvest19", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest": { + "main": [ + [ + { + "node": "Harvest2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest2": { + "main": [ + [ + { + "node": "Harvest3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest3": { + "main": [ + [ + { + "node": "Harvest4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest4": { + "main": [ + [ + { + "node": "Harvest5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest5": { + "main": [ + [ + { + "node": "Harvest6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest6": { + "main": [ + [ + { + "node": "Harvest1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest7": { + "main": [ + [ + { + "node": "Harvest8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest11": { + "main": [ + [ + { + "node": "Harvest12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest12": { + "main": [ + [ + { + "node": "Harvest13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest13": { + "main": [ + [ + { + "node": "Harvest14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest14": { + "main": [ + [ + { + "node": "Harvest15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest15": { + "main": [ + [ + { + "node": "Harvest16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest17": { + "main": [ + [ + { + "node": "Harvest18", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest19": { + "main": [ + [ + { + "node": "Harvest20", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest20": { + "main": [ + [ + { + "node": "Harvest21", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest21": { + "main": [ + [ + { + "node": "Harvest22", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest8": { + "main": [ + [ + { + "node": "Harvest9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest9": { + "main": [ + [ + { + "node": "Harvest10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest10": { + "main": [ + [ + { + "node": "Harvest23", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/77.json b/packages/testing/playwright/test-workflows/workflows/77.json new file mode 100644 index 0000000000..7b5efc0279 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/77.json @@ -0,0 +1,407 @@ +{ + "createdAt": "2021-02-26T10:47:07.557Z", + "updatedAt": "2021-02-26T10:54:33.074Z", + "id": "77", + "name": "Harvest:Expense:create update get getAll delete:Estimate:create update get getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 220], + "id": "2bb0bfe5-a448-40ae-a4be-0689032e87e9" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "create", + "name": "=Client{{Date.now()}}", + "additionalFields": {} + }, + "name": "Harvest", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "31ef3552-d142-4338-89a9-830f488aaee2" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "client", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest\"].json[\"id\"]}}" + }, + "name": "Harvest1", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1340, 300], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "ea99bdb4-a747-4ab0-ac0a-9be4ae96549c" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "estimate", + "accountId": 1416330, + "operation": "create", + "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", + "additionalFields": { + "subject": "=Estimate{{Date.now()}}" + } + }, + "name": "Harvest2", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [600, 400], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e1f7a876-0103-4b73-8669-81ef0994da09" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "estimate", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}", + "updateFields": { + "subject": "=UpdateSubject{{Date.now()}}" + } + }, + "name": "Harvest3", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [750, 400], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "7989bc34-0e2d-4add-af9c-3fd7f69d3219" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "estimate", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" + }, + "name": "Harvest4", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [900, 400], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "20378436-76b0-430d-94cf-e034f3534ad8" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "estimate", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest5", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1050, 400], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "7bbdbf6e-2741-463f-8b1d-31c17d53972f" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "estimate", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" + }, + "name": "Harvest6", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1200, 400], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "c3c439b0-e7bf-4896-b948-77037cea12fa" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "expense", + "accountId": 1416330, + "operation": "create", + "projectId": "27925524", + "expenseCategoryId": "7737171", + "spentDate": "2021-02-26T10:51:40.112Z", + "additionalFields": { + "total_cost": "101" + } + }, + "name": "Harvest7", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [460, 150], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "09619bf1-f1f8-425a-b24f-cdbaa294bda2" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "expense", + "accountId": 1416330, + "operation": "update", + "id": "={{$node[\"Harvest7\"].json[\"id\"]}}", + "updateFields": { + "total_cost": "201" + } + }, + "name": "Harvest8", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [600, 150], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "ff10db35-ec3d-4684-85fa-682272052a4e" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "expense", + "accountId": 1416330, + "operation": "get", + "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" + }, + "name": "Harvest9", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [750, 150], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "7788ca40-e46d-4332-ac73-1e4f8a6adddd" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "expense", + "accountId": 1416330, + "limit": 1, + "filters": {} + }, + "name": "Harvest10", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [900, 150], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "e7595ae1-7392-4f84-b18c-3097d47ddff4" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "expense", + "accountId": 1416330, + "operation": "delete", + "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" + }, + "name": "Harvest11", + "type": "n8n-nodes-base.harvest", + "typeVersion": 1, + "position": [1050, 150], + "credentials": { + "harvestOAuth2Api": { + "id": "64", + "name": "Harvest OAuth2 creds" + } + }, + "id": "eb9f74f8-d780-4c55-9ffd-e3540adfe808" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Harvest", + "type": "main", + "index": 0 + }, + { + "node": "Harvest7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest": { + "main": [ + [ + { + "node": "Harvest2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest2": { + "main": [ + [ + { + "node": "Harvest3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest3": { + "main": [ + [ + { + "node": "Harvest4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest4": { + "main": [ + [ + { + "node": "Harvest5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest5": { + "main": [ + [ + { + "node": "Harvest6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest6": { + "main": [ + [ + { + "node": "Harvest1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest7": { + "main": [ + [ + { + "node": "Harvest8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest8": { + "main": [ + [ + { + "node": "Harvest9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest9": { + "main": [ + [ + { + "node": "Harvest10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Harvest10": { + "main": [ + [ + { + "node": "Harvest11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/78.json b/packages/testing/playwright/test-workflows/workflows/78.json new file mode 100644 index 0000000000..a761efd15f --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/78.json @@ -0,0 +1,396 @@ +{ + "createdAt": "2021-02-26T13:19:21.412Z", + "updatedAt": "2021-06-07T09:10:58.362Z", + "id": "78", + "name": "NASA:ALL:", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [140, 530], + "id": "58ef3e12-49b0-40f0-a5d1-264dfe9b0e17" + }, + { + "parameters": { + "resource": "asteroidNeoBrowse", + "limit": 1 + }, + "name": "NASA", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 220], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "bb5be736-03e5-46d7-997d-e64f6673b783" + }, + { + "parameters": { + "resource": "asteroidNeoLookup", + "asteroidId": "={{$node[\"NASA\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "NASA1", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [620, 220], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "e6cee073-75cd-4ff0-9c2d-a6c8287bcf0e" + }, + { + "parameters": { + "resource": "asteroidNeoFeed", + "additionalFields": { + "startDate": "2020-08-10T22:00:00.000Z", + "endDate": "2020-08-10T22:00:00.000Z" + } + }, + "name": "NASA2", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [790, 220], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "3b6fad60-3b18-46c8-89d9-7097d678c124" + }, + { + "parameters": { + "resource": "donkiCoronalMassEjection", + "additionalFields": {} + }, + "name": "NASA3", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 370], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "d3ec4cda-449e-476f-ac32-0d31a8a96f58" + }, + { + "parameters": { + "resource": "donkiInterplanetaryShock", + "additionalFields": { + "location": "STEREO A" + } + }, + "name": "NASA4", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 680], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "0d290992-c9b2-411f-bba0-1bc420a412f1" + }, + { + "parameters": { + "resource": "donkiSolarFlare", + "additionalFields": {} + }, + "name": "NASA5", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 520], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "188fe560-87ec-4f60-a844-c0c48b7de306" + }, + { + "parameters": { + "resource": "donkiSolarEnergeticParticle", + "additionalFields": {} + }, + "name": "NASA6", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [650, 670], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "741adc5a-c4c6-48c8-bced-41b14831092e" + }, + { + "parameters": { + "resource": "donkiMagnetopauseCrossing", + "additionalFields": {} + }, + "name": "NASA7", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [650, 370], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "7ce89dd3-c364-49dd-9542-fd0bcfff9d63" + }, + { + "parameters": { + "resource": "donkiRadiationBeltEnhancement", + "additionalFields": {} + }, + "name": "NASA8", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [650, 520], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "ed4e394b-49ed-4c92-9a54-6fc065723251" + }, + { + "parameters": { + "resource": "donkiHighSpeedStream", + "additionalFields": {} + }, + "name": "NASA9", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 830], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "4c483b64-1315-4531-ae03-12a825bdaf33" + }, + { + "parameters": { + "resource": "donkiWsaEnlilSimulation", + "additionalFields": {} + }, + "name": "NASA10", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [650, 830], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "3e8ad703-1880-45df-b95b-309dba2f63ad" + }, + { + "parameters": { + "resource": "donkiNotifications", + "additionalFields": {} + }, + "name": "NASA11", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 980], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "e650443b-32c4-49dc-beee-49e361494158" + }, + { + "parameters": { + "resource": "earthImagery", + "lat": 52.52, + "lon": 13.405, + "additionalFields": { + "date": "=2019-05-05" + } + }, + "name": "NASA12", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [620, 980], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "86c4b0a2-7a39-4794-b3e0-a6dd188496e9" + }, + { + "parameters": { + "additionalFields": { + "date": "=2019-05-05" + } + }, + "name": "NASA14", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [450, 70], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "id": "5d726ffa-d7b5-46dc-9e78-a2e550cbe145" + }, + { + "parameters": { + "resource": "earthAssets", + "lat": 0, + "lon": 0, + "additionalFields": { + "date": "2021-01-31T23:00:00.000Z" + } + }, + "name": "NASA13", + "type": "n8n-nodes-base.nasa", + "typeVersion": 1, + "position": [160, 790], + "credentials": { + "nasaApi": { + "id": "49", + "name": "Nasa creds" + } + }, + "disabled": true, + "id": "1483c3eb-ca7b-4908-a454-4b573e56ed3a" + } + ], + "connections": { + "NASA": { + "main": [ + [ + { + "node": "NASA1", + "type": "main", + "index": 0 + } + ] + ] + }, + "NASA1": { + "main": [ + [ + { + "node": "NASA2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "NASA", + "type": "main", + "index": 0 + }, + { + "node": "NASA3", + "type": "main", + "index": 0 + }, + { + "node": "NASA7", + "type": "main", + "index": 0 + }, + { + "node": "NASA5", + "type": "main", + "index": 0 + }, + { + "node": "NASA8", + "type": "main", + "index": 0 + }, + { + "node": "NASA6", + "type": "main", + "index": 0 + }, + { + "node": "NASA4", + "type": "main", + "index": 0 + }, + { + "node": "NASA9", + "type": "main", + "index": 0 + }, + { + "node": "NASA10", + "type": "main", + "index": 0 + }, + { + "node": "NASA11", + "type": "main", + "index": 0 + }, + { + "node": "NASA12", + "type": "main", + "index": 0 + }, + { + "node": "NASA14", + "type": "main", + "index": 0 + }, + { + "node": "NASA13", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/79.json b/packages/testing/playwright/test-workflows/workflows/79.json new file mode 100644 index 0000000000..355e17b459 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/79.json @@ -0,0 +1,198 @@ +{ + "createdAt": "2021-02-26T15:36:21.900Z", + "updatedAt": "2021-02-26T15:40:43.297Z", + "id": "79", + "name": "ZohoCRM:Lead:create update get getAll delete getFields", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "08024b38-dc6e-48be-917a-96cba2a48960" + }, + { + "parameters": { + "lastName": "=Last{{Date.now()}}", + "additionalFields": {} + }, + "name": "Zoho CRM", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "4496eb6a-f9a8-4e82-b160-7afe3ca37483" + }, + { + "parameters": { + "operation": "update", + "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}", + "additionalFields": { + "lastName": "=UpdatedLast{{Date.now()}}" + } + }, + "name": "Zoho CRM1", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "e34f782e-6772-4fbe-b332-8d9ecfbae345" + }, + { + "parameters": { + "operation": "get", + "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}" + }, + "name": "Zoho CRM2", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [750, 300], + "alwaysOutputData": true, + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "b225d319-d025-408c-9414-b665fc807993" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Zoho CRM3", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "0c08ddd8-cacd-49b6-b2e0-0ab54013e93b" + }, + { + "parameters": { + "operation": "delete", + "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}" + }, + "name": "Zoho CRM4", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [1050, 300], + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "5e6706ca-53f4-4b90-ab9d-1396f59f5461" + }, + { + "parameters": { + "operation": "getFields" + }, + "name": "Zoho CRM5", + "type": "n8n-nodes-base.zohoCrm", + "typeVersion": 1, + "position": [1200, 300], + "credentials": { + "zohoOAuth2Api": { + "id": "67", + "name": "Zoho OAuth2 creds" + } + }, + "id": "6deb175d-2b56-4bef-a5fe-f8b77181520b" + } + ], + "connections": { + "Zoho CRM": { + "main": [ + [ + { + "node": "Zoho CRM1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoho CRM1": { + "main": [ + [ + { + "node": "Zoho CRM2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoho CRM2": { + "main": [ + [ + { + "node": "Zoho CRM3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoho CRM3": { + "main": [ + [ + { + "node": "Zoho CRM4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zoho CRM4": { + "main": [ + [ + { + "node": "Zoho CRM5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Zoho CRM", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/80.json b/packages/testing/playwright/test-workflows/workflows/80.json new file mode 100644 index 0000000000..cb4be526ae --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/80.json @@ -0,0 +1,407 @@ +{ + "createdAt": "2021-02-26T16:19:59.941Z", + "updatedAt": "2021-02-26T16:20:47.874Z", + "id": "80", + "name": "Zendesk:Ticket:create update get getAll delete:TicketField:getAll get:User:create update getAll search get delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [200, 460], + "id": "4b8759d6-5b80-4936-93a5-b13fb5796186" + }, + { + "parameters": { + "authentication": "oAuth2", + "description": "=Description{{Date.now()}}", + "additionalFields": {} + }, + "name": "Zendesk", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "d19f346d-1951-48ac-a774-6816c8547a9d" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "update", + "id": "={{$node[\"Zendesk\"].json[\"id\"]}}", + "updateFields": { + "subject": "=UpdatedSubject{{Date.now()}}" + } + }, + "name": "Zendesk1", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "f5ff3626-892b-44ad-8eda-f5c753520a17" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "get", + "id": "={{$node[\"Zendesk\"].json[\"id\"]}}" + }, + "name": "Zendesk2", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "6a72a337-f588-4c4b-844f-f96b68b2c464" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "getAll", + "limit": 1, + "options": {} + }, + "name": "Zendesk3", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "a9590bd0-c6da-4d3a-9c8d-c86c00924373" + }, + { + "parameters": { + "authentication": "oAuth2", + "operation": "delete", + "id": "={{$node[\"Zendesk\"].json[\"id\"]}}" + }, + "name": "Zendesk4", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [1000, 300], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "0ea03844-4270-4aad-a614-e60d2008e773" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "ticketField", + "operation": "getAll", + "limit": 1 + }, + "name": "Zendesk5", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [400, 450], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "714ab216-9da0-496d-acfa-3c82f16a22f4" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "ticketField", + "ticketFieldId": "={{$node[\"Zendesk5\"].json[\"id\"]}}" + }, + "name": "Zendesk6", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [550, 450], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "8ee850ce-35e2-435b-8abb-e2a8820362b3" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "name": "=Name{{Date.now()}}", + "additionalFields": {} + }, + "name": "Zendesk7", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [400, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "999a937f-cb90-448f-abe1-49efa8b5c6e4" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "operation": "update", + "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}", + "updateFields": { + "name": "=UpdatedName{{Date.now()}}" + } + }, + "name": "Zendesk8", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [550, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "3ca61e62-ea9e-4431-b099-e6185c7546bb" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "Zendesk9", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [700, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "6ab5a5c4-715e-4db4-9e60-44ffc3d7858b" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "operation": "search", + "limit": 1, + "filters": {} + }, + "name": "Zendesk10", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [850, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "1c032158-0872-4518-b7d9-c41cd7402baf" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "operation": "get", + "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}" + }, + "name": "Zendesk11", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [1000, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "5b713747-e0ff-4918-bfa9-daac79899b90" + }, + { + "parameters": { + "authentication": "oAuth2", + "resource": "user", + "operation": "delete", + "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}" + }, + "name": "Zendesk12", + "type": "n8n-nodes-base.zendesk", + "typeVersion": 1, + "position": [1150, 600], + "credentials": { + "zendeskOAuth2Api": { + "id": "68", + "name": "Zendesk OAuth2 " + } + }, + "id": "e8af8a3e-7cc0-4f30-9498-aca3837919cd" + } + ], + "connections": { + "Zendesk": { + "main": [ + [ + { + "node": "Zendesk1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk1": { + "main": [ + [ + { + "node": "Zendesk2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk2": { + "main": [ + [ + { + "node": "Zendesk3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk3": { + "main": [ + [ + { + "node": "Zendesk4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk5": { + "main": [ + [ + { + "node": "Zendesk6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Zendesk", + "type": "main", + "index": 0 + }, + { + "node": "Zendesk5", + "type": "main", + "index": 0 + }, + { + "node": "Zendesk7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk7": { + "main": [ + [ + { + "node": "Zendesk8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk8": { + "main": [ + [ + { + "node": "Zendesk9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk9": { + "main": [ + [ + { + "node": "Zendesk10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk10": { + "main": [ + [ + { + "node": "Zendesk11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Zendesk11": { + "main": [ + [ + { + "node": "Zendesk12", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/81.json b/packages/testing/playwright/test-workflows/workflows/81.json new file mode 100644 index 0000000000..2cc2b9433c --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/81.json @@ -0,0 +1,147 @@ +{ + "createdAt": "2021-03-01T09:51:34.123Z", + "updatedAt": "2021-06-02T11:29:56.485Z", + "id": "81", + "name": "PhantomBuster:getAll get launch getOutput", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "85fb6aa2-9869-4db4-bd9a-daf1db2bf96e" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1 + }, + "name": "Phantombuster", + "type": "n8n-nodes-base.phantombuster", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "phantombusterApi": { + "id": "70", + "name": "Phantombuster creds" + } + }, + "id": "1b0bda87-f6ec-42a9-84db-af15ec98c377" + }, + { + "parameters": { + "operation": "get", + "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}" + }, + "name": "Phantombuster1", + "type": "n8n-nodes-base.phantombuster", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "phantombusterApi": { + "id": "70", + "name": "Phantombuster creds" + } + }, + "id": "1c0d3094-59c7-4f8c-b7d6-3544dcde6bcc" + }, + { + "parameters": { + "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}", + "resolveData": false, + "jsonParameters": true, + "additionalFields": { + "argumentsJson": "{\n\t\"urls\": [\n\t\t\"https://n8n.io/\"\n\t],\n\t\"timeToWait\": 5000,\n\t\"pagesPerLaunch\": 1,\n\t\"onlyGetOneEmail\": false\n}" + } + }, + "name": "Phantombuster2", + "type": "n8n-nodes-base.phantombuster", + "typeVersion": 1, + "position": [750, 300], + "credentials": { + "phantombusterApi": { + "id": "70", + "name": "Phantombuster creds" + } + }, + "id": "932b8b9f-b118-401c-9164-aac9942631a9" + }, + { + "parameters": { + "operation": "getOutput", + "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}", + "resolveData": false, + "additionalFields": { + "prevContainerId": "={{$node[\"Phantombuster2\"].json[\"containerId\"]}}" + } + }, + "name": "Phantombuster3", + "type": "n8n-nodes-base.phantombuster", + "typeVersion": 1, + "position": [900, 300], + "credentials": { + "phantombusterApi": { + "id": "70", + "name": "Phantombuster creds" + } + }, + "notes": "IGNORED_PROPERTIES=mostRecentEndedAt", + "id": "803d6c12-a407-4037-ae9f-62b90d17ceac" + } + ], + "connections": { + "Phantombuster": { + "main": [ + [ + { + "node": "Phantombuster1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Phantombuster1": { + "main": [ + [ + { + "node": "Phantombuster2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Phantombuster2": { + "main": [ + [ + { + "node": "Phantombuster3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Phantombuster", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/82.json b/packages/testing/playwright/test-workflows/workflows/82.json new file mode 100644 index 0000000000..5f09bfd163 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/82.json @@ -0,0 +1,506 @@ +{ + "createdAt": "2021-03-01T10:15:48.446Z", + "updatedAt": "2021-06-04T14:49:07.640Z", + "id": "82", + "name": "Microsoft OneDrive:Folder:create getChildren share search delete:File:upload get share download copy delete search", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "8dd4b3f2-e8ad-481a-8a37-6fc5cad4eb8e" + }, + { + "parameters": { + "resource": "folder", + "operation": "create", + "name": "=TestFolder{{Date.now()}}", + "options": {} + }, + "name": "Microsoft OneDrive", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [490, 300], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "60b3c5f1-1a49-4961-9d3b-7a8681b882fc" + }, + { + "parameters": { + "resource": "folder", + "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}" + }, + "name": "Microsoft OneDrive1", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [2410, 300], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "1fea4cc3-5693-470e-b04b-630bfc994fce" + }, + { + "parameters": { + "resource": "folder", + "operation": "search", + "query": "TestFolder" + }, + "name": "Microsoft OneDrive2", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [2850, 150], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "notes": "CAP_RESULTS_LENGTH=1", + "id": "d04119ed-853d-421e-a872-c02d3ab34b6d" + }, + { + "parameters": { + "resource": "folder", + "operation": "share", + "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}", + "type": "view", + "scope": "anonymous" + }, + "name": "Microsoft OneDrive3", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [2560, 300], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "2fd0be17-d65a-4c47-ada6-ed83a84a8a9c" + }, + { + "parameters": { + "fileName": "=FileName{{Date.now()}}", + "parentId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}", + "fileContent": "=Test written at {{Date()}}" + }, + "name": "Microsoft OneDrive4", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [770, 450], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "88d28811-6fdc-4d81-8d64-225c857efe27" + }, + { + "parameters": { + "operation": "get", + "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" + }, + "name": "Microsoft OneDrive5", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [1070, 450], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "cdf9a69d-e4e0-4c8d-a154-e57910ed9c9e" + }, + { + "parameters": { + "operation": "share", + "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}", + "type": "view", + "scope": "anonymous" + }, + "name": "Microsoft OneDrive6", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [1220, 450], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "35ac9411-ebea-4929-a4b8-5fab696507c0" + }, + { + "parameters": { + "operation": "search", + "query": "Test" + }, + "name": "Microsoft OneDrive7", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [2120, 450], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "d4cf2dbf-430b-4af9-a478-78f9d63c0f4e" + }, + { + "parameters": { + "operation": "download", + "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" + }, + "name": "Microsoft OneDrive8", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [1520, 450], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "b22405f7-c624-4f51-b72f-2cd6fba6055c" + }, + { + "parameters": { + "operation": "copy", + "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}", + "additionalFields": { + "name": "=CopiedFile{{Date.now()}}" + }, + "parentReference": { + "name": "=CopiedFile{{Date.now()}}", + "path": "=/drive/root:/{{$node[\"Microsoft OneDrive\"].json[\"name\"]}}" + } + }, + "name": "Microsoft OneDrive9", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [1670, 450], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "0a8c8d20-cc43-4a4d-a1d4-acebd6742cdd" + }, + { + "parameters": { + "operation": "delete", + "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" + }, + "name": "Microsoft OneDrive10", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [1970, 450], + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "9cbe23a3-6e32-45a8-9e9f-60c9ed5cea4e" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}" + }, + "name": "Microsoft OneDrive11", + "type": "n8n-nodes-base.microsoftOneDrive", + "typeVersion": 1, + "position": [2850, 300], + "alwaysOutputData": true, + "credentials": { + "microsoftOneDriveOAuth2Api": { + "id": "69", + "name": "Microsoft Drive OAuth2 creds" + } + }, + "id": "c33517a8-7045-45c7-8e49-e778313d2ce7" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second", + "type": "n8n-nodes-base.function", + "position": [2700, 300], + "typeVersion": 1, + "id": "47de5dd5-9705-4186-a0f4-9579467897e3" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second1", + "type": "n8n-nodes-base.function", + "position": [2280, 300], + "typeVersion": 1, + "id": "0987168a-7db4-4e81-bde8-4a6961f514a1" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second2", + "type": "n8n-nodes-base.function", + "position": [1820, 450], + "typeVersion": 1, + "id": "eb7f14c0-6925-4c32-89f6-835e09498bce" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second3", + "type": "n8n-nodes-base.function", + "position": [1370, 450], + "typeVersion": 1, + "id": "04e7f940-2bd4-4191-8157-89a3c067fdd1" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second4", + "type": "n8n-nodes-base.function", + "position": [920, 450], + "typeVersion": 1, + "id": "6977a587-99f4-4998-953f-7ea20768a92b" + }, + { + "parameters": { + "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" + }, + "name": "Sleep 0.8 second5", + "type": "n8n-nodes-base.function", + "position": [650, 450], + "typeVersion": 1, + "id": "7e920caf-326c-44ad-9f49-bb11d8378d12" + } + ], + "connections": { + "Microsoft OneDrive": { + "main": [ + [ + { + "node": "Sleep 0.8 second5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive1": { + "main": [ + [ + { + "node": "Microsoft OneDrive3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive3": { + "main": [ + [ + { + "node": "Sleep 0.8 second", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive4": { + "main": [ + [ + { + "node": "Sleep 0.8 second4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive5": { + "main": [ + [ + { + "node": "Microsoft OneDrive6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive6": { + "main": [ + [ + { + "node": "Sleep 0.8 second3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive7": { + "main": [ + [ + { + "node": "Sleep 0.8 second1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive8": { + "main": [ + [ + { + "node": "Microsoft OneDrive9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive9": { + "main": [ + [ + { + "node": "Sleep 0.8 second2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Microsoft OneDrive10": { + "main": [ + [ + { + "node": "Microsoft OneDrive7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Microsoft OneDrive", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second": { + "main": [ + [ + { + "node": "Microsoft OneDrive11", + "type": "main", + "index": 0 + }, + { + "node": "Microsoft OneDrive2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second1": { + "main": [ + [ + { + "node": "Microsoft OneDrive1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second2": { + "main": [ + [ + { + "node": "Microsoft OneDrive10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second3": { + "main": [ + [ + { + "node": "Microsoft OneDrive8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second4": { + "main": [ + [ + { + "node": "Microsoft OneDrive5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Sleep 0.8 second5": { + "main": [ + [ + { + "node": "Microsoft OneDrive4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/83.json b/packages/testing/playwright/test-workflows/workflows/83.json new file mode 100644 index 0000000000..d14cfdb771 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/83.json @@ -0,0 +1,70 @@ +{ + "createdAt": "2021-03-01T10:49:40.953Z", + "updatedAt": "2021-03-01T10:49:40.953Z", + "id": "83", + "name": "RSS Feed", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "2abda6cf-70a8-40c3-9446-4f7f8233e54a" + }, + { + "parameters": { + "url": "https://www.producthunt.com/feed" + }, + "name": "RSS Feed Read", + "type": "n8n-nodes-base.rssFeedRead", + "typeVersion": 1, + "position": [450, 300], + "id": "46f4bb0e-011d-499c-92bd-7b1e6c814133" + }, + { + "parameters": { + "functionCode": "if(items.length !== 50){\n throw new Error('Invalid RSS feed result');\n}else{\nreturn [];\n}\n" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [650, 300], + "notesInFlow": true, + "notes": "Throw error if result.length !=50", + "id": "f4a98301-2dbe-45b2-ac1d-97df0ac58b94" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "RSS Feed Read", + "type": "main", + "index": 0 + } + ] + ] + }, + "RSS Feed Read": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/84.json b/packages/testing/playwright/test-workflows/workflows/84.json new file mode 100644 index 0000000000..01fccf3bd6 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/84.json @@ -0,0 +1,364 @@ +{ + "createdAt": "2021-03-01T11:14:09.665Z", + "updatedAt": "2021-03-01T11:21:28.506Z", + "id": "84", + "name": "Matrix:Room:create invite kick leave:RoomMember:getAll:Message:create getAll:Account:me:Media:upload:Event:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "4653989b-2d73-400a-b9e3-05248cca34be" + }, + { + "parameters": { + "resource": "account" + }, + "name": "Matrix", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [450, 100], + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "47305d8a-ba2e-4bc3-8021-1abf32a300ae" + }, + { + "parameters": { + "resource": "room", + "roomName": "=Room{{Date.now()}}" + }, + "name": "Matrix1", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "5d6f2b69-6762-4376-b1bb-6b3d8b823c37" + }, + { + "parameters": { + "resource": "room", + "operation": "invite", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "userId": "@node8qa:matrix.org" + }, + "name": "Matrix2", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [1000, 200], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "939b7824-2a25-4b5a-9d11-57ee9107578c" + }, + { + "parameters": { + "resource": "room", + "operation": "kick", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "userId": "@node8qa:matrix.org", + "reason": "test" + }, + "name": "Matrix3", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [1200, 200], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "e5d85928-b775-4eb5-9976-18075db86af0" + }, + { + "parameters": { + "resource": "room", + "operation": "leave", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}" + }, + "name": "Matrix4", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [1440, 420], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "7e684d64-ab4c-4de9-bd5b-ab1e8571c0d9" + }, + { + "parameters": { + "resource": "roomMember", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "filters": {} + }, + "name": "Matrix5", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [700, 420], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "a3cd7697-4db7-4cc2-a8bf-68625273a76a" + }, + { + "parameters": { + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "text": "=Test {{Date.now()}}" + }, + "name": "Matrix6", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [600, 200], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "9cbac5a1-e829-40d3-acd7-ad4fdb03c1ac" + }, + { + "parameters": { + "operation": "getAll", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "limit": 1, + "otherOptions": {} + }, + "name": "Matrix7", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [800, 200], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "205d5ab7-64ae-4722-b4bd-bb2a687de4b4" + }, + { + "parameters": { + "resource": "media", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}" + }, + "name": "Matrix8", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [820, 620], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "6aa74367-4d6a-495f-885e-14568c493ca1" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [600, 620], + "id": "07201442-b394-41cb-90e7-1a3f3f5e414f" + }, + { + "parameters": { + "resource": "event", + "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", + "eventId": "={{$node[\"Matrix8\"].json[\"event_id\"]}}" + }, + "name": "Matrix9", + "type": "n8n-nodes-base.matrix", + "typeVersion": 1, + "position": [1020, 620], + "alwaysOutputData": true, + "credentials": { + "matrixApi": { + "id": "71", + "name": "Matrix creds" + } + }, + "id": "a0c2d949-47f2-49a4-90fd-7ca465c2c579" + }, + { + "parameters": { + "mode": "chooseBranch" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 2.1, + "position": [1240, 420], + "id": "a3b8276c-5961-4508-a8c1-5d9144436ff5" + } + ], + "connections": { + "Matrix1": { + "main": [ + [ + { + "node": "Matrix6", + "type": "main", + "index": 0 + }, + { + "node": "Matrix5", + "type": "main", + "index": 0 + }, + { + "node": "Read Binary File", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix2": { + "main": [ + [ + { + "node": "Matrix3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix3": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix6": { + "main": [ + [ + { + "node": "Matrix7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix7": { + "main": [ + [ + { + "node": "Matrix2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "Matrix8", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix8": { + "main": [ + [ + { + "node": "Matrix9", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Matrix1", + "type": "main", + "index": 0 + }, + { + "node": "Matrix", + "type": "main", + "index": 0 + } + ] + ] + }, + "Matrix5": { + "main": [[]] + }, + "Matrix9": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Matrix4": { + "main": [[]] + }, + "Merge": { + "main": [ + [ + { + "node": "Matrix4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/85.json b/packages/testing/playwright/test-workflows/workflows/85.json new file mode 100644 index 0000000000..0e9184df97 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/85.json @@ -0,0 +1,107 @@ +{ + "createdAt": "2021-03-02T10:23:05.991Z", + "updatedAt": "2021-05-25T13:21:54.785Z", + "id": "85", + "name": "Linkedin:Post:create", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [200, 300], + "id": "92f57774-0f92-4eaf-89e9-e8c33dd21cfe" + }, + { + "parameters": { + "postAs": "person", + "person": "gpZ0alGajT", + "text": "=Test Post created by person at {{new Date()}}", + "additionalFields": { + "visibility": "CONNECTIONS" + } + }, + "name": "LinkedIn", + "type": "n8n-nodes-base.linkedIn", + "typeVersion": 1, + "position": [550, 200], + "credentials": { + "linkedInOAuth2Api": { + "id": "74", + "name": "LinkedIn OAuth2 creds" + } + }, + "id": "63e56abf-2054-4691-99d7-e639d2a1af45" + }, + { + "parameters": { + "postAs": "person", + "person": "gpZ0alGajT", + "text": "=Test Post created by person at {{new Date()}}", + "shareMediaCategory": "IMAGE", + "additionalFields": { + "title": "=ImagePost {{Date.now()}}", + "visibility": "CONNECTIONS" + } + }, + "name": "LinkedIn1", + "type": "n8n-nodes-base.linkedIn", + "typeVersion": 1, + "position": [560, 350], + "credentials": { + "linkedInOAuth2Api": { + "id": "74", + "name": "LinkedIn OAuth2 creds" + } + }, + "id": "a6a0d2d6-f399-41a3-88fe-a4b0c2d5512e" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [420, 350], + "id": "e80c32c0-f983-46cd-becc-e030b93732c7" + } + ], + "connections": { + "Read Binary File": { + "main": [ + [ + { + "node": "LinkedIn1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + }, + { + "node": "LinkedIn", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/86.json b/packages/testing/playwright/test-workflows/workflows/86.json new file mode 100644 index 0000000000..704705e293 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/86.json @@ -0,0 +1,553 @@ +{ + "createdAt": "2021-03-02T16:28:15.682Z", + "updatedAt": "2021-03-02T16:51:15.335Z", + "id": "86", + "name": "ActiveCampaign:Contact:create update get getAll delete:Account:create update get getAll delete:AccountContact:create update delete:ContactTag:add remove:ContactList:add remove", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [240, 250], + "id": "5e0c4a10-4f4c-4d7e-ac88-cfb0e0147e6d" + }, + { + "parameters": { + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "ActiveCampaign", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [400, 250], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "218c5b2e-6051-4f23-ba62-8d5b9deee1c6" + }, + { + "parameters": { + "operation": "update", + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}", + "updateFields": { + "email": "=updatedFake{{Date.now()}}@gmail.com" + } + }, + "name": "ActiveCampaign1", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1860, 420], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "305a7c81-ca92-4e98-af9e-16793b4ef154" + }, + { + "parameters": { + "operation": "get", + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign2", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2060, 420], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "0793b6d4-3d35-49c9-ac08-783568dcbaf7" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": {} + }, + "name": "ActiveCampaign3", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2240, 420], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "577ef13f-7105-4d8a-bed7-e032a4dbd41e" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign4", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2700, 580], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "fa91c140-0213-4490-b9d5-8bc7f58f076c" + }, + { + "parameters": { + "resource": "contactList", + "listId": 1, + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign5", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1800, 600], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "9ec94695-33dd-4b2d-afa5-275f25c5519d" + }, + { + "parameters": { + "resource": "contactList", + "operation": "remove", + "listId": 1, + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign6", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2040, 600], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "b1f7a747-06a7-4e0c-9492-da2b0d0058ee" + }, + { + "parameters": { + "resource": "contactTag", + "tagId": "1", + "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign7", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1800, 160], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "2fd08b2d-5fcc-4e53-ab07-0a4ccceb4343" + }, + { + "parameters": { + "resource": "contactTag", + "operation": "remove", + "contactTagId": "={{$node[\"ActiveCampaign7\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign8", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1950, 160], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "7a5a5918-0d77-4244-bfda-81fa9a16bb4a" + }, + { + "parameters": { + "resource": "account", + "name": "=Name{{Date.now()}}", + "additionalFields": {} + }, + "name": "ActiveCampaign9", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "c27e3344-ae6d-4c50-9b68-fbe0cc933bff" + }, + { + "parameters": { + "resource": "account", + "operation": "update", + "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", + "updateFields": { + "name": "=updatedName{{Date.now()}}" + } + }, + "name": "ActiveCampaign10", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1150, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "f0488b6f-4e0a-4314-8748-0107fe6615f0" + }, + { + "parameters": { + "resource": "account", + "operation": "get", + "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign11", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1300, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "323985d0-1ee6-40c3-ac86-7ddd93755d92" + }, + { + "parameters": { + "resource": "account", + "operation": "getAll", + "limit": 1, + "filters": {} + }, + "name": "ActiveCampaign12", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1450, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "0056df12-007e-49fe-a03f-b784e4c05354" + }, + { + "parameters": { + "resource": "account", + "operation": "delete", + "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign13", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1600, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "4149b2f7-c778-40d5-9e91-a652148bdb0f" + }, + { + "parameters": { + "resource": "accountContact", + "account": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", + "contact": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}", + "additionalFields": {} + }, + "name": "ActiveCampaign14", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [700, 400], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "88202473-515f-443d-bdc2-79a79bf72228" + }, + { + "parameters": { + "resource": "accountContact", + "operation": "update", + "accountContactId": "={{$node[\"ActiveCampaign14\"].json[\"id\"]}}", + "updateFields": { + "jobTitle": "TestJobTitle" + } + }, + "name": "ActiveCampaign15", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [850, 400], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "d5c849a3-4bd3-4d31-80f4-b842e725620a" + }, + { + "parameters": { + "resource": "accountContact", + "operation": "delete", + "accountContactId": "={{$node[\"ActiveCampaign14\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign16", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1000, 400], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "3fadb7d0-4353-4bc9-9099-269db90d56e9" + }, + { + "parameters": { + "mode": "chooseBranch" + }, + "name": "Merge", + "type": "n8n-nodes-base.merge", + "typeVersion": 2.1, + "position": [2480, 580], + "id": "e48d6833-8e96-4fd9-ba59-e6aef2d6dfba" + } + ], + "connections": { + "ActiveCampaign": { + "main": [ + [ + { + "node": "ActiveCampaign9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign1": { + "main": [ + [ + { + "node": "ActiveCampaign2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign2": { + "main": [ + [ + { + "node": "ActiveCampaign3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign3": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign5": { + "main": [ + [ + { + "node": "ActiveCampaign6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign7": { + "main": [ + [ + { + "node": "ActiveCampaign8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign8": { + "main": [ + [ + { + "node": "ActiveCampaign1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "ActiveCampaign", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign9": { + "main": [ + [ + { + "node": "ActiveCampaign14", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign10": { + "main": [ + [ + { + "node": "ActiveCampaign11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign11": { + "main": [ + [ + { + "node": "ActiveCampaign12", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign12": { + "main": [ + [ + { + "node": "ActiveCampaign13", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign14": { + "main": [ + [ + { + "node": "ActiveCampaign15", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign15": { + "main": [ + [ + { + "node": "ActiveCampaign16", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign16": { + "main": [ + [ + { + "node": "ActiveCampaign10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign13": { + "main": [ + [ + { + "node": "ActiveCampaign5", + "type": "main", + "index": 0 + }, + { + "node": "ActiveCampaign7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign6": { + "main": [ + [ + { + "node": "Merge", + "type": "main", + "index": 1 + } + ] + ] + }, + "Merge": { + "main": [ + [ + { + "node": "ActiveCampaign4", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/87.json b/packages/testing/playwright/test-workflows/workflows/87.json new file mode 100644 index 0000000000..4e327b18f1 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/87.json @@ -0,0 +1,604 @@ +{ + "createdAt": "2021-03-02T17:11:06.700Z", + "updatedAt": "2021-03-02T17:38:14.995Z", + "id": "87", + "name": "ActiveCampaign:Deal:create update get createNote updateNote getAll delete:Tag:create update get getAll delete:Connection:create update get getAll delete:List:getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [50, 550], + "id": "a2295ea9-244a-4306-8154-22eb9bbcb44e" + }, + { + "parameters": { + "resource": "connection", + "service": "n8n", + "externalid": "={{Date.now()}}", + "name": "=Name{{Date.now()}}", + "logoUrl": "https://n8n.io/_nuxt/img/df5be1c.png", + "linkUrl": "https://n8n.io/" + }, + "name": "ActiveCampaign", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [250, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "5a58849c-68a7-4df6-afc6-15bfcf9e542a" + }, + { + "parameters": { + "resource": "connection", + "operation": "update", + "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}", + "updateFields": { + "syncStatus": 0 + } + }, + "name": "ActiveCampaign1", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [400, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "90f92758-d9a4-4c9f-95b6-a0dfce8ad0a6" + }, + { + "parameters": { + "resource": "connection", + "operation": "get", + "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" + }, + "name": "ActiveCampaign2", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [550, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "2c023901-6976-4e87-a1cd-5578e1b0e39e" + }, + { + "parameters": { + "resource": "connection", + "operation": "getAll", + "limit": 1 + }, + "name": "ActiveCampaign3", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [700, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "3ac46999-9c81-4d69-b5af-b302cbf17495" + }, + { + "parameters": { + "resource": "connection", + "operation": "delete", + "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" + }, + "name": "ActiveCampaign4", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [850, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "6ee06c8c-76b8-421e-a663-1749ab15173c" + }, + { + "parameters": { + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "ActiveCampaign5", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [250, 470], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "7b0271b5-ffde-4e57-9389-e35cdc23f7a3" + }, + { + "parameters": { + "resource": "deal", + "title": "=Title{{Date.now()}}", + "contact": "={{$node[\"ActiveCampaign5\"].json[\"id\"]}}", + "value": 101, + "currency": "usd", + "group": "1", + "stage": "0", + "owner": "1", + "additionalFields": {} + }, + "name": "ActiveCampaign7", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [400, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "90219b3a-7ebc-497f-b757-f03f7267b82a" + }, + { + "parameters": { + "resource": "list", + "limit": 1 + }, + "name": "ActiveCampaign8", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [250, 650], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "0311b73b-b4d4-4e26-a527-f853bbb6e919" + }, + { + "parameters": { + "resource": "tag", + "name": "=Tag{{Date.now()}}", + "additionalFields": {} + }, + "name": "ActiveCampaign9", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [250, 800], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "f9cb63f2-8f09-4588-b72c-454a2d46d254" + }, + { + "parameters": { + "resource": "tag", + "operation": "update", + "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", + "updateFields": {} + }, + "name": "ActiveCampaign10", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [400, 800], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "518317dc-7765-4bf6-9430-9bb38bd15427" + }, + { + "parameters": { + "resource": "tag", + "operation": "get", + "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign11", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [550, 800], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "b8fa4436-7059-467f-b38e-32d1fb0d1322" + }, + { + "parameters": { + "resource": "tag", + "operation": "getAll", + "limit": 1 + }, + "name": "ActiveCampaign12", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [700, 800], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "8c8fda95-bd1d-41c4-9b56-7946e4f8f246" + }, + { + "parameters": { + "resource": "tag", + "operation": "delete", + "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign13", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [850, 800], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "1e3f23a3-4905-43f3-bace-5c3bc340e6f1" + }, + { + "parameters": { + "resource": "deal", + "operation": "update", + "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", + "updateFields": { + "value": 201 + } + }, + "name": "ActiveCampaign14", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [550, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "a4c82ca4-f15b-4b4a-9f0c-4fff2720db1f" + }, + { + "parameters": { + "resource": "deal", + "operation": "get", + "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}" + }, + "name": "ActiveCampaign15", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [700, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "900af275-1075-41e6-983d-f8522ea792c7" + }, + { + "parameters": { + "resource": "deal", + "operation": "createNote", + "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", + "dealNote": "TestNote" + }, + "name": "ActiveCampaign16", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [850, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "e2fcb50a-69e9-4588-958d-d9d55863bc6d" + }, + { + "parameters": { + "resource": "deal", + "operation": "updateNote", + "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", + "dealNoteId": "={{$node[\"ActiveCampaign16\"].json[\"note\"][\"id\"]}}", + "dealNote": "UpdatedNote" + }, + "name": "ActiveCampaign17", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1000, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "eeddfcc2-e580-4f0f-80ad-382a38ef4f31" + }, + { + "parameters": { + "resource": "deal", + "operation": "getAll", + "limit": 1 + }, + "name": "ActiveCampaign18", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1150, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "ad04ac82-0369-4006-aacd-e87b8dbbc6f8" + }, + { + "parameters": { + "resource": "deal", + "operation": "delete", + "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}" + }, + "name": "ActiveCampaign19", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1300, 550], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "83432217-ae3f-4ecb-8cbb-fe21e1105146" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"ActiveCampaign5\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign6", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1450, 470], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "7492e380-426b-4c06-98bd-13a5a10b3232" + } + ], + "connections": { + "ActiveCampaign": { + "main": [ + [ + { + "node": "ActiveCampaign1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign1": { + "main": [ + [ + { + "node": "ActiveCampaign2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign2": { + "main": [ + [ + { + "node": "ActiveCampaign3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign3": { + "main": [ + [ + { + "node": "ActiveCampaign4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "ActiveCampaign", + "type": "main", + "index": 0 + }, + { + "node": "ActiveCampaign5", + "type": "main", + "index": 0 + }, + { + "node": "ActiveCampaign8", + "type": "main", + "index": 0 + }, + { + "node": "ActiveCampaign9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign5": { + "main": [ + [ + { + "node": "ActiveCampaign7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign9": { + "main": [ + [ + { + "node": "ActiveCampaign10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign10": { + "main": [ + [ + { + "node": "ActiveCampaign11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign11": { + "main": [ + [ + { + "node": "ActiveCampaign12", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign12": { + "main": [ + [ + { + "node": "ActiveCampaign13", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign7": { + "main": [ + [ + { + "node": "ActiveCampaign14", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign14": { + "main": [ + [ + { + "node": "ActiveCampaign15", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign15": { + "main": [ + [ + { + "node": "ActiveCampaign16", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign16": { + "main": [ + [ + { + "node": "ActiveCampaign17", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign17": { + "main": [ + [ + { + "node": "ActiveCampaign18", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign18": { + "main": [ + [ + { + "node": "ActiveCampaign19", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign19": { + "main": [ + [ + { + "node": "ActiveCampaign6", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/88.json b/packages/testing/playwright/test-workflows/workflows/88.json new file mode 100644 index 0000000000..932210a5bb --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/88.json @@ -0,0 +1,546 @@ +{ + "createdAt": "2021-03-02T17:43:57.153Z", + "updatedAt": "2021-03-02T18:24:50.151Z", + "id": "88", + "name": "ActiveCampaign:EcommerceCustomer:create update get getAll delete:EcommerceOrder:create update get getAll delete:EcommerceOrderProduct:getByProductId getByOrderId getAll", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "d98ebf73-d4b9-4f3c-8959-09921d971af4" + }, + { + "parameters": { + "resource": "connection", + "service": "n8n", + "externalid": "=account{{Date.now()}}", + "name": "=AccountName{{Date.now()}}", + "logoUrl": "https://n8n.io/_nuxt/img/df5be1c.png", + "linkUrl": "https://n8n.io" + }, + "name": "ActiveCampaign", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "06f9b5c8-7772-4e1f-aa36-cff61ad6d9c7" + }, + { + "parameters": { + "resource": "ecommerceCustomer", + "connectionid": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}", + "externalid": "=customer{{Date.now()}}", + "email": "=fake{{Date.now()}}@gmail.com", + "additionalFields": {} + }, + "name": "ActiveCampaign1", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [600, 350], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "3bc4598b-fbad-4f70-afbf-24094a92c3ac" + }, + { + "parameters": { + "resource": "ecommerceCustomer", + "operation": "update", + "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}", + "updateFields": { + "acceptsMarketing": true + } + }, + "name": "ActiveCampaign2", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1930, 350], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "177ccb5e-64cb-4614-9d06-d03391a99606" + }, + { + "parameters": { + "resource": "ecommerceCustomer", + "operation": "get", + "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}" + }, + "name": "ActiveCampaign3", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2080, 350], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "d0aac97c-66df-498b-b350-75a5b43db790" + }, + { + "parameters": { + "resource": "ecommerceCustomer", + "operation": "getAll", + "limit": 1 + }, + "name": "ActiveCampaign4", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2230, 350], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "01924984-0fd8-4aad-9c87-d672d22062f9" + }, + { + "parameters": { + "resource": "ecommerceCustomer", + "operation": "delete", + "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}" + }, + "name": "ActiveCampaign5", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2700, 350], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "c0d51d56-316e-4c3a-902e-e2806b357e49" + }, + { + "parameters": { + "resource": "connection", + "operation": "delete", + "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" + }, + "name": "ActiveCampaign6", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2960, 310], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "0e5e9588-0159-4573-8a12-80c28597d5d2" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "externalid": "=externalOrderId{{Date.now()}}", + "email": "=customerEmail{{Date.now()}}@gmail.com", + "totalPrice": 101, + "connectionid": "={{$node[\"ActiveCampaign1\"].json[\"connections\"][0][\"id\"]}}", + "customerid": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}", + "externalCreatedDate": "2021-03-02T17:48:16.000Z", + "orderProducts": [ + { + "name": "=Product{{Date.now()}}", + "price": 101, + "externalid": "=ProductId{{Date.now()}}", + "category": "Test", + "quantity": 1 + } + ], + "additionalFields": {} + }, + "name": "ActiveCampaign7", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [750, 500], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "625154fe-1a64-4d75-aaf8-98acd9e9ada7" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "update", + "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}", + "updateFields": { + "totalPrice": 201 + } + }, + "name": "ActiveCampaign8", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1330, 500], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "426277b4-5376-46fb-a536-685e850db4f2" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "get", + "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" + }, + "name": "ActiveCampaign9", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1480, 500], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "9f79b204-ac2e-4bc9-ba28-88f26e4361e0" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "getAll", + "limit": 1 + }, + "name": "ActiveCampaign10", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1630, 500], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "55383188-29bf-4d80-aea0-643f2944e449" + }, + { + "parameters": { + "resource": "ecommerceOrder", + "operation": "delete", + "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" + }, + "name": "ActiveCampaign11", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1780, 500], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "9adb900b-6822-40b3-972b-8c3dba51d737" + }, + { + "parameters": { + "resource": "ecommerceOrderProducts", + "operation": "getByProductId", + "procuctId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrderProducts\"][0][\"id\"]}}" + }, + "name": "ActiveCampaign12", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [900, 630], + "alwaysOutputData": true, + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "6b7ec0c7-d112-40b7-87ab-92a16261a0d6" + }, + { + "parameters": { + "resource": "ecommerceOrderProducts", + "operation": "getByOrderId", + "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" + }, + "name": "ActiveCampaign13", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1050, 630], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "eb9239ee-e92e-438b-9301-4f91297067ee" + }, + { + "parameters": { + "resource": "ecommerceOrderProducts", + "limit": 1 + }, + "name": "ActiveCampaign14", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [1200, 630], + "alwaysOutputData": true, + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "7ea53540-9953-40a7-bcb9-0fb103bfb66a" + }, + { + "parameters": { + "operation": "getAll", + "limit": 1, + "additionalFields": { + "email": "={{$node[\"ActiveCampaign3\"].json[\"ecomCustomer\"][\"email\"]}}" + } + }, + "name": "ActiveCampaign15", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2400, 200], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "39812fca-6913-46d6-8210-0ec0319fd590" + }, + { + "parameters": { + "operation": "delete", + "contactId": "={{$node[\"ActiveCampaign15\"].json[\"id\"]}}" + }, + "name": "ActiveCampaign16", + "type": "n8n-nodes-base.activeCampaign", + "typeVersion": 1, + "position": [2550, 200], + "credentials": { + "activeCampaignApi": { + "id": "75", + "name": "ActiveCampaign creds" + } + }, + "id": "59d52f2b-810a-437e-b5ce-885cc1ff746b" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "ActiveCampaign", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign": { + "main": [ + [ + { + "node": "ActiveCampaign1", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign1": { + "main": [ + [ + { + "node": "ActiveCampaign7", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign2": { + "main": [ + [ + { + "node": "ActiveCampaign3", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign3": { + "main": [ + [ + { + "node": "ActiveCampaign4", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign4": { + "main": [ + [ + { + "node": "ActiveCampaign15", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign5": { + "main": [ + [ + { + "node": "ActiveCampaign6", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign7": { + "main": [ + [ + { + "node": "ActiveCampaign12", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign8": { + "main": [ + [ + { + "node": "ActiveCampaign9", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign9": { + "main": [ + [ + { + "node": "ActiveCampaign10", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign10": { + "main": [ + [ + { + "node": "ActiveCampaign11", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign11": { + "main": [ + [ + { + "node": "ActiveCampaign2", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign12": { + "main": [ + [ + { + "node": "ActiveCampaign13", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign13": { + "main": [ + [ + { + "node": "ActiveCampaign14", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign14": { + "main": [ + [ + { + "node": "ActiveCampaign8", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign15": { + "main": [ + [ + { + "node": "ActiveCampaign16", + "type": "main", + "index": 0 + } + ] + ] + }, + "ActiveCampaign16": { + "main": [ + [ + { + "node": "ActiveCampaign5", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/89.json b/packages/testing/playwright/test-workflows/workflows/89.json new file mode 100644 index 0000000000..c2fe440428 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/89.json @@ -0,0 +1,396 @@ +{ + "createdAt": "2021-03-03T09:10:46.509Z", + "updatedAt": "2021-03-03T09:14:14.253Z", + "id": "89", + "name": "S3:Bucket:create getAll search:File:upload getAll download copy delete:Folder:create getAll delete", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [100, 450], + "id": "5f0064e0-df3f-4b86-9ff6-5914642a97b3" + }, + { + "parameters": { + "resource": "bucket", + "name": "=Bucket{{Date.now()}}", + "additionalFields": {} + }, + "name": "S3", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [300, 300], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "48d6cb9a-a344-4be5-919e-3221f2f8a240" + }, + { + "parameters": { + "resource": "bucket", + "operation": "getAll", + "limit": 1 + }, + "name": "S", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [450, 300], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "49b3346f-3156-4c9e-af2d-73387c596049" + }, + { + "parameters": { + "resource": "bucket", + "operation": "search", + "bucketName": "={{$node[\"S\"].json[\"Name\"]}}", + "limit": 1, + "additionalFields": {} + }, + "name": "S1", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [600, 300], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "81e8284f-6314-473b-8eb4-8c3fbbdd88e6" + }, + { + "parameters": { + "operation": "upload", + "bucketName": "fixedbucket", + "fileName": "=File{{Date.now()}}", + "additionalFields": {}, + "tagsUi": { + "tagsValues": [] + } + }, + "name": "S2", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [450, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "25ce2a12-596f-4a9e-b406-3810ccba7db7" + }, + { + "parameters": { + "filePath": "/tmp/n8n-logo.png" + }, + "name": "Read Binary File", + "type": "n8n-nodes-base.readBinaryFile", + "typeVersion": 1, + "position": [300, 450], + "id": "c8f464bb-d963-449f-8ee7-ad8d29e70271" + }, + { + "parameters": { + "operation": "getAll", + "bucketName": "fixedbucket", + "limit": 1, + "options": {} + }, + "name": "S4", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [600, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "349ae355-80cd-492d-b08c-2d75ccb35382" + }, + { + "parameters": { + "bucketName": "fixedbucket", + "fileKey": "={{$node[\"S4\"].json[\"Key\"]}}" + }, + "name": "S5", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [750, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "e8e125d4-e4dc-44ef-8a80-0d7643cbe7e7" + }, + { + "parameters": { + "operation": "copy", + "sourcePath": "=/fixedbucket/{{$node[\"S4\"].json[\"Key\"]}}", + "destinationPath": "=/fixedbucket/Copied{{$node[\"S4\"].json[\"Key\"]}}", + "additionalFields": {} + }, + "name": "S6", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [900, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "f9fee53d-4c4d-43db-9d90-e128929800ee" + }, + { + "parameters": { + "operation": "delete", + "bucketName": "fixedbucket", + "fileKey": "={{$node[\"S4\"].json[\"Key\"]}}", + "options": {} + }, + "name": "S7", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [1050, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "2125301b-ec39-4590-91a6-b72f18f8bdfd" + }, + { + "parameters": { + "operation": "delete", + "bucketName": "fixedbucket", + "fileKey": "=Copied{{$node[\"S4\"].json[\"Key\"]}}", + "options": {} + }, + "name": "S8", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [1200, 450], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "19563d5e-0131-40be-afac-d9c71ae9a4b6" + }, + { + "parameters": { + "resource": "folder", + "bucketName": "fixedbucket", + "folderName": "=Folder{{Date.now()}}", + "additionalFields": {} + }, + "name": "S9", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [300, 600], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "7171d305-06da-4448-934a-b6fc78a1a7f4" + }, + { + "parameters": { + "resource": "folder", + "operation": "getAll", + "bucketName": "fixedbucket", + "limit": 1, + "options": {} + }, + "name": "S10", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [450, 600], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "ff9b78fb-9d66-4ec0-a096-2cf4d183baae" + }, + { + "parameters": { + "resource": "folder", + "operation": "delete", + "bucketName": "fixedbucket", + "folderKey": "={{$node[\"S10\"].json[\"Key\"]}}" + }, + "name": "S11", + "type": "n8n-nodes-base.s3", + "typeVersion": 1, + "position": [600, 600], + "credentials": { + "s3": { + "id": "76", + "name": "S3 creds" + } + }, + "id": "8b2e8c9a-a7be-4c86-b3f5-d3f03c18a8e0" + } + ], + "connections": { + "S3": { + "main": [ + [ + { + "node": "S", + "type": "main", + "index": 0 + } + ] + ] + }, + "S": { + "main": [ + [ + { + "node": "S1", + "type": "main", + "index": 0 + } + ] + ] + }, + "S2": { + "main": [ + [ + { + "node": "S4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Read Binary File": { + "main": [ + [ + { + "node": "S2", + "type": "main", + "index": 0 + } + ] + ] + }, + "S4": { + "main": [ + [ + { + "node": "S5", + "type": "main", + "index": 0 + } + ] + ] + }, + "S5": { + "main": [ + [ + { + "node": "S6", + "type": "main", + "index": 0 + } + ] + ] + }, + "S6": { + "main": [ + [ + { + "node": "S7", + "type": "main", + "index": 0 + } + ] + ] + }, + "S7": { + "main": [ + [ + { + "node": "S8", + "type": "main", + "index": 0 + } + ] + ] + }, + "S9": { + "main": [ + [ + { + "node": "S10", + "type": "main", + "index": 0 + } + ] + ] + }, + "S10": { + "main": [ + [ + { + "node": "S11", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Read Binary File", + "type": "main", + "index": 0 + }, + { + "node": "S3", + "type": "main", + "index": 0 + }, + { + "node": "S9", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/90.json b/packages/testing/playwright/test-workflows/workflows/90.json new file mode 100644 index 0000000000..801bc86d50 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/90.json @@ -0,0 +1,196 @@ +{ + "createdAt": "2021-03-03T09:55:59.197Z", + "updatedAt": "2021-03-03T09:56:30.684Z", + "id": "90", + "name": "Date&Time:formatDate", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9f4c1cf1-66f7-4a2e-86a3-0ef54cff1666" + }, + { + "parameters": { + "value": "1614764492648", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [400, 300], + "id": "c1251fbd-cd97-4d51-bbf0-4ecce33e588a" + }, + { + "parameters": { + "value": "1614764492648", + "toFormat": "YYYY/MM/DD", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time1", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [550, 300], + "id": "57ab6614-af49-4555-8158-11ee5771b2e7" + }, + { + "parameters": { + "value": "1614764492648", + "toFormat": "MMMM DD YYYY", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time2", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [700, 300], + "id": "bf0a4b07-62ce-4234-8dfe-a2f582d40bd8" + }, + { + "parameters": { + "value": "1614764492648", + "toFormat": "MM-DD-YYYY", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time3", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [850, 300], + "id": "8b429a06-bce9-49d0-9277-038bc06c8463" + }, + { + "parameters": { + "value": "1614764492648", + "toFormat": "YYYY-MM-DD", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time4", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [1000, 300], + "id": "8e0681ff-dd9f-4e6d-83cf-18a1e72fe1e1" + }, + { + "parameters": { + "value": "1614764492648", + "toFormat": "X", + "options": { + "fromFormat": "x" + } + }, + "name": "Date & Time5", + "type": "n8n-nodes-base.dateTime", + "typeVersion": 1, + "position": [1150, 300], + "id": "4917a56c-7455-4354-a018-cec74552e203" + }, + { + "parameters": { + "functionCode": "\n// mm/dd/yyyy\nif($node[\"Date & Time\"].json[\"data\"] !== \"03/03/2021\")\n{\n throw new Error(\"Error convert date to mm/dd/yyyy\");\n}\n// yyyy/mm/dd\nif($node[\"Date & Time1\"].json[\"data\"] !== \"2021/03/03\")\n{\n throw new Error(\"Error convert date to yyyy/mm/dd\");\n}\n// mmmm dd yyyy\nif($node[\"Date & Time2\"].json[\"data\"] !== \"March 03 2021\")\n{\n throw new Error(\"Error convert date to mmmm dd yyyy\");\n}\n// mm-dd-yyyy\nif($node[\"Date & Time3\"].json[\"data\"] !== \"03-03-2021\")\n{\n throw new Error(\"Error convert date to mm-dd-yyyy\");\n}\n// yyyy-mm-dd\nif($node[\"Date & Time4\"].json[\"data\"] !== \"2021-03-03\")\n{ \n throw new Error(\"Error convert date to yyyy-mm-dd\");\n}\n// unix timestamp\nif($node[\"Date & Time5\"].json[\"data\"] !== \"1614764492\")\n{ \n throw new Error(\"Error convert date to unix timestamp\");\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1350, 300], + "id": "fe192bd8-40ce-4b2d-b467-837c1c208ee3" + } + ], + "connections": { + "Date & Time": { + "main": [ + [ + { + "node": "Date & Time1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time1": { + "main": [ + [ + { + "node": "Date & Time2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time2": { + "main": [ + [ + { + "node": "Date & Time3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time3": { + "main": [ + [ + { + "node": "Date & Time4", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time4": { + "main": [ + [ + { + "node": "Date & Time5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Date & Time5": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Date & Time", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/91.json b/packages/testing/playwright/test-workflows/workflows/91.json new file mode 100644 index 0000000000..a9e8b98072 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/91.json @@ -0,0 +1,179 @@ +{ + "createdAt": "2021-03-03T10:18:29.938Z", + "updatedAt": "2021-03-03T10:18:35.288Z", + "id": "91", + "name": "HTML Extract:json binary", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "51f39bec-0696-4ff7-93a8-26d105a5edfc" + }, + { + "parameters": { + "functionCode": "item.data = `\n\n\n\n
\"background
\"background
\"background

\n\t\t\t\t\t\tExtendable workflow automation\n\t\t\t\t\t

\"n8n
\n\t\tGithub\n\t
\"Play

\n\t\t\t\t\t\tWatch how simple it is to design a\n\t\t\t\t\t\tTypeform +\n\t\t\t\t\t\tGoogle Sheets +\n\t\t\t\t\t\tSlack workflow\n\t\t\t\t\t

Open icon

Open

\n\t\t\t\t\t\tThanks to our fair-code license, run n8n locally, or the cloud.\n\t\t\t\t\t\tDecide who gets access and where your data is stored.\n\t\t\t\t\t

Extendable icon

Extendable

\n\t\t\t\t\t\tEasy to augment with custom functions logic, and apps with minimal\n\t\t\t\t\t\tengineering effort.\n\t\t\t\t\t

Powerful icon

Powerful

\n\t\t\t\t\t\tn8n's node based editor lets you map anything to everything and go\n\t\t\t\t\t\tbeyond basic ETL.\n\t\t\t\t\t

What can I do with n8n?

Sync data between 150+ apps

\n\t\t\t\t\t\t\tMove and transform data between different apps and databases without getting caught up in API docs and troubleshooting CORS errors.\n\t\t\t\t\t\t

Design powerful workflows

Create custom integrations

\n\t\t\t\t\t\t\tSee what else you can do with n8n! Visit our\n\t\t\t\t\t\t\tMedium publication

How to get started?

\n\t\t\t\t\t\tCLI\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\tClick to copy\n\t

\n\t\t\t\t\t\tDocker\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\t\t\t\t\t\t\tn8n.cloud - our hosted offering is now in early access\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\tGet updates from n8n\n\t\t\t\t\t

Subscribe to our newsletter

\n\t\tBy submitting your email address you agree to your personal data being\n\t\tstored and used to provide you with information and commercial offers\n\t\tabout n8n.\n\t

\n
\n\n`;\nreturn item;" + }, + "name": "FunctionItem", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [450, 300], + "notesInFlow": true, + "notes": "Set html data", + "id": "70ab3e66-cac8-45fd-917d-838e2538ad69" + }, + { + "parameters": { + "extractionValues": { + "values": [ + { + "key": "extracted", + "cssSelector": "li>a", + "returnArray": true + } + ] + }, + "options": { + "trimValues": true + } + }, + "name": "HTML Extract", + "type": "n8n-nodes-base.htmlExtract", + "typeVersion": 1, + "position": [650, 300], + "id": "f27a2f9c-1946-4cac-96fe-d980fe2e5077" + }, + { + "parameters": { + "functionCode": "testData = [ \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\", \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\" ].join('');\nresultData = $node[\"HTML Extract\"].json[\"extracted\"].join('')\nif(testData !== resultData){\n throw new Error('Error in extracting html from json data');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [850, 300], + "notesInFlow": true, + "notes": "Verify the result", + "id": "97bc0163-8d74-4f5b-b65c-ec1354333908" + }, + { + "parameters": { + "mode": "jsonToBinary", + "convertAllData": false, + "options": { + "useRawData": true + } + }, + "name": "Move Binary Data", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [650, 500], + "id": "c25511ef-8cbc-4d29-bc2f-3983d900e802" + }, + { + "parameters": { + "sourceData": "binary", + "extractionValues": { + "values": [ + { + "key": "extracted", + "cssSelector": "li>a", + "returnArray": true + } + ] + }, + "options": { + "trimValues": true + } + }, + "name": "HTML Extract1", + "type": "n8n-nodes-base.htmlExtract", + "typeVersion": 1, + "position": [850, 500], + "id": "9df0c1ed-008b-4820-958f-c87330a9000d" + }, + { + "parameters": { + "functionCode": "testData = [ \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\", \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\" ].join('');\nresultData = $node[\"HTML Extract1\"].json[\"extracted\"].join('')\nif(testData !== resultData){\n throw new Error('Error in extracting html from binary data');\n}\nreturn items;" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1050, 500], + "notesInFlow": true, + "notes": "Verify the result", + "id": "a36ed52d-5256-4cbf-b96f-596574b092fc" + } + ], + "connections": { + "FunctionItem": { + "main": [ + [ + { + "node": "HTML Extract", + "type": "main", + "index": 0 + }, + { + "node": "Move Binary Data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "FunctionItem", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTML Extract": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Move Binary Data": { + "main": [ + [ + { + "node": "HTML Extract1", + "type": "main", + "index": 0 + } + ] + ] + }, + "HTML Extract1": { + "main": [ + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/92.json b/packages/testing/playwright/test-workflows/workflows/92.json new file mode 100644 index 0000000000..6a5622bdc8 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/92.json @@ -0,0 +1,792 @@ +{ + "createdAt": "2021-03-03T12:12:08.076Z", + "updatedAt": "2021-03-03T12:18:09.812Z", + "id": "92", + "name": "IF", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [260, 300], + "id": "6ae1c6d7-2986-491e-9657-e173e8c700e0" + }, + { + "parameters": { + "conditions": { + "boolean": [ + { + "value1": true, + "operation": "notEqual" + } + ] + } + }, + "name": "IF", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [450, 100], + "id": "744cd7d3-fe05-416b-afe4-3fd9f02d684b" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [ + { + "value1": "2021-03-01T23:00:00.000Z", + "value2": "2021-02-28T23:00:00.000Z" + } + ] + } + }, + "name": "IF1", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [450, 250], + "id": "d9d7145d-0f47-4ac1-b51d-cae45a77cbab" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 5, + "value2": 10 + } + ] + } + }, + "name": "IF2", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [450, 410], + "id": "dceb69ae-c2d9-4a0a-aeb9-3ef388e64005" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n.io", + "operation": "contains", + "value2": "io" + } + ] + } + }, + "name": "IF3", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [450, 670], + "id": "9c377027-9b03-4d11-8405-f13c773efff1" + }, + { + "parameters": { + "conditions": { + "boolean": [ + { + "value1": true, + "value2": true + } + ] + } + }, + "name": "IF4", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [620, 100], + "id": "c790a2e9-20de-45b9-b5be-f7d78e8f8e01" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [ + { + "value1": "2021-02-27T23:00:00.000Z", + "operation": "before", + "value2": "2021-02-28T23:00:00.000Z" + } + ] + } + }, + "name": "IF5", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [610, 250], + "id": "acc6b0b6-539c-4fdb-8275-da2ad32e18e5" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 5, + "operation": "smallerEqual", + "value2": 5 + } + ] + } + }, + "name": "IF6", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [600, 410], + "id": "2132f7b3-cebc-4873-9eff-8b17e678947f" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 5, + "operation": "equal", + "value2": 5 + } + ] + } + }, + "name": "IF7", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [750, 410], + "id": "668ff49b-0ab6-476e-987c-23ad3e31f01a" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 6, + "operation": "notEqual", + "value2": 5 + } + ] + } + }, + "name": "IF8", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [900, 410], + "id": "86cb816b-0a96-4e04-baca-6fd0b81963bd" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 6, + "operation": "larger", + "value2": 5 + } + ] + } + }, + "name": "IF9", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1050, 410], + "id": "c7b5d37c-ef3d-4e52-b577-61e07b741943" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": 6, + "operation": "largerEqual", + "value2": 5 + } + ] + } + }, + "name": "IF10", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1200, 410], + "id": "9058992b-0369-43fb-b03b-566a891e111b" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n.io", + "operation": "endsWith", + "value2": "io" + } + ] + } + }, + "name": "IF11", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [600, 670], + "id": "e59a8821-d56d-445f-948f-cdbf113d7185" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n", + "value2": "n8n" + } + ] + } + }, + "name": "IF12", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [750, 670], + "id": "e30e0fda-749f-4fa1-84d3-f662b35d14cd" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n", + "operation": "notContains", + "value2": "9" + } + ] + } + }, + "name": "IF13", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [900, 670], + "id": "680373c4-912e-4c35-8dd4-6682cc215914" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n", + "operation": "notEqual", + "value2": "n9n" + } + ] + } + }, + "name": "IF14", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1050, 670], + "id": "1883b843-2bd0-44f1-8e1f-f371dcbb6276" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n", + "operation": "regex", + "value2": "/n[1-8]n/i" + } + ] + } + }, + "name": "IF15", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1200, 670], + "id": "7b167295-0811-4aa6-a769-beaac7f91a24" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "value1": "n8n.io", + "operation": "startsWith", + "value2": "n8n" + } + ] + } + }, + "name": "IF16", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1350, 670], + "id": "39c6a9fd-c9ea-4528-b8ac-c9461e053ef5" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [], + "string": [ + { + "operation": "isEmpty" + } + ] + } + }, + "name": "IF17", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1500, 670], + "id": "e0b3a955-6f8d-4a7b-bd09-8eb779d9bd42" + }, + { + "parameters": { + "conditions": { + "boolean": [], + "dateTime": [], + "number": [ + { + "value1": "={{}}", + "operation": "isEmpty" + } + ] + } + }, + "name": "IF18", + "type": "n8n-nodes-base.if", + "typeVersion": 1, + "position": [1350, 410], + "id": "1b87e5de-dd4e-40b5-b54c-4402edd94462" + }, + { + "parameters": { + "functionCode": "throw Error('Problem in boolean statement');\n" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [800, 90], + "notesInFlow": true, + "notes": "Boolean Error", + "id": "a2347b9b-db80-4e15-8863-32288e42f3d1" + }, + { + "parameters": { + "functionCode": "throw Error('Problem in Date&Time statement');\n" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [790, 250], + "notesInFlow": true, + "notes": "Date&Time Error", + "id": "95f68b92-15db-48db-89a4-9c8e0465be49" + }, + { + "parameters": { + "functionCode": "throw Error('Problem in Number statement');\n" + }, + "name": "Function2", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [840, 540], + "notesInFlow": true, + "notes": "Number Error", + "id": "33a9a8db-7c54-4154-ad8c-b03050b9341c" + }, + { + "parameters": { + "functionCode": "throw Error('Problem in String comparison statement');\n" + }, + "name": "Function3", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [970, 840], + "notesInFlow": true, + "notes": "String Error", + "id": "919cfdb2-72b2-41b5-aaaf-5df780fe57ba" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "IF", + "type": "main", + "index": 0 + }, + { + "node": "IF1", + "type": "main", + "index": 0 + }, + { + "node": "IF2", + "type": "main", + "index": 0 + }, + { + "node": "IF3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF": { + "main": [ + [ + { + "node": "IF4", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF1": { + "main": [ + [ + { + "node": "IF5", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF2": { + "main": [ + [ + { + "node": "IF6", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF4": { + "main": [ + [], + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF5": { + "main": [ + [], + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF10": { + "main": [ + [ + { + "node": "IF18", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF9": { + "main": [ + [ + { + "node": "IF10", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF8": { + "main": [ + [ + { + "node": "IF9", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF7": { + "main": [ + [ + { + "node": "IF8", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF6": { + "main": [ + [ + { + "node": "IF7", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF3": { + "main": [ + [ + { + "node": "IF11", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF11": { + "main": [ + [ + { + "node": "IF12", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF12": { + "main": [ + [ + { + "node": "IF13", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF13": { + "main": [ + [ + { + "node": "IF14", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF14": { + "main": [ + [ + { + "node": "IF15", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF15": { + "main": [ + [ + { + "node": "IF16", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF16": { + "main": [ + [ + { + "node": "IF17", + "type": "main", + "index": 0 + } + ], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF18": { + "main": [ + [], + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "IF17": { + "main": [ + [], + [ + { + "node": "Function3", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/93.json b/packages/testing/playwright/test-workflows/workflows/93.json new file mode 100644 index 0000000000..723117831a --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/93.json @@ -0,0 +1,115 @@ +{ + "createdAt": "2021-03-03T13:27:06.481Z", + "updatedAt": "2021-03-03T13:32:50.258Z", + "id": "93", + "name": "Move Binary Data:toJSON:toBinary", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "490486f2-7ea9-410e-9281-84cd27836115" + }, + { + "parameters": { + "mode": "jsonToBinary", + "options": {} + }, + "name": "Move Binary Data", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [600, 300], + "id": "9ddb3642-7086-4f67-8b20-9255bc2b99cc" + }, + { + "parameters": { + "functionCode": "item = {\n name:'test',\n indexes:[1,2,3],\n subobj:{\n name:'subtest'\n }\n};\nreturn item;" + }, + "name": "FunctionItem", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [450, 300], + "notesInFlow": true, + "notes": "Set json data", + "id": "8c99a563-2438-4822-b35d-3016c7524c50" + }, + { + "parameters": { + "options": {} + }, + "name": "Move Binary Data1", + "type": "n8n-nodes-base.moveBinaryData", + "typeVersion": 1, + "position": [750, 300], + "id": "43d6faba-afc5-45bd-b477-a28054b75ddf" + }, + { + "parameters": { + "functionCode": "if(JSON.stringify($node['FunctionItem'].json)!==JSON.stringify($node['Move Binary Data1'].json)){\n throw new Error('Problem in move binary node');\n}\n\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [900, 300], + "notesInFlow": true, + "notes": "Evaluate the conversion result", + "id": "e4fbc1b7-b88e-49c3-bb0c-9dda8a447617" + } + ], + "connections": { + "Move Binary Data": { + "main": [ + [ + { + "node": "Move Binary Data1", + "type": "main", + "index": 0 + } + ] + ] + }, + "FunctionItem": { + "main": [ + [ + { + "node": "Move Binary Data", + "type": "main", + "index": 0 + } + ] + ] + }, + "Move Binary Data1": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "FunctionItem", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/94.json b/packages/testing/playwright/test-workflows/workflows/94.json new file mode 100644 index 0000000000..7403720465 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/94.json @@ -0,0 +1,113 @@ +{ + "createdAt": "2021-03-03T14:18:03.010Z", + "updatedAt": "2021-03-03T14:18:09.549Z", + "id": "94", + "name": "XML:toJSON:toXML", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "50d8428b-c132-49cb-8f4c-2eeba448d666" + }, + { + "parameters": { + "mode": "jsonToxml", + "options": {} + }, + "name": "XML", + "type": "n8n-nodes-base.xml", + "typeVersion": 1, + "position": [650, 300], + "id": "664b8c25-5107-4715-a463-9a954965c096" + }, + { + "parameters": { + "functionCode": "item= {\n name:'testing xml',\n arr:[{key:'item1'},{key:'item2'}],\n subobj:{\n arr:[1,2,3,4,5],\n secondarr:[{key:'subitem1'},{key:'subitem2'},{key:'subitem3'}]\n }\n};\nreturn item;" + }, + "name": "FunctionItem", + "type": "n8n-nodes-base.functionItem", + "typeVersion": 1, + "position": [450, 300], + "id": "dfb38369-2fb3-4d92-b843-b663b3a4675a" + }, + { + "parameters": { + "options": { + "explicitRoot": false + } + }, + "name": "XML1", + "type": "n8n-nodes-base.xml", + "typeVersion": 1, + "position": [800, 350], + "id": "7085c1d8-a216-47a7-98d1-2f5e9e3eda47" + }, + { + "parameters": { + "functionCode": "if(JSON.stringify($node['FunctionItem'].json) !== JSON.stringify($node['XML1'].json) ){\n throw new Error('Problem in XML conversion');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [990, 350], + "id": "f03b8331-fa37-4aeb-97c9-0a3514942f96" + } + ], + "connections": { + "XML": { + "main": [ + [ + { + "node": "XML1", + "type": "main", + "index": 0 + } + ] + ] + }, + "FunctionItem": { + "main": [ + [ + { + "node": "XML", + "type": "main", + "index": 0 + } + ] + ] + }, + "XML1": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "FunctionItem", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/95.json b/packages/testing/playwright/test-workflows/workflows/95.json new file mode 100644 index 0000000000..fff9ff8314 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/95.json @@ -0,0 +1,78 @@ +{ + "createdAt": "2021-03-03T14:28:28.227Z", + "updatedAt": "2021-03-03T14:28:29.476Z", + "id": "95", + "name": "Set", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "32be2fcf-b143-442e-877f-96b51b0b5148" + }, + { + "parameters": { + "values": { + "string": [ + { + "name": "name", + "value": "test" + } + ] + }, + "options": {} + }, + "name": "Set", + "type": "n8n-nodes-base.set", + "typeVersion": 1, + "position": [430, 300], + "id": "17c6fa30-1a0e-4d29-8c73-ef9357d5f877" + }, + { + "parameters": { + "functionCode": "testData = JSON.stringify({\n name: \"test\"\n});\n\nif(JSON.stringify($node['Set'].json)!==testData){\n throw new Error('Error in Set node');\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [600, 300], + "notesInFlow": true, + "notes": "Verify the result of set node", + "id": "c6e9a289-5551-4db5-8d32-a11953bc92d6" + } + ], + "connections": { + "Set": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Set", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/96.json b/packages/testing/playwright/test-workflows/workflows/96.json new file mode 100644 index 0000000000..3dec5b1596 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/96.json @@ -0,0 +1,77 @@ +{ + "createdAt": "2021-03-03T14:48:52.147Z", + "updatedAt": "2021-03-03T14:49:01.728Z", + "id": "96", + "name": "MessageBird:Sms:send:Balance:get", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "a19a2b96-9d4e-40dc-ae19-ffa7d1de094c" + }, + { + "parameters": { + "resource": "balance" + }, + "name": "MessageBird", + "type": "n8n-nodes-base.messageBird", + "typeVersion": 1, + "position": [500, 240], + "credentials": { + "messageBirdApi": { + "id": "61", + "name": "MessageBird creds" + } + }, + "id": "ab3e0402-21cc-4699-8ba3-b995dd5f17bc" + }, + { + "parameters": { + "originator": "4930270504079 ", + "recipients": "4930270504079 ", + "message": "TestMessage", + "additionalFields": {} + }, + "name": "MessageBird1", + "type": "n8n-nodes-base.messageBird", + "typeVersion": 1, + "position": [500, 400], + "credentials": { + "messageBirdApi": { + "id": "61", + "name": "MessageBird creds" + } + }, + "id": "67922f27-a0c3-49c9-a48f-98495a45e9e3" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "MessageBird", + "type": "main", + "index": 0 + }, + { + "node": "MessageBird1", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/97.json b/packages/testing/playwright/test-workflows/workflows/97.json new file mode 100644 index 0000000000..899ea00ba3 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/97.json @@ -0,0 +1,443 @@ +{ + "createdAt": "2024-02-14T09:47:52.295Z", + "updatedAt": "2024-02-14T09:47:52.295Z", + "id": "97", + "name": "Crypto", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [880, 760], + "id": "17f0290e-2fc4-4bb8-a8fe-da8b0ad82d11" + }, + { + "parameters": { + "type": "SHA256", + "value": "n8n" + }, + "name": "Crypto1", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1380, 560], + "id": "8853a37b-fcf3-4ac7-913e-964a48497339" + }, + { + "parameters": { + "type": "SHA384", + "value": "n8n" + }, + "name": "Crypto2", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1530, 560], + "id": "cf4718ee-852d-48f0-b96e-048283221cbd" + }, + { + "parameters": { + "type": "SHA512", + "value": "n8n" + }, + "name": "Crypto3", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1680, 560], + "id": "8d05e80a-e7ff-4ae8-9f04-8a4f33579308" + }, + { + "parameters": { + "functionCode": "testData = ['5877e26c078d6409fde54d508bf25721','636396f02b6571e40d8fe91cba550515c0cdc0e7d314c210e00b02256375a796','c7049c8950ea211bec236edffb37cbecf2aa338443c5e048c1cbb4e2ee20eb60fa9a1d34699d7a86e7362b010bb4ffe7','a8a7eec953f1f31484a479c84982d52847de602d7f220ac3903518369a7536693d60882e5eb782599e72024fb649cc03aa0a19ebce632e9039b4f604335834af']\n\nfor(let i=0;i<4;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i]){\n throw new Error(`Error in HASH: ${$node[`Crypto${i}`].parameter[\"type\"]} operation`);\n }\n}\nreturn items;" + }, + "name": "Function", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1880, 560], + "notesInFlow": true, + "id": "d4232a52-6eed-494e-b99a-13668c58f05b", + "notes": "Verify hash values" + }, + { + "parameters": { + "value": "n8n" + }, + "name": "Crypto0", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1230, 560], + "id": "3c6f13f3-1202-4629-be6d-8a2ecd973752" + }, + { + "parameters": { + "action": "hmac", + "value": "n8n", + "secret": "secrect" + }, + "name": "Crypto4", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1230, 710], + "id": "9cc4ea7c-2c71-4a2c-bdb8-208576381724" + }, + { + "parameters": { + "action": "hmac", + "type": "SHA256", + "value": "n8n", + "secret": "secrect" + }, + "name": "Crypto5", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1380, 710], + "id": "0b318b49-fd2f-4ad7-9927-4048ad87009d" + }, + { + "parameters": { + "action": "hmac", + "type": "SHA384", + "value": "n8n", + "secret": "secrect" + }, + "name": "Crypto6", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1530, 710], + "id": "e4fc0137-576a-4401-8caf-5198ab0970e9" + }, + { + "parameters": { + "action": "hmac", + "type": "SHA512", + "value": "n8n", + "secret": "secrect" + }, + "name": "Crypto7", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1680, 710], + "id": "f1193f43-762d-4659-9444-ebea098c897e" + }, + { + "parameters": { + "functionCode": "testData = ['3fb7c95bca84c0bf49045b4e6a279dc0','a8066096944b87daa8d0459629d8f3958d35fa453c310e7370b619d0b81ce48e','08bec8212275cd79a1c6bf52cad5b31ccd46ec87c7a8a9d1c8589c816f8a7124313528040b138229e15c32c1b3c82b80','0f53f3a374314123991b32e47159ad44e1c61d1c0e96809c1f19d54a5e955c06d5b633f376f2a8419e36ea4b63346fcb39d389714c344771140fd512ac55723a']\n\nfor(let i=4;i<8;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i-4]){\n throw new Error(`Error in Hmac: ${$node[`Crypto${i}`].parameter[\"type\"]} operation`);\n }\n}\nreturn items;" + }, + "name": "Function1", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [1880, 710], + "notesInFlow": true, + "id": "b4c78dc0-9064-4de6-9c9d-1e6d6ce4b716", + "notes": "Verify hmac values" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "ripemd", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto11", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1400, 900], + "alwaysOutputData": true, + "id": "95830d32-cbdc-4fe9-914b-0b799ff503a7" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "ripemd160", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto12", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1580, 900], + "alwaysOutputData": true, + "id": "66906a33-ae4d-4e65-b809-614fecbc2c56" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "rmd160", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto13", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1780, 900], + "alwaysOutputData": true, + "id": "6832df1e-f3ff-479a-ac25-f04ed8be05ac" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "sha1", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto14", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [2040, 900], + "alwaysOutputData": true, + "id": "4549f4f2-eadb-4df0-8e27-701d62f7d750" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "sha224", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto15", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [2170, 900], + "alwaysOutputData": true, + "id": "07643489-a8fa-40c7-a1df-b3b910a5c83a" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "sha256", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto16", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [2300, 900], + "alwaysOutputData": true, + "id": "bde3009c-b253-4ff6-b7bc-89d3b02ef2b6" + }, + { + "parameters": { + "functionCode": "testData = [\n '9d0bc120a967882743370f715dfa90789c4d9322a4faf691d1f80b306c6bd900bfcba5f62946ef88ba7e1fdd008ff3efe8545b979299b14e0e0eccd3e33b1afa11397494526e31968f13d2ac3e3deaa2bc4a27862b7025444c91ebed5f1b98d2c0390630d8eabc6a7662a9ab069cb3aab273ae1c09f20f51fa8e04af4bcccbc6',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n 'b9d0c7c4acb8ef55b5c323f82755fb420e5145bafe4de34925e86c53c9f652eb08ec0d87a9be95ca0c0d90b16dd1b55f1200d87c13e4cdb1ae902f41998314f7b85ffc82f0f1d5296119bd92e23ae685b8b59a3a4ba4b8d54db2314c077b1b238c4ac582e36b51c18c0b5474f0d68c1f42e01c08985111ded4cfd3463068d89a',\n '1387958052cf887bd50925a8d44bbf8f138cdd23f51a3422028edf39ad413a1591f5ebd653c4f225298cd6857044648bcfb768113674e7bd11c632fb0fc40cfa646301934b8fcf4da9799272a737155a239e1f8db5e92a23bfa2aeabc6732f5be14078a5815fff542842efed681ac3b919f9d42bfc822b0fd611c0b22286f241',\n '922659a8d40b12f81080425a8676830be06f26dd8cd18cad25d02055332c94b8b9634598ef5b172ee53e53788d33c183bf0984ae3b48d792f426a601dbf2eb4771bc844bc2464de8ca5b6746bbdc2f1713a1e1d57a6970568f033e588c759e4b179b791b7fcb75d323c98cc5c6f33c3659410b159c94bc13834e81ce297ce98d'\n]\n\nfor(let i=10;i<17;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i-10]){\n throw new Error(`Error in Hmac: ${$node[`Crypto${i}`].parameter[\"algorithm\"]} operation (node:Crypto${i})`);\n }\n}\nreturn items;" + }, + "name": "Function2", + "type": "n8n-nodes-base.function", + "typeVersion": 1, + "position": [2470, 900], + "alwaysOutputData": true, + "notesInFlow": true, + "id": "ae850710-ba68-44a1-892f-62dc2f270e53", + "notes": "Verify signing values" + }, + { + "parameters": { + "action": "sign", + "value": "n8n", + "algorithm": "md5", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" + }, + "name": "Crypto10", + "type": "n8n-nodes-base.crypto", + "typeVersion": 1, + "position": [1220, 900], + "alwaysOutputData": true, + "id": "1c33cc3f-7124-4156-99ce-47c8d79408da" + } + ], + "connections": { + "Start": { + "main": [ + [ + { + "node": "Crypto0", + "type": "main", + "index": 0 + }, + { + "node": "Crypto4", + "type": "main", + "index": 0 + }, + { + "node": "Crypto10", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto1": { + "main": [ + [ + { + "node": "Crypto2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto2": { + "main": [ + [ + { + "node": "Crypto3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto3": { + "main": [ + [ + { + "node": "Function", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto0": { + "main": [ + [ + { + "node": "Crypto1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto4": { + "main": [ + [ + { + "node": "Crypto5", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto5": { + "main": [ + [ + { + "node": "Crypto6", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto6": { + "main": [ + [ + { + "node": "Crypto7", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto7": { + "main": [ + [ + { + "node": "Function1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto11": { + "main": [ + [ + { + "node": "Crypto12", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto12": { + "main": [ + [ + { + "node": "Crypto13", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto13": { + "main": [ + [ + { + "node": "Crypto14", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto14": { + "main": [ + [ + { + "node": "Crypto15", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto15": { + "main": [ + [ + { + "node": "Crypto16", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto16": { + "main": [ + [ + { + "node": "Function2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Crypto10": { + "main": [ + [ + { + "node": "Crypto11", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": { + "instanceId": "8e9416f42a954d0a370d988ac3c0f916f44074a6e45189164b1a8559394a7516" + }, + "pinData": {}, + "versionId": "25a0d83c-9242-42bd-8613-6157d43d59a4", + "triggerCount": 0, + "tags": [] +} diff --git a/packages/testing/playwright/test-workflows/workflows/98.json b/packages/testing/playwright/test-workflows/workflows/98.json new file mode 100644 index 0000000000..d6780f4204 --- /dev/null +++ b/packages/testing/playwright/test-workflows/workflows/98.json @@ -0,0 +1,150 @@ +{ + "createdAt": "2021-03-04T08:38:05.147Z", + "updatedAt": "2021-03-04T08:38:05.147Z", + "id": "98", + "name": "Disqus:Forum:get getCategories getThreads getPosts", + "active": false, + "nodes": [ + { + "parameters": {}, + "name": "Start", + "type": "n8n-nodes-base.start", + "typeVersion": 1, + "position": [250, 300], + "id": "9468a1d9-c07c-4001-804d-f308db6f79a3" + }, + { + "parameters": { + "id": "disqus-demo-page", + "additionalFields": {} + }, + "name": "Disqus", + "type": "n8n-nodes-base.disqus", + "typeVersion": 1, + "position": [500, 300], + "credentials": { + "disqusApi": { + "id": "5", + "name": "Disqus token" + } + }, + "id": "8c4e3006-b4d8-4015-9eeb-5cb77b7a46aa" + }, + { + "parameters": { + "operation": "getCategories", + "id": "disqus-demo-page", + "limit": 1, + "additionalFields": { + "order": "asc" + } + }, + "name": "Disqus1", + "type": "n8n-nodes-base.disqus", + "typeVersion": 1, + "position": [650, 300], + "credentials": { + "disqusApi": { + "id": "5", + "name": "Disqus token" + } + }, + "id": "f1db25d5-8f78-4f29-a4f3-d27a3571370e" + }, + { + "parameters": { + "operation": "getThreads", + "id": "disqus-demo-page", + "limit": 1, + "additionalFields": { + "order": "desc" + } + }, + "name": "Disqus2", + "type": "n8n-nodes-base.disqus", + "typeVersion": 1, + "position": [800, 300], + "credentials": { + "disqusApi": { + "id": "5", + "name": "Disqus token" + } + }, + "id": "4fcd6985-5dc8-4425-b852-25824964082a" + }, + { + "parameters": { + "operation": "getPosts", + "id": "disqus-demo-page", + "limit": 1, + "additionalFields": { + "order": "desc" + } + }, + "name": "Disqus3", + "type": "n8n-nodes-base.disqus", + "typeVersion": 1, + "position": [950, 300], + "credentials": { + "disqusApi": { + "id": "5", + "name": "Disqus token" + } + }, + "id": "0dfe850e-186a-4072-b722-f35e15deeb16" + } + ], + "connections": { + "Disqus2": { + "main": [ + [ + { + "node": "Disqus3", + "type": "main", + "index": 0 + } + ] + ] + }, + "Disqus1": { + "main": [ + [ + { + "node": "Disqus2", + "type": "main", + "index": 0 + } + ] + ] + }, + "Disqus": { + "main": [ + [ + { + "node": "Disqus1", + "type": "main", + "index": 0 + } + ] + ] + }, + "Start": { + "main": [ + [ + { + "node": "Disqus", + "type": "main", + "index": 0 + } + ] + ] + } + }, + "settings": {}, + "staticData": null, + "meta": null, + "pinData": null, + "versionId": null, + "triggerCount": 0, + "tags": [] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f90a45206b..5b9b2c569a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2996,6 +2996,12 @@ importers: eslint-plugin-playwright: specifier: 2.2.0 version: 2.2.0(eslint@9.29.0(jiti@1.21.7)) + generate-schema: + specifier: 2.6.0 + version: 2.6.0 + json-diff: + specifier: 1.0.6 + version: 1.0.6 n8n-containers: specifier: workspace:* version: link:../containers @@ -23013,9 +23019,8 @@ snapshots: axios-retry@4.5.0(axios@1.10.0): dependencies: - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) is-retry-allowed: 2.2.0 - axios-retry@4.5.0(axios@1.8.3): dependencies: axios: 1.8.3 @@ -23028,7 +23033,6 @@ snapshots: proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - axios@1.10.0(debug@4.3.6): dependencies: follow-redirects: 1.15.9(debug@4.3.6) @@ -23384,7 +23388,7 @@ snapshots: bundlemon@3.1.0(typescript@5.8.3): dependencies: - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) axios-retry: 4.5.0(axios@1.10.0) brotli-size: 4.0.0 bundlemon-utils: 2.0.1 @@ -26475,7 +26479,7 @@ snapshots: infisical-node@1.3.0: dependencies: - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) dotenv: 16.3.1 tweetnacl: 1.0.3 tweetnacl-util: 0.15.1 @@ -27647,7 +27651,7 @@ snapshots: '@langchain/groq': 0.2.3(@langchain/core@0.3.61(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0))(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(encoding@0.1.13) '@langchain/mistralai': 0.2.1(@langchain/core@0.3.61(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0))(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(zod@3.25.67) '@langchain/ollama': 0.2.3(@langchain/core@0.3.61(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@1.29.0(@opentelemetry/api@1.9.0))(openai@5.8.1(ws@8.18.2)(zod@3.25.67))) - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) cheerio: 1.0.0 handlebars: 4.7.8 transitivePeerDependencies: @@ -29650,7 +29654,7 @@ snapshots: posthog-node@3.2.1: dependencies: - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) rusha: 0.8.14 transitivePeerDependencies: - debug @@ -30336,7 +30340,7 @@ snapshots: retry-axios@2.6.0(axios@1.10.0): dependencies: - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) retry-request@7.0.2(encoding@0.1.13): dependencies: @@ -30841,7 +30845,7 @@ snapshots: asn1.js: 5.4.1 asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1) asn1.js-rfc5280: 3.0.0 - axios: 1.10.0 + axios: 1.10.0(debug@4.4.1) big-integer: 1.6.52 bignumber.js: 9.1.2 binascii: 0.0.2 diff --git a/test-workflows/README.md b/test-workflows/README.md deleted file mode 100644 index a5ddbe7211..0000000000 --- a/test-workflows/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# test-workflows -n8n workflows used for testing nodes diff --git a/test-workflows/credentials.json b/test-workflows/credentials.json deleted file mode 100644 index 3c0b3f7ca8..0000000000 --- a/test-workflows/credentials.json +++ /dev/null @@ -1,3022 +0,0 @@ -[ - { - "createdAt": "2024-03-04T15:40:29.192Z", - "updatedAt": "2024-03-04T15:54:48.737Z", - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account", - "data": "U2FsdGVkX1+IyUbFB38M0XCIgoH5zoL1tjGnwKq+JzneJyqgreZTc2VXu6wdpgquR4wy1MzA3nTvg/sTFIMRCor4mQxoSesF1ngWRNjm0kYMBFFcLd587DNLysVE9Doq4UpzRjYH8uu18k8PWbhOgOLi9dmiBDhiFSK6xQ1fdTwT6E1F3BkEvx1ckh1nnuzj", - "type": "anthropicApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "date": "2024-03-04T15:40:29.190Z" - } - ] - }, - { - "createdAt": "2021-01-21T13:43:39.125Z", - "updatedAt": "2021-02-09T12:36:44.881Z", - "id": "2", - "name": "Tele2 Public FTP http://speedtest.tele2.net/", - "data": "U2FsdGVkX1/mo3zDTPKE2JYkV/RH0LnA8DWVO8/mLT8ozSNMp5XbO9TCVeMB04h2zn+/RkL8BSqVzusGvPc/hB5wdpECsR9LXQsL2pVLNXkplMlyB8OlRylJ1DFmYuec", - "type": "ftp", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.ftp", - "date": "2021-01-21T13:43:39.123Z" - } - ] - }, - { - "createdAt": "2021-02-15T11:37:03.072Z", - "updatedAt": "2021-07-06T10:39:59.212Z", - "id": "3", - "name": "SMTP creds", - "data": "U2FsdGVkX18AXWFca0iueXujyV9hZbycosL6u3pYftMwTmHEOdwEKlPNFoxVtOsCWy5O00xWs2lV3M3XKIGmS1KWXD3tLMAj5O5Ynk780lFkVkaTOoHAFN5gkggmVawx", - "type": "smtp", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.emailSend", - "date": "2021-02-15T11:37:03.066Z" - } - ] - }, - { - "createdAt": "2021-02-15T11:37:46.005Z", - "updatedAt": "2021-06-26T06:59:11.676Z", - "id": "4", - "name": "IMAP creds", - "data": "U2FsdGVkX19SdPyFa/K5tlg2Tie4djwWc2JOFHLQQFjg07y6TI0V4V6oMiwOYgnAUt4r3n80bASv7w1kmjcvimSFop+9nlPx8pndyVGdUOfn5f9fPwmM6lUQVCGiHRtB", - "type": "imap", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.emailReadImap", - "date": "2021-02-15T11:37:46.001Z" - } - ] - }, - { - "createdAt": "2021-02-15T12:57:59.494Z", - "updatedAt": "2021-02-15T12:57:59.494Z", - "id": "5", - "name": "Disqus token", - "data": "U2FsdGVkX19UyoTbSFiMuYLDR5KP2SWmOu8hBabOu6taMrK1oAmoPdT2ZFr4Yjl2Sq62gA7WfKgE/qqCU2irNVBByXtWLIVeAHGTm6tDKQ+U+OPGDaTNuJciU+RsQ/VpwpN2yZW4CfOBQUR4jONzqQ==", - "type": "disqusApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.disqus", - "date": "2021-02-15T12:57:59.492Z" - } - ] - }, - { - "createdAt": "2021-02-15T13:08:06.531Z", - "updatedAt": "2021-02-15T13:08:06.531Z", - "id": "6", - "name": "Dropbox token", - "data": "U2FsdGVkX18JY4G+S5NaTkmVwYpW6yrfX3bVIkrw45e6Pf1sT0V4fciAHb/fh6oZtToCnmSWIsTdpGAdI4fJuz7Fc5hPMWLVJlxcK9EVnwecFuuCkcKSGqKfC4qQw4z1L5HrFvtRqu3kdLBJ2LERwA==", - "type": "dropboxApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.dropbox", - "date": "2021-02-15T13:08:06.528Z" - } - ] - }, - { - "createdAt": "2021-02-15T13:45:49.854Z", - "updatedAt": "2021-02-15T13:45:49.854Z", - "id": "7", - "name": "pagerduty token", - "data": "U2FsdGVkX1/B3ghuFhz1347NvobE2x7Mi4WjLVFoQpiZVTTDIk3dlz5f/UhX3Pw/59xwwReMvyw8MRo/RRI9/g==", - "type": "pagerDutyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pagerDuty", - "date": "2021-02-15T13:45:49.852Z" - } - ] - }, - { - "createdAt": "2021-02-15T16:04:13.241Z", - "updatedAt": "2021-02-15T16:04:13.242Z", - "id": "8", - "name": "mailchimp key", - "data": "U2FsdGVkX1+37YCqnvgF09N7Dx3kS8AUzXuWJ9ZW2wiyW5lx1gptBpp6HAR1ntabXt/LCHN+nsEaNSKhllEZjoYmxIWWz7r2i43MHIFbPog=", - "type": "mailchimpApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailchimp", - "date": "2021-02-15T16:04:13.177Z" - } - ] - }, - { - "createdAt": "2021-02-16T12:20:17.902Z", - "updatedAt": "2021-02-16T12:20:17.902Z", - "id": "9", - "name": "openweathermap token", - "data": "U2FsdGVkX1/evqLuEr9GFldum4E2ZLRLU+rBW+pVF4Qn8KOCs1BUz4tR6NWiRI3HogaqM0o/vu3jIJfBLE3qyZmcK0SRgQvLhsp7eQ9pLdU=", - "type": "openWeatherMapApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.openWeatherMap", - "date": "2021-02-16T12:20:17.899Z" - } - ] - }, - { - "createdAt": "2021-02-16T14:14:21.988Z", - "updatedAt": "2021-02-16T14:14:21.988Z", - "id": "10", - "name": "sentry io token", - "data": "U2FsdGVkX19boPxIYR9oj9q1i/HeugKAv8UUU5wk0JMzdIALxase4dzBXYIsOe5MiONVrOYUTBR4VScT8HAEExsVY8osfQ+T7QkDKInRn8kmOUdTR05DW2mVQHKNh/Sq", - "type": "sentryIoApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.sentryIo", - "date": "2021-02-16T14:14:21.984Z" - } - ] - }, - { - "createdAt": "2021-02-16T14:58:08.182Z", - "updatedAt": "2021-02-16T14:58:08.182Z", - "id": "11", - "name": "hubsport api key", - "data": "U2FsdGVkX1/Z24uT/B6cgNQGNCMknJBH1bpSAy0nQo/ohxX8SRiguCIRvw0/9aFfOuP7KjS8EnRGzNZmrgITKFeFDORHIt4zwlbW41zrE2Q=", - "type": "hubspotApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.hubspot", - "date": "2021-02-16T14:58:08.180Z" - } - ] - }, - { - "createdAt": "2021-02-17T08:20:03.577Z", - "updatedAt": "2021-02-17T08:20:03.577Z", - "id": "12", - "name": "personal rocket api ", - "data": "U2FsdGVkX1/Dlf+LrEJk5tWsYK8p7xB6XMx92eM7eLuFapQ0y8o9gn8mklaC1Bqv2jm3VUgZY7slENEmUkQ9XxhI9gle6uxzg5FE6FKmE4PN42jLaW/xCaAL7ZYto+8Y/aUWtnsAPWYCjI8e+qgTlN5Fl38vbnDqUwBzMRvc6AYhmSBipr5GPRpHJwkX4+squOyIU6P5Ed1zD6YZjJMkEA==", - "type": "rocketchatApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.rocketchat", - "date": "2021-02-17T08:20:03.559Z" - } - ] - }, - { - "createdAt": "2021-02-17T09:04:43.331Z", - "updatedAt": "2021-02-17T09:04:43.331Z", - "id": "13", - "name": "clickup cred", - "data": "U2FsdGVkX18dAAovXIsWCleujbur0NmOsqVPA90QCZzWC2CNmXL+RCvMVjAuz0USj0QasZ7y5Aiq83qUCHMhidooq/RWPiUcrNXoQePz8bE=", - "type": "clickUpApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.clickUp", - "date": "2021-02-17T09:04:43.328Z" - } - ] - }, - { - "createdAt": "2021-02-17T12:41:45.809Z", - "updatedAt": "2021-02-17T12:41:45.809Z", - "id": "14", - "name": "my drift creds", - "data": "U2FsdGVkX1+AdLjV9aXYN2meYs8Qwbyznr0WHBdcp53s5k+Dc37I0dGW5XsrAM6IjK+u1clbt36uM+86roZo5LeVWYHYeQNhgyKPvfYQyZE=", - "type": "driftApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.drift", - "date": "2021-02-17T12:41:45.805Z" - } - ] - }, - { - "createdAt": "2021-02-17T12:47:31.216Z", - "updatedAt": "2021-02-17T12:47:31.216Z", - "id": "15", - "name": "Drift API credentials", - "data": "U2FsdGVkX18pOmX9k7sDuGnTKOWfEXWUR7chWgIt2UNT0PBJf7fw3hQORICHZla0de/JMQiDGNXFzEY8aBsQ9d83Rx5LnWQlQY+d7rcLMhw=", - "type": "driftApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.drift", - "date": "2021-02-17T12:47:31.214Z" - } - ] - }, - { - "createdAt": "2021-02-17T13:20:35.267Z", - "updatedAt": "2021-10-27T08:37:42.803Z", - "id": "16", - "name": "Zoom JWT token", - "data": "U2FsdGVkX1/nLFjDaTRdH9RqMo/qLJjl49jiPkJkSrHoQaqXeHZkuSEAA79CZidSST1R3MoQHVRcNgipttXNwhUb0IFLQAegDf3yRGbqNxIOuMacwIVDdG7okIo0+fHvZXqeCyBONitjZXKrrqQGRCNLpPsUSdRGa3f0pxtCOLE7QcwzE4lz+JpbOZknrHJ9MkL8AuARjobQFhi6X/xX65iOWHsfPPf50MoaUjk4ItJM1sZePu7lJxFAXLY7qeo7VclA8KPQOjkqMdngfWH3BA==", - "type": "zoomApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.zoom", - "date": "2021-02-17T13:20:35.262Z" - } - ] - }, - { - "createdAt": "2021-02-17T14:22:57.677Z", - "updatedAt": "2023-02-20T11:04:22.768Z", - "id": "17", - "name": "Strava credentials", - "data": "U2FsdGVkX1/KS4H4rG6sH5TJp4CSv5VKNVxNxxV2+SNg+LK33zuDwHoHbWIyNneb6I1FO17ue3F+wTdcpYu7m+PuYBKzth46k1Ld96oPWjszE8w29iYhSjPzstDdDnWJRxt1srFZOGdMIarc/ydhcrpVMvWiNgTruDxzv696z55d9DYSDzL+CM4NuE/y05mpiRbm02f/6qB0vBI+TwooMiNCRrt2pNdP6oNZDy8Wug+8uXzbUpsIQUUdSSGWuG1joIA69mYf28ZXfGptfW2AnrWBMEt59JvKp2wP26oEz3UTEbN0sUpqjdZU7uFvPxNMob2lfvux7j/5lxdgXNsXxe7Haw7elrI7Y2ErUtWjddaw9k5HWlbqZY6bYOIGGdb7iP3UXQ78a8R86h9+/EZDqHhWKK5e95l1v6DRulBR/rriteTeyyxrMMwkm+nUDhxxa5g+IZ3z0QmnWEO81QIwzazpezsQn0XyZ+u2Vgud+u4cTUHFP5L+a/M73u4nHd/8aCoXrNAHXWiwdIwDUXNUgQYQxOz0hceWlZkBj/hrLmG1+O56HPa5YI/6XMHHQUVaREkYuUGuoxiN9TZIsXoNivP7qxkDEJzcQ7Iwfk8LPMOpUKCWptUDBarz731N1MxozADWpaC4xqWjlf7I4T3LzO2n1usn+XYazmDZRorAYDjykhTDoY6wE51GqpSVgaCX9TFV9RTwRBdmDw7vaLJWQ/AaSrfjklLCn8i/aKMG9IIpfor/gaR2/dWwXIMr1a4GlQssSSKpNkidZuQkMUSUydbwLzYMgn0Gedw5JW6h93KLgrrkAW5nxeHpntLYgMObrUuzdK+lRLF2vbglLWUAw6uAjIjRO9Web0EjVFyG4K+e+Z4sYJdTtQYeNLoHK67PqGgjMMqlmwws9ryyUHFPZvCJ0vJHQXZg4p6D1/FwHmLYToWNrsbxFM3YXl9WUJtLsfCG8clZlP4Y67zm+bGNDHIgulrsJ49uOEFvvHdFjeVRr4v8rH7FZIvEej8w4GuLCqyI1bCyFvEoJ6fxoA86JEzbfh4Y2sQUUAZv7VEPOBstk3lzLyOtX8Kdv5Q4YgsKc265dyXVRKjJEP9wWqKyuGB0tsD9eUqFIz/xu/BJ457sxMV4Icq1lL0TpXv2ncuZpl/BNUGSRFoKm9xWMtPjwWsDsyt2apHYoGkODK9zWuiZ2G/kE5afzUz2+U90hu8Q5ekBvnI6B16w5sYH4gMc5a47JDL6MSNc9kXt5mT9kW3mcOivAOEPCCJJ/mvozb5HzURYKKsZOXM8NmLUdZIBTVudLY9XYQ9Jm7lNlV0d6JoT5T6y8gxVrK3ViqzoC4YGpkhBJ3GtlQjXhHLFhyQiVYq5tDt2h1wBskFZrrP5BwmlVeR35pGHtlzme1FSRfM8qyA1H9Cw4bxEm4AAgZOAuyk3Lcy9zglYH6JsNdX8Fa16PNp6uCtaCWhd+wd+iwOuCnvcSUohg07Jzaj7QpZFZ5eUZlRsfSLhW6YZkBCqdjmOU6Fix0+BuYAonQigoZUQyr1UE0rRlo2hxLqTbaGQh4XTCZvLE+xsI/YVVtY+bwXK681sM2tqYf6ebua1J3HJXm24rNbCdwwkdGe0YYm57o9xTgKajRE2bHPiA3d6iu+mB/vgufVJ2RCdbU+7tAN8", - "type": "stravaOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.strava", - "date": "2021-02-17T14:22:57.672Z" - } - ] - }, - { - "createdAt": "2021-02-17T15:36:32.700Z", - "updatedAt": "2021-02-17T15:36:32.700Z", - "id": "18", - "name": "Slack Token", - "data": "U2FsdGVkX18Eai5B3FetbX23OclBkxKHbhYWwokHtZWEVfZRpMuPar9ZOZ0pvU1XhupZUORmHqPUr6ArDnvNGjZW4U8uZmtWUgp27RDSHji3d0JR071WsmtszpMEEBXHtspvSq8HYfkzTfBz65IZNLuBrpkDK3zSLmWPL1XAHlY=", - "type": "slackApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.slack", - "date": "2021-02-17T15:36:32.693Z" - } - ] - }, - { - "createdAt": "2021-02-18T08:26:48.413Z", - "updatedAt": "2021-10-27T08:50:17.141Z", - "id": "19", - "name": "Gitlap token", - "data": "U2FsdGVkX1+3yzHMp71Ko+7dex/Dl7iQ4p0PVfNRDItUQgmQR3TUko+ATWWdPaaFbp5wMCszYx7YACqeqxtUcg==", - "type": "gitlabApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.gitlab", - "date": "2021-02-18T08:26:48.398Z" - } - ] - }, - { - "createdAt": "2021-02-18T09:07:01.559Z", - "updatedAt": "2021-02-18T09:07:01.559Z", - "id": "20", - "name": "Medium token", - "data": "U2FsdGVkX1+YQ8h3jLxoLEdAteuDiJ8wtSB7wTl9X9oFgLceBq694vCaXy7kCZHTRZBl0zTTi9UthBh9m8VwT4/+Ew+Q72mi+Auf6p3i4Sy52wXxrOkXDcF4TIt6A18tIgv9jyaBixm7ycd4NEaQ7A==", - "type": "mediumApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.medium", - "date": "2021-02-18T09:07:01.554Z" - } - ] - }, - { - "createdAt": "2021-02-18T10:24:53.036Z", - "updatedAt": "2021-02-18T10:24:53.037Z", - "id": "21", - "name": "Github creds", - "data": "U2FsdGVkX19vvKc1mHdf6RBllMHreMQEoOQiPXi15UKEoDvcCMG00nClARleUwCKe1zbUXRBnVLsE6zwbAsIIcacIcWlRYi/d8IG54cr/Y+vRuqkU1Zs6lkefaCd4MM/U7XU/KB7Wkrg2pvhwk7jIw==", - "type": "githubApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.github", - "date": "2021-02-18T10:24:52.976Z" - } - ] - }, - { - "createdAt": "2021-02-18T14:41:23.986Z", - "updatedAt": "2023-03-06T15:34:18.960Z", - "id": "22", - "name": "Gmail 0auth", - "data": "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", - "type": "gmailOAuth2", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.gmail", - "date": "2021-02-18T14:41:23.732Z" - } - ] - }, - { - "createdAt": "2021-02-18T15:18:21.795Z", - "updatedAt": "2023-03-06T15:34:18.782Z", - "id": "23", - "name": "Google calendar 0auth creds", - "data": "U2FsdGVkX1+qd8+Rp+6Z7qcqFaHdp/hHy53JfQIaZifRycH7GAmAc2gIQcaWnlc/8oeyNl6p8GCD1w6MNVuRgeMBIo0/cjB49tU3pJkw3UfXWJWW+I2QIivOpCk3jDyACzLEgEeyzY7R/vn1wsYjlyx/dUgzG7wTDRg0XBjDDkPcxFrymTV1n6JQUQ9/NTVrv5yibMrh2vF62wOP1YJpzhCRMNCIKx6N9GGBiRJo040fiQMVVpMZ1LpAlIhIoXMJAZRINk6wJocv3cdFt5QC1p3TkvB/lPwMAmY701YMIsZ7X5X1OkNqmrec+yyFphOefHpW1nXD3AD1H3Ez1WzZtZAr4X5rvWVrs0Tza7qB8bxBvSJx3WUbsyoH/bMwleERb/cIl9Vhj3CJR3B0VQJTUxcgu8E4nGqCxoFTUfnUD8C/Ekh5RAnMyNZaS6JJzKTSHpaXpszJCyc5QTljncg88xsrckue1EXCOKl83Z4mEK7PdGCHwX/xpGMK1Cnl1wbfbb0pRhgg+KIxzM16Ap0OuXtvQQT7sllH3sdo5J1+vIYJpqujhYlm3VVAbV/xy5fledVTVraMk4tKKFYCAvFT89bXpb67BbyD/xUDOaUyOjgWD5chJqbWA3TYg3VvHhOtuu5tXIKhpiDfarJmDS+8WAS6Pfbpex4B7nLPJ/WVulRX731FCDXd0XcY3emd16+d+n+ykYmHSgeun6yHQVlMyU3LAWBMlu5BZCBrGmvH9mQWHoxwNeDQABgbLllhRUHnsSFGTM3MJolm5IxTDLSMG/Mn6w2UmheayEXvuDdYLUQaGBhr5sxRO3kYS7/q6xNFcq65Mrn6j6M5zE9SUR8dkCLR4GXlAi/qdBQw63ohI7AcTV/+Ebn1YZLQhIF78VGSs0bb1897nyi1a7dUYr1y7sTRrJ3DohKdi6Ccuydpg48WZVbSnes8T8dOrbpiRRroYuX3PJoICf3rqQw+JsxM6bhZbM72z5dh8e4AKvb5QcHwqm/HbBI9dhNp/sjN01DdP3kcioH1bmNBcbRru/Xob2SJdDupjc3ZSSuizk0AtLPYBM79ZeYqH2th3Q3d5azkIGGDpSZ3n5uKilXMjkIda3y/7AMATiiy63hXrrAjgQbJF+D8nDbhCity/xPG+l7MY3sHBjl2c/+kLdAbh1wu1KsmKIRbOklingBSg91DJFdwolk24eLwgEifGvi3kQfPssWN+Em3G9wWHVU6ncDdnlfysz7yH5YtwXGnN4Go5Ytpa5eAPKtJ15g4KhSYahzIOPqNVWSzZjNU/O9y1oUEmqq8yLl/hyAhlOuS/pSmAkpFspivnFtYtQ9Q9BsjN2QII2pYKriqD7NI0pj6sO1issRRVYwabAZFu7kHVUcGgBqVwyJNLW5ywJF8EUqXBnE6/6T2VM0AbN/C78wKksCcxfqUdM0ivhpC0IG/rRsb72fEjWtCA2NFKtKrm/17NTs+EJWY+nO+9v56nfzPv2sSzw==", - "type": "googleCalendarOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleCalendar", - "date": "2021-02-18T15:18:21.790Z" - } - ] - }, - { - "createdAt": "2021-02-18T16:03:02.703Z", - "updatedAt": "2023-03-06T15:34:18.788Z", - "id": "24", - "name": "Google Tasks 0auth creds", - "data": "U2FsdGVkX1+edD61FSggCKY04QefXoggIREO7JWOw+3HTPR+yAxw8+oJRZ8TiP4p7A8ozDgpmqpwR1sMJrM8UtWTmgW0qUEPqQHNeCldjVRvkON3lklRNBdnLWELMojccrm7itIxqwRc78GSbdgyxu0yFnP0BP7zqoXaaKTxdvETTsYlKeEqI1g7T7Pe3uThCsI6EPSlN5dNTPCaQ6JqThXtA7oG0ycppNfLntj6wGTh/WVfcXFfpVwXTioNxYQQrcnZ4CvM1oV7oG24I6pfbgXg1XtB/jOKuYDmxvCdiv9ATCD51bj2PqJXxcWD7B4EC7cpGzkkSx8VCOQVM/zBxFAsfvWOdKKYVJ3WG7NWg2D8kFHsAo+Z1hwL4kjKXeYPQP5aBKEEGgi05ekXa+6R3LEz0lqrKN+BlztWsJ5v1K0T6Sijiw0ejHQlh1kNSeLXomP7NBlSravGUXTV7DM8uqpE8Wy6GUeRcS0xrl0ih45fdLWAv/M2gQ7T+ga3VNIGluGtNXraCrdpl4mqeZH/MdReshoOYym6owwgTg7fJ+ZdzMfG78NfB7/WuOahtv2u1IK0L5l9ehMvQzdGiWA+UTfC1o8LT5euQqM7HFskEbEp9/8w4cgOFMEYH6r+A/J3U2iji3jYVKUNz/g4rb/R/8uV5z+AjNgu7V+BM7noI3+IGf7SEtsg+G71pGB15R8w6hbcjcQD17WcPWXULCyJ5LbdQntmYc3t5ApBHJ+axO49TZAQN9Di8n7MVOL6C3lsSfcL7Rno+k8mUXJAdYmjxb9hGTSqeVLrTklRor41zm3yjiXRJTxnyuj2zOL0Sf9KmZMtVq4uT0tzK+w3KFx3qeZUjgU2z3tCOTNkfWX9pIbeqqQwvnLRONj5SYekf8fPk8z3nR838eGWGBE78fsSWmTn3PZV6o3Ipo/cX/Upm7ME8oaUnUFml5C++eOPEzru/fxLGuYmkf63o61u4CPEUvPdGfBiG8VmdWK7INrN9zbIj/HhryslI4btVPlVQI6yYgj54xBj3kXC7YhjVVRv7AtKojWkb40nnDuHsfbmCiUFtW61Fc9Tzk+QtunwKMIA0LL0Opt4m8FMF3gO1chF0i7xHiwQaezxvpEt4o+b0RL1ELg5GNmgOFEQpk0SgX/o6duf4NcK/jnM0a52eRC1/P6EJf5cbBO4uAz4JZgF0x4H42aN5fkg3foDdc+CjSRo0sUztGX2CS5Bz9drFRxPbJ43tntYZLH2SECg/T/l7KMT7XHLuakNOME5NUZ6XQ+A", - "type": "googleTasksOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleTasks", - "date": "2021-02-18T16:03:02.698Z" - } - ] - }, - { - "createdAt": "2021-02-19T07:23:21.167Z", - "updatedAt": "2023-03-06T15:34:18.909Z", - "id": "25", - "name": "Google Contacts creds", - "data": "U2FsdGVkX19VGtbv7GPw5kvNUHdRv0KD24G2pKQkF3HBq/VxgslaL3JS909bS68gIPBgV6cbuz4UiDBK/nodQ4L9Gus7lpfM8kuNC3ojlyn/AQvYqfuO+IBpGqkeO5surLDhdnCZBcHBOZlWDruaqT+a92ewm9i7PQJNQBcQ8F5zcOBJr2ZM3fZIxVNA7bhl+T1qeUrdGLOQSxVc/OlH8HNTttxpQhCI8gYapBOhPUscvKKe4lcqGJftSSyohqJX59PGNtostOku4GU4iNr5RxU6m0BhqVqQSt1wYxkbO+L5C8VqwFp6zndX5wbqcc+Z2OzkjBLhl/MPc+ZVX8fHsPpWopbcplX81zOr6bNbzKcaoX2FyIccV6YeSNw7zSVrVfQog3qZd1KMLbK8Tpwj1zqH/J07BWnu2yJf/6EPe6jQPU099qObwxGX/AcZbVDJeVzPeiTQNhQNFf2z2SKb5SYecbEz9QA7i4BZxPVOcC+1Xzuq83Rt9VQfYOqSkqVphD11U6fXfULCmkW2Rns/y+FRqMi+XG+72eWM7U7emmBtm+4mjH/WMKDTe6EwF11VFE/6MYoYfwAVWwyZ4OTyZZMC118oenid5AsTeRjEP2zBD58biK3MTHTlQCKdbbySW+bjfJ+I9subcgUoHBlrFBnN+pmT/0mmR8+ijwP6eaItaxjwjbh4bW2Lco6vh/2w5aC/DohIYA6DdvQs1xNs9TgKXsvyVwYRr5cnzyMpk2hVbeeF6USFRkLlWy4uux3hSzUJswmETd/4dO2j/jl7DiFG3xacGHChyKcauF711vSCUMnKCJjcrvu8DWM13GK1rmD63O3NH0j3tYX854cZlFQ4Jkzla3ziIpKlpZe3hnD6eXKIa6w89C3ZuWcwlSS7P3NhQaHHqAKavmyYIDe+tkI3lYMxfoWu0Z+i5h8WyNPpDNT4X9pll9Y4+XfeD6+BUPcMFL1RyPQrZ7SnGfebww9iumnjQ3b2KOLILdZI8n+Y6jJGJY9Ys7B9Etvgf0y3vQ2ZEzfDbZwkv7EF24GBF95G677yOSgzHdv05UjmZwW5b6pT4j5af9D9DwTitNbhSKYfFhTFqEf0+YZ0YvjIE25l2UraFdGEawotxCiOxSwZ4KMetRSiKPEiB/4jhuWKyfAY8OAcQ6+APMtSSFMiDAHvPdqav/ebzsOtywav7UyjM+o5uyj+3OoniPl6EOA/aZTPPA3eYR3baaQ63VWMlaqs7Wgq0R7XxJUAgUs23novfMfecEpiqNW0n6TQG89MtPruyUCwDnVBuASqbIkffw==", - "type": "googleContactsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleContacts", - "date": "2021-02-19T07:23:21.161Z" - } - ] - }, - { - "createdAt": "2021-02-19T07:36:52.875Z", - "updatedAt": "2023-03-06T15:34:18.930Z", - "id": "26", - "name": "Google Drive creds", - "data": "U2FsdGVkX19TL4Gerzx9CT6G9dLI2TmgDJdZQXu1l1hqxF7Y+jP+hHFaVpunu8Yhn14NHNMakt0uCaHFXKbj47QdZGo/AEgP2SeY0WBG47FPJAgr3iBSSuELJNH5ha/OCBrspKTKRBO0vu0p2Ypfqqx7JB7GmaczRo/VRuBn92edWdw7MIVOBZgVLBw8BBR1O3YMwfHYWxGeqkxQEXNhVvxvPqTJNJnwWwAyARJbhsp9QnI9IAhRcO9pPnIezQqcTQkE5ufQnNB0B/6EwdCCDf8ACg5yIDtIc9h9HtNrkNoEoAvNNfDpdu6ZSRTH+j00ggwA53t+l29Ip3p/1jsnjgkf/6+ySj4hWZl/CLx5SNY4phz7uTvME1/8wqOWF/MaXCzfVSmEuuxzqnX6q1jQgpRoMzAs+lKl11ZzK46b47wFiNEGBIwy8xhOX7y/Dn5a+ehmzOfvO2OlzCLyuq+TVSmJaMAEol1WBXiefA1iukT1LD2Qb0p9j8bn8LHP//zlS3rXQ5wiWlVObHHL1YXuoiboFB+uuhsV/oivaBdr4xylytXv1SwLn63uJ29HF32/xVFGlZmgUPXLLBOLUKfkA3kUl12GOzZmQtmYhmyWSVuyRBxWY1TobjsV66p4fKUpKttWWGcXdehQDoroB6pbgOHKO8i3iL0rFuxTygG354jT7XJAeDbJxp4353BiKMfr6M6b+rHzjQlSoV/lTkhdWbQ6d6lB4aoQaXgGe8Op41Dg40j3hPALyeTPkXDkPpWATMV9s60jGyzkls6Urjc7NcGwwhIv1/ktK/Uo3g4LPAOQw77DUU5b1VknF0ZiVUgz9QAeftCh+If9Br5/WXuRBLY3UbYWaaLod9ftTki69NmkZD9Muf1QT9yZ8DQJOJDpitLJAqs/onWk8dQvNOIR7Fq32cuJZj69YS4HSHzaolBNewzvd3d0jDn8DJrXBYEUbeWw+cfTAhpV5WNivaE+G9peCnsbWWnnLiCigtUHb+8a8bQnC2QQ/5Vq1snVxvcwkntNlJ3kLnkJ0DsIwZ9L9mjRhLHFJl2TF+bX5cKU7XPdrh/4TRXBdS9KyuFh93OCAU3egsgho5MgNkGLgl0JMcXVgzs/pktkw/b+t7u6hGMOyxkwEJ2rc2j8IPs2gVHC5SFgjyFoi4i3Fyy75U7ZNT4DB+6Pbyr8teOchocHWGsFk/Wn+6WtAwA8q0OqIQ9aB3ATwiojUhW4NGxj6S8/ndamt3XN99uw/aHF4IAJ6Z4rbfojT7EhIyKHC61Z9XPKdbW2HHadUcQM7mb9jk/klPrfKSGGVkESs4ess6E9SN6/yrhbhxocD3mFZBKey1tpvajXg/2PcThsFQXkLZaxhOAxJl4w1ud7dWMyLkDCK8qFEA7wLNcC3RAd7/ru+J9kk3zoumo+LcdXcPolkuuBS9XSaCLmZWDd2p1/Zmm84Djg37ieNyjmb94azDWByTsWwsna7L4FyqZYuuJ8rinwk+0V4Nn0zg0+fm3yvZ4ZsiPgyZ97z7r8yx0RhB3PQkRbN5cRoQEXaEgO+/MAs7PFxmfdr41NLR84CV810sDDpYBgXrfK1OUpuoOEmYaaSBTNDmaneHxV/FWSUrH0vUC8Q6Dbj8FAvuVfs0G/7jQThp5iQniaa19kivlhxvw6eEM2/qQZejh0yDRhcfgQrWaIUA==", - "type": "googleDriveOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleDrive", - "date": "2021-02-19T07:36:52.865Z" - } - ] - }, - { - "createdAt": "2021-02-19T08:21:10.389Z", - "updatedAt": "2023-03-06T15:34:19.181Z", - "id": "27", - "name": "Google Sheets creds", - "data": "U2FsdGVkX1+21ONZUJ/0Cu/1d1sVpmlTAu8r7hzqachyECaLhrgNW5e7KED38VQHeR57GOE+Uo3FhFM5pL8yqG0ZcS5S5+uneXXosQzkDy4UPWE4ymioy9fv+SQJTNN3e+BDQdXATGEcD/ZSpqgBtj/Ld6zv8P3OxWr65hYCkmpx5csrORSwrqB8zZMniyaXZgpUd1mGCHWGFEjV+IZFMTwGmvTzmfqmmBLfGXHhzqKN1FJCSZ5WO7fshx7Gc7A/DaSHprdnxY+axa+PF+utCpbNx9pKvCQv3dttSlMpQfEkzEzENO8uUbxYXi230UZlmZ6QNMkzrgh8MZpwFAInqC68A/tEPrQLIGEykg2zaw7gVlVF560GXxs9Yh0nRBF+La7SKMOCEf2FUQaJ4niQg0Lmf5A1OJLQENbEbsVyXieUP3gqefoUbA5bYbQg1uMwmURAvgXfMvX/WFUbvUdd37Pee7x1QcQ5zL7i5/NPwORzdwZaW+QHcsLXDHl0CdwBXtC3EhlhIQ3K66/uh88dY/GvgaAYdqAG8YxpEG3VXF/xMJBUQOqcHlXi8Zm1SFK55HURPUGBPscVxsXz3SFANkY59d4LE7ClZonri/QACQZcRc0MG+n94fAtQ3RctsqI74hTnpqF9+sbsJfkxpLBiepiybbN3A1BExB/iAdQcRU/bTLWXusBfs0ZqOKZFLeZgEjw9/e7PMtmwyQ9g9dZvJ+Q6Iiy8nQq+gy001Eu9FMACQwCl0Q0ixiK6JbmnezSn7qM4dcgzZTInTh3RnTjJwRa2fm51/4+gRdFHFVTFimNacs/al0yM2o27GZsebZ/GonY2cDgNnCbtPahZrD1Kb7s4JsmlwwM6Ry4UKE48dueirrSlLc9N1RhonH7BYnjH0o90Un6iQ4mU4NLTLF5UPxkV07p/3DIgMCJjlJGs/xR+cQPHwKUfkE9moYhRNkpruzcc3hioebsF27HnBPmnBXBFYMnLUt2RbAgDaXMfDk/CsGKaAR6zUKAlU4np38ybk4txnKr2nkiw3A2xWfuXeRO37ZlRfS5WIMtwMLDa8ni067/ToDtGilt0ZgFcS4icP9j39QVWNId1PCJ2SMSjC8c29I5tXG9+JKMoVLo469cnsmsj77MxuulAee/m4qy2+3Cw69Z1MtAoGBTSpgxylukolJtiUFHVr5W0YNAXt6u9SE/7dyRSUzUH2yoS2BAqA61SeNxyzCFObf21s4JfpDv+SQDLhiDKwLzOY/Ss7jUF0DaxruPRvQd5DsI8fDFKPG8fhiVaC2CQD+59wz1o7UJRuiEnCJEhKPTM4nYZZvMUK5mepdrKH0O2t3lxOAIDUE7gJQHvRH7J/XSnK9P4HeTeNk388shTZu+XGi9yriq4aI9Vnhtu+te/nMPFJfNMRYEbDcuV9BlALDD9h1EoGiaN7hwl18bG4/LnbP2aYuyuQNsz+HoEOdDLuwPrk42iT9Vy/uJ/DRgZxkRSu2XXnJxlYkiF8+wBD2T6Yc9hd0n1l4shbik5xZYsC1kCM14jSO6HaNcueek3iTEX5KqnKzwtkxmYK5bA8lnDC61jzFek8AjBryxlhmFQoM2lLHjI6H+Hm/4oSxo6Z7JvH8fv2TlNXosPqEXcOlVFIOvAUqbs711oQIPuAfHo7xIsacx", - "type": "googleSheetsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleSheets", - "date": "2021-02-19T08:21:10.381Z" - } - ] - }, - { - "createdAt": "2021-02-19T09:22:25.089Z", - "updatedAt": "2023-03-06T15:34:19.009Z", - "id": "28", - "name": "Google Books creds", - "data": "U2FsdGVkX1+hfSrqAA29hJDK0VA14zcJwj9O7dnWpTc39k2t6ZMuKQUfIgAFmQWOHbi+3GV60yuiEKTnttU2gcEOFtLMnA+uYvTGAsUhdEWdPtUB7UmA8ORvSmZtsvTIS3UjuE0umXgtr6iFMuJJ50zkoRSpe1Wf3cc7Le5KgDb4FVp4o4fyLUPUSjyy9Kd+jN491Uhd03K1kxz4ScZe50SKoxzr1ZRhcjht5Xwk685kUOlLJQK0dgHse8D1+JuKt2jyvLrz6BLfM34a4MYoCvHFDALznwunpT+zBIWIekAfybwZTBGW0cKW4LLF4+sonmzVdbfZiQ2+GUiFhVUYiyhUePW+274Dw92clJSxEPORTZ5GeUjAC7wcSTOSpNKED/Kb9iPoK75Sd3auPgbVJ9i4oZGhyEiY1ex27cCVKPWZc4qHlzmhRAlVBX+1oQ1afDYys//+M+tkw/RbKNyYekzPlDDGzKcEUM2kwkcF9qOqHT+YQKPTk6HDZt+8Q7ITf+YgvP/BVuQdVYBdTgguKDTcgxqx6zmQHYObFTuefp4BbekI3WPAbbl9u+I8dWwUNuEaq/x2VL+Bm4kXoIvZbbaZiUshDiJ5DpVkRBgh8CSdfsFyUDveCFkbm7FW+mk7RFLLJ8/s85X4oNKiW8+scvQlPU+yvwkxrGGxFCugkZPtQBOqrSH8P3cauPIhPolEzbjonCcpTfQy7ocgk99Mja+bc+dAeTzlZkFDwVAbk0Z+FrgIRHivogNT0pPyvA7f7r4fVicM4Mbbs94jXrU2682z826H1dUc0yRZbePo2qFFkYIaLlYc6twtbjAA8f6AhVHFYfBGuZllyzMmQWmftR5pEJZcyIODyMhK0bPIFAI3er/tZrgWap6D4B5FjSlH5ZNQIsSiynOV4TwZDnP6Ept+cfJn+GI3zq9HXVZWE0UjdRUqOMKRllpULCxjrElCSnplWnr4BLIEtJRuQ+F7KU7rsDooHZ0sCj14SC6wR2W0vT7M9LeRj4bb57ajAspNsqNwgV143y5giTa73tDjxefQVWKmuJgYEg/KnC8f1D3X/kgUkGSYu+W1k7qTRibASOeM1KPGiKYxqWFyX/zmjYDN7QpCDNnaMN22riBHr2Q6bMca5s9e0fFUVc+UVj3t44+YMl4Xobe4z6kkRhpoQFD0Orw3qen0iH0QDzwuq3FH62j1UvMADrEHvqR1ZDwAjlKBWuqZEbF+nhCdkaOc9vFCZd7Q6Ge5pIEaSJfRT6co3vlHU36+QwBLV+1IYoBG", - "type": "googleBooksOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleBooks", - "date": "2021-02-19T09:22:25.084Z" - } - ] - }, - { - "createdAt": "2021-02-19T11:05:20.475Z", - "updatedAt": "2021-02-19T11:05:20.475Z", - "id": "29", - "name": "Mailchimp creds", - "data": "U2FsdGVkX18xXLE184Ww0HhGQkif28k1jLv1ct51ofijH9qbNGhY2KUE4M/ziFjMsBXwtClo1oKHfWJ+2qDu29b6R8mKOl/1dJSKDo3WAyY=", - "type": "mailchimpApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailchimp", - "date": "2021-02-19T11:05:20.468Z" - } - ] - }, - { - "createdAt": "2021-02-19T11:38:01.580Z", - "updatedAt": "2021-02-19T11:38:01.580Z", - "id": "30", - "name": "PagerDuty creds", - "data": "U2FsdGVkX18Du1HJcfLgrPgYruh0cbxQT4NkEwQ5Q0JUT1B7RxhZMPMYGnfY//cf6GlgSCcF1bb9l3arLf5Wvg==", - "type": "pagerDutyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pagerDuty", - "date": "2021-02-19T11:38:01.578Z" - } - ] - }, - { - "createdAt": "2021-02-19T11:56:29.813Z", - "updatedAt": "2021-02-19T12:02:56.759Z", - "id": "31", - "name": "Dropbox creds", - "data": "U2FsdGVkX1/Uofms8LodC3KQrzG2UWCGnscMH+RPTE2axbxtI6YocNs+36iw2N1i92ZtGUViIGH+uTwmQnDOQt4A5+0B7o5FU9R8iBE80mq10LpgUEnWPG43Ptesx2goGeuBX1N7d9YqoNIUCJHjLg==", - "type": "dropboxApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.dropbox", - "date": "2021-02-19T11:56:29.812Z" - } - ] - }, - { - "createdAt": "2021-02-19T13:53:50.602Z", - "updatedAt": "2021-02-19T13:56:32.212Z", - "id": "32", - "name": "Airtable creds", - "data": "U2FsdGVkX1+p/4EZC6fbBe4qz8h2NP0wlwXoUBQqLV7Xqqex3F9z4JzyDBBXGqTm", - "type": "airtableApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.airtable", - "date": "2021-02-19T13:53:50.597Z" - } - ] - }, - { - "createdAt": "2021-02-19T14:17:11.249Z", - "updatedAt": "2021-02-19T14:17:11.249Z", - "id": "33", - "name": "Asana creds", - "data": "U2FsdGVkX19dsW2YFvNyR3Va4cffC/3puNn+BdxY8zyHQwjR2WL+cTHIQZ9vnGfddqkd5vxrjBdM1EMNYvVu9XhzdaYaXRlu/Rvz1N9dg/XREGtR0ily4UZJtR5kI46w", - "type": "asanaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.asana", - "date": "2021-02-19T14:17:11.242Z" - } - ] - }, - { - "createdAt": "2021-02-19T16:44:50.180Z", - "updatedAt": "2021-02-19T16:44:50.180Z", - "id": "34", - "name": "Bitly creds", - "data": "U2FsdGVkX1990KbQcV2hqg2N2WqqysphMRcF9rRqHbV3xd967Vo0gm5udr/FIXIMl8m+4qWh6bIpovyiDagdulQPpuEE78s8bJV82Rpk9vI=", - "type": "bitlyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.bitly", - "date": "2021-02-19T16:44:50.160Z" - } - ] - }, - { - "createdAt": "2021-02-19T16:53:38.869Z", - "updatedAt": "2021-02-19T16:53:38.869Z", - "id": "35", - "name": "Brandfetch creds", - "data": "U2FsdGVkX1/xdfTlrPUFZe2VnImmukah+Rp17zGZId6ryo3nwNoultrEmgPNEMgvJA9zSjsqu20zjR2xujBtipZqJB1sjtr0GVvpYi0JlfA=", - "type": "brandfetchApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.Brandfetch", - "date": "2021-02-19T16:53:38.860Z" - } - ] - }, - { - "createdAt": "2021-02-22T07:21:18.838Z", - "updatedAt": "2021-02-22T07:21:18.838Z", - "id": "36", - "name": "Clockify creds", - "data": "U2FsdGVkX1/lgcgfsGNJ0Hhk42cGd5gdw1VjOlm4rvsRatgjASdsg0shFMB0Zaspb+rDO2CJYSsLf/gAZwXIiH47dsNCTgHe95PMeSyt0U8=", - "type": "clockifyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.clockify", - "date": "2021-02-22T07:21:18.831Z" - } - ] - }, - { - "createdAt": "2021-02-22T07:46:04.337Z", - "updatedAt": "2021-02-22T07:46:04.337Z", - "id": "37", - "name": "Code creds", - "data": "U2FsdGVkX18QBJCIz/5sBK0uTJLi4gxCQUQ+48jsKK/ENyPqhnFZ7uc2gnDYyLBR7JHhLPqplv0RuaaZDbo0iajcOvJurdO3bK+0yNSBsXE=", - "type": "codaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.coda", - "date": "2021-02-22T07:46:04.335Z" - } - ] - }, - { - "createdAt": "2021-02-22T09:14:29.302Z", - "updatedAt": "2021-02-22T09:14:29.302Z", - "id": "38", - "name": "ConvertKit creds", - "data": "U2FsdGVkX18kPZr6CzzuBhOHSY5wILD3lzqGCbmNot7ctpX7ByIA/gaVOGQmsliOQ0HAwSnUEQSloW4BxhFlyv51vK8nCwzhpB2PH6Iy3o0=", - "type": "convertKitApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.convertKit", - "date": "2021-02-22T09:14:29.294Z" - } - ] - }, - { - "createdAt": "2021-02-22T09:51:25.952Z", - "updatedAt": "2021-02-22T09:51:25.952Z", - "id": "39", - "name": "Invoice Ninja creds ", - "data": "U2FsdGVkX19FCgCRnZI9LxkJ0fFDqCHTNzRDD3PPCEx/iwDzlc1SF6Y/gvEedCIXbrSLj5DA9Cx0+pLTmu+TdQ==", - "type": "invoiceNinjaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.invoiceNinja", - "date": "2021-02-22T09:51:25.944Z" - } - ] - }, - { - "createdAt": "2021-02-22T11:06:05.470Z", - "updatedAt": "2021-02-22T11:06:05.470Z", - "id": "40", - "name": "Hunter creds", - "data": "U2FsdGVkX1/1gYkZzUr6nvLINdWRLgfpevrIVD+9N0Oj+N1EzfgOa1Dt+mh7XwPfIFN7PTAFtx2zvc9zWpE6v9lbs+9UmQ94mN7o7SQJn+8=", - "type": "hunterApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.hunter", - "date": "2021-02-22T11:06:05.466Z" - } - ] - }, - { - "createdAt": "2021-02-22T11:29:21.335Z", - "updatedAt": "2021-03-15T12:38:04.857Z", - "id": "41", - "name": "Trello creds", - "data": "U2FsdGVkX19q8WLJggC99tA3sNCK7veRzmTun+D5LgO6N1LTdCpFsthgWZUJwTNQoq1xkMTUqcP1Pj5tDql8XScwyMpuUV2L/HpT6XIsmRNTtW6OnyiN9SUbOjT/CyhvW6scxU4TB5Ig4hChfzpXqOLnX79+hpaq+uEZ2Z7z7OYkBPO+pb8V71HghiBoWN2khsNYHoowKQLVQQewTy3Z75Ck5cYKlkCNOW0mIl0uj34jwPwRbLj0kbe4ET/4whRlewnWsTqGn+qUeAv6U8BGTTKmGqlKIEQB9L9cGEsd3PA=", - "type": "trelloApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.trello", - "date": "2021-02-22T11:29:21.326Z" - } - ] - }, - { - "createdAt": "2021-02-22T13:57:40.992Z", - "updatedAt": "2021-03-19T09:43:57.936Z", - "id": "42", - "name": "Mailgun API creds", - "data": "U2FsdGVkX1+ZwsN2nbj+EJ1UcibG/cA10of9HwNMWZlDMtDcOc85SwN4x/2TOuLxV6ZyvVVD/vlGDZYWmRKM2R/U2kuj0K4T04VkM27W/oebDSYYtFXzxkZoGLArpztmeoyL1s452mMnCC25h/avrp+xt2I+U1ElIJEiEaWfAkoGc0z4fiPoXzbEG3sGenzEsu9ttsKr4mmVWdwE2znYxQ==", - "type": "mailgunApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailgun", - "date": "2021-02-22T13:57:40.879Z" - } - ] - }, - { - "createdAt": "2021-02-23T09:29:07.947Z", - "updatedAt": "2021-02-23T09:29:07.947Z", - "id": "43", - "name": "Todoist creds", - "data": "U2FsdGVkX1+ZQ+H3Iqo6GY28ORlUO2kdl6j5uwphJzkPu4fjngt63aWY5+bWWUKDSm77KfxyKRIfaiLlC3IgbMWvR7vhr43wsgSPhWwxlbY=", - "type": "todoistApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.todoist", - "date": "2021-02-23T09:29:07.915Z" - } - ] - }, - { - "createdAt": "2021-02-23T09:43:33.668Z", - "updatedAt": "2021-02-23T09:43:33.668Z", - "id": "44", - "name": "Mindee Receipt creds", - "data": "U2FsdGVkX1/xjsZ7QCzqu/anvMFyp1YFh2gExdIEMxlKGVf+XgAYCgSgjw7pwjaOc0H+c9UyOO0FQ8yh59EkHw==", - "type": "mindeeReceiptApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mindee", - "date": "2021-02-23T09:43:33.665Z" - } - ] - }, - { - "createdAt": "2021-02-23T09:44:38.720Z", - "updatedAt": "2021-02-23T09:44:38.720Z", - "id": "45", - "name": "Mindee Invoice creds", - "data": "U2FsdGVkX18Def/h8UXc1LyvtDAklLmMCR5/KRBrs99NFVoBrWNoNQZgmp6eQeZ6KqWRvMinWLySGsLD1G5ttQ==", - "type": "mindeeInvoiceApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mindee", - "date": "2021-02-23T09:44:38.718Z" - } - ] - }, - { - "createdAt": "2021-02-23T10:00:05.520Z", - "updatedAt": "2021-02-23T10:00:05.520Z", - "id": "46", - "name": "SendGrid creds", - "data": "U2FsdGVkX1/Qy3woKXJcHu0Il+dKLHNtIliiqCXBj/PYC/OiUXCTMWdhPNSXzClwui2u2lCk/G/EmOTh/4mVFx78vdqPfbBxWa9t/xOhND7PZ2tFSeVCAxEi+/NhqryKFcDHlfuELJNoc7RDvKu7KQ==", - "type": "sendGridApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.sendGrid", - "date": "2021-02-23T10:00:05.513Z" - } - ] - }, - { - "createdAt": "2021-02-23T14:57:18.744Z", - "updatedAt": "2021-02-23T15:04:39.303Z", - "id": "47", - "name": "Contenful creds", - "data": "U2FsdGVkX19Oa7+0moJ8K9pm84xEsvnMq+zc9Wvh5ZHZIB6bJ/9CLxpCE1pwa8w2eg2k43nTs5FEjb2Ri2pgFQ+FZrvgePCvtY/boqrp8JYqCmMwD5okfSY3OzagWZZnbxxC/ed/gF+n+mUWN1HNq7ZRfjur96SQSK43480+OyFUt+YqLYROzuBiSsaETuIU8paej8P7cHtG0NxgAtxse/Wrl9CT8AgPH4OJrCl4xo0ACLhBt/0nDa/2pG+549wV", - "type": "contentfulApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.contentful", - "date": "2021-02-23T14:57:18.735Z" - } - ] - }, - { - "createdAt": "2021-02-23T15:24:48.023Z", - "updatedAt": "2021-02-23T15:24:48.023Z", - "id": "48", - "name": "Taiga Cloud creds", - "data": "U2FsdGVkX18d/4zkKxH6ykIKuyADGk0vKAbliDLg4C+OKu2X5qSx+36Jb5lsc6Nxde7a+WJgpbu4s4KzeKfrzoBpYUY0jfB1JR6jauJI6hY=", - "type": "taigaCloudApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.taiga", - "date": "2021-02-23T15:24:48.020Z" - } - ] - }, - { - "createdAt": "2021-02-23T16:07:57.472Z", - "updatedAt": "2021-02-23T16:07:57.472Z", - "id": "49", - "name": "Nasa creds", - "data": "U2FsdGVkX18vXNAT6KDSAsLy1u5aDAui5VO705Wr27SblEsXnQShsGKTzb+ljT1r7mOiApbC3r08KyxvKe10/PMtJpOCw3aajw61blf71bU=", - "type": "nasaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.nasa", - "date": "2021-02-23T16:07:57.467Z" - } - ] - }, - { - "createdAt": "2021-02-25T08:25:44.871Z", - "updatedAt": "2021-02-25T08:25:44.871Z", - "id": "51", - "name": "ProfitWell creds", - "data": "U2FsdGVkX19xPtSE9TRS0mwaAw63Y8Ju0Zku5f0k9VZhKq8IvtfrFYhpTbZmz/WLUK2PTjm4mzpyQzi2OS2T2gtGdI8ef+S/W8JCBAu7x8s=", - "type": "profitWellApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.profitWell", - "date": "2021-02-25T08:25:44.856Z" - } - ] - }, - { - "createdAt": "2021-02-25T08:45:54.414Z", - "updatedAt": "2021-02-25T08:45:54.414Z", - "id": "52", - "name": "Segment creds", - "data": "U2FsdGVkX1++XuRK0guHm8ScOP2VMjkmz4pPCxEcPl3mlLqrWB4DPntgrTKIWme2utlbMbIbCUttb4JXZmC6xw==", - "type": "segmentApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.segment", - "date": "2021-02-25T08:45:54.412Z" - } - ] - }, - { - "createdAt": "2021-02-25T09:20:29.624Z", - "updatedAt": "2021-02-25T09:20:29.624Z", - "id": "53", - "name": "Signal4 creds", - "data": "U2FsdGVkX1/ga0VQ/7JAfmu2l5dBandWEBmoRHj26J70hj2ZAaz80EfX23FtrdSX", - "type": "signl4Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.signl4", - "date": "2021-02-25T09:20:29.620Z" - } - ] - }, - { - "createdAt": "2021-02-25T09:33:08.283Z", - "updatedAt": "2021-02-25T09:33:08.283Z", - "id": "54", - "name": "Spontit creds", - "data": "U2FsdGVkX1+QF2n37wTEYca2sh443csUZOySmaVJKlkMmJI5l/WuQAosIp6svTJxIDiQUtfPgT1HoxjuGqE/gZxduaAukURLug1zFrPA2zDrzcNtDnH1vColOJB1Rlr3WpmpPxQUVtmlkFgmA/evrDlEsHs6y/aGXoi3oXaqVxD0icyEiK0sqnjkOjx2K15q3pdK3+MNlKfEhLSvtceRhg==", - "type": "spontitApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.spontit", - "date": "2021-02-25T09:33:08.272Z" - } - ] - }, - { - "createdAt": "2021-02-25T10:01:00.363Z", - "updatedAt": "2021-02-25T10:11:56.314Z", - "id": "55", - "name": "Storyblok Content creds", - "data": "U2FsdGVkX18fu+PWpyX8OvYaYQBsokeO9jd4uoD8sqT+cnX5iwyDSxw8VwsMRL9MXC1htLcVhC+XXvLtTLYKOw==", - "type": "storyblokContentApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.storyblok", - "date": "2021-02-25T10:01:00.359Z" - } - ] - }, - { - "createdAt": "2021-02-25T10:01:19.257Z", - "updatedAt": "2021-02-25T10:01:19.257Z", - "id": "56", - "name": "Storyblok Management creds", - "data": "U2FsdGVkX186K/kl8qU3zSAIcptPOb9d4IGpKgUXmsx1/dnUhzafZttH9h3rUdzfRgudxgEdY9UcxfjYffTsyg5mbCqf4NMOLKYV7qudCY+mjCKNQjpV4pAAK0lDpM23", - "type": "storyblokManagementApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.storyblok", - "date": "2021-02-25T10:01:19.255Z" - } - ] - }, - { - "createdAt": "2021-02-25T10:42:11.765Z", - "updatedAt": "2021-02-25T10:42:12.052Z", - "id": "57", - "name": "PhilipHue OAuth2 creds", - "data": "U2FsdGVkX1/vWmXJFCvnUqKOyIce09k5K/WSvdrV1BxhRnDCDZVEcEbDbwi32/AunLgkkddqtWAts9pqg1fZBwOAPaNQ0T7EFNpnvXQ0uAIORereTYIkVXWONhdzuMIr5jJp/vQ7psMoVPxYauC6KFDEx8oVbX0f4ceR7Ww5v65KKANAlNhAWwxKJvoqXpr0vwHTMPhr8GiQN4gIfortAA==", - "type": "philipsHueOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.philipsHue", - "date": "2021-02-25T10:42:11.763Z" - } - ] - }, - { - "createdAt": "2021-02-25T11:04:28.100Z", - "updatedAt": "2021-02-25T11:09:07.367Z", - "id": "58", - "name": "Twist OAuth2 creds", - "data": "U2FsdGVkX19Dt1p9mEJlmKSLsBtY4YbMStGyY+UewyQ1kQUM+Hnx9qLjnWsLc22uCouPgYhgXd6sHt7wxSuouQzayPaBQfrbWjPuFluXr7Tplux3lSyWmLWZ5yZ88kCDP48zvNCYLa+Dr4qZWWy5qbi5DPPz7Z7cSLEx8BrL49Lgz9fZLoTPl+6K5kfYLQ5qxSajVDBxdv6dPIja+6ArUFCwTI3nTWKRDA7R6LO2JhAoCPDLhEQhuaZ2J7zucdSizL7CD34lsLdH50zFQz4NTBLs5w3LwbSQxYgwdBk6gMNg5HyfbgqNHyBuHnyb8SzZ", - "type": "twistOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.twist", - "date": "2021-02-25T11:04:28.095Z" - } - ] - }, - { - "createdAt": "2021-02-25T12:41:33.347Z", - "updatedAt": "2021-02-25T12:41:33.347Z", - "id": "59", - "name": "CircleCI creds", - "data": "U2FsdGVkX1/x4tOSrog/+i5xBXwlqV2T8ZAAqY0cDMeYL9G95QM0RN84i5U1C+il4dRgPFh0k1zkWBgGrBdNsJyrlVkNXNcJq6cI3ivAMLc=", - "type": "circleCiApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.circleCi", - "date": "2021-02-25T12:41:33.344Z" - } - ] - }, - { - "createdAt": "2021-02-25T14:08:48.529Z", - "updatedAt": "2021-02-25T14:08:48.529Z", - "id": "60", - "name": "Zulip creds", - "data": "U2FsdGVkX191OlYH69pbOCK/txZZtMnZctoqURQu30ltWgpny4Q0xJtNteD2eRCFvQgsQBTlskJC22ipgeI/xENi2MOQoiOGiUco3Hotyi/uQBldZrg1wTJMzwb3nINcnK3Q4UQIGQW7NXnW9J4DGiMTgPBakigwdaGeBHXzchQ=", - "type": "zulipApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.zulip", - "date": "2021-02-25T14:08:48.524Z" - } - ] - }, - { - "createdAt": "2021-02-25T15:13:40.272Z", - "updatedAt": "2021-03-03T14:45:01.088Z", - "id": "61", - "name": "MessageBird creds", - "data": "U2FsdGVkX18e2o0tiR0oECP+m6eNJHWujdEU+tZ6ibwZBnDvQTSOckeI3ZeK/HQ97a+LC5ERFRmSRvAa0R8arg==", - "type": "messageBirdApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.messageBird", - "date": "2021-02-25T15:13:40.267Z" - } - ] - }, - { - "createdAt": "2021-02-25T15:24:52.504Z", - "updatedAt": "2023-03-06T15:34:18.897Z", - "id": "62", - "name": "YouTube OAuth2 creds", - "data": "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", - "type": "youTubeOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.youTube", - "date": "2021-02-25T15:24:52.500Z" - } - ] - }, - { - "createdAt": "2021-02-26T08:32:24.059Z", - "updatedAt": "2021-02-26T08:32:24.059Z", - "id": "63", - "name": "E-goi creds", - "data": "U2FsdGVkX18y61lqpGSJj/wPde7n8cmSBdIIsMhKVffEZkTWJBA+gx51ynKTbN87xJVmWx8UJ+R3gNMK9Y1FNwyS2E+zWCkIOIxBaBKDqZU=", - "type": "egoiApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.egoi", - "date": "2021-02-26T08:32:24.054Z" - } - ] - }, - { - "createdAt": "2021-02-26T09:23:34.436Z", - "updatedAt": "2021-10-28T10:14:20.661Z", - "id": "64", - "name": "Harvest OAuth2 creds", - "data": "U2FsdGVkX19gIX0riuNYg9DGQcyusKHiWMVDYF/m/T98QHVstw7+xWC0bhPLb8CNgM69x/Z3OHxsXHl+6194SSprAPUgEgEFMeIJdjVGHtToC3PveN6K4sAoM+qy9pPCJq8Zg73jHawpXx9fgW40Dn43W1NJo2fedj4wAJPap/z1OfU2CiqMr//0jAdufXzLPi+dWNKJIO3QgRzV34BrrKg0M/gyMz2kFp9xuc1HaRkevI0C64n2pWDMNB7jorh+pqsB+BKAd3gOtfP6+/R80BIxVk7Yk0XlfwyuKiVhuaKJQlyOjYI7mc9ByL3D4mk1laOQPwzgO8gWSNyVKj35Sgx4Plh4hC8AF1sR1rnvy5aI6zdilzOZLcHcPDR93x98tWER158GaaEHJ7M0KvYnF1eX+in4uAAlbr+LkaoMqYxUr+OFR3iE/78xV10V7ezJzhlgtE5ud2A2zr22qdHb5f0DO2l4ehXyyIvekOpxJ0oxkLEqjpmBzLkKv2uQ0lFSd1oA+7hS9yHZWsdNLymJwvUk2hlurHY2YhxXD8Q5Jk+iaQXxA3mK2+dmyVd2H9jVX3d8HC7xJgKD9gFOf6AErd1Q4Nk9eIRf0Y93XXOmAgUrSut5I8UehuGncM7gRZhUrEAnpqqMSnLxuDsTrREKnU8EW7vIOeMcSbTCu6JLQvE=", - "type": "harvestOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.harvest", - "date": "2021-02-26T09:23:34.434Z" - } - ] - }, - { - "createdAt": "2021-02-26T11:20:10.809Z", - "updatedAt": "2023-03-06T11:43:25.094Z", - "id": "65", - "name": "Google Translate OAuth2 creds", - "data": "U2FsdGVkX1+NStrrHlND40COBadvqGl+/zGrGN5O0iho6g5eF6kfrfS1jIKtYAVSazlByTmDhCnBta7+gPLf5xaDaea3EDBSf9AHZhVO9L+0VAgxPNyQ5oBQJO1ze+vVxpGoWoD8dtivUQ3lB3ZDT/zKvCbGKP00162j686w6fwZr7re9aMpALp7vt2/p+cy4y9bZQPSAefncZgJLv8qukSmady6SQHQWJKp0pOu/nAjmrhHwjfOEIYXQvvkVZ/F5Vp3m31n3kZxeuinCWqKtf28zrage4w4N2MEq3jLrOUa8IvaCqQJHOFHwSNdyqwiA6hZFCh8xhV0ij+OgIOUVGRLSYZ1PiSAVuzuLxSjP6uQ7UtIhCwNnwXmxD0dz7OjrzzVdX/jyDNuTlo9VioUqfZ24VdOV8tO09sBwQCKMb5N+4lYPcxiDZGdd1XEjOB43ZYJDnD1jUNtU0+j8gCAnp90ET7oR+XA9ademGyxsMK5y52IQRkcH6BNu++nLcWhVhiqoh4ShxCcyhOR/z6RLyREBwDuK+C6ZpiaprFFeVDKv0hCLsQgAIbrsJPpezF1GW46PIdvoG0gBWiWST7KuIl3jIhbKb0xy7BLhCqJan56zCWPoAnEQvIs8eeEiqG+BARgDham66ky24A+KfaRxQAT2ZO64wEmoYIkfNeAssxbVQ+aRiLrrgGuzzDzqV3tZXCbXAooSAGsny27oIFXMjtjfs7WB9TiEvVsbdLz0sMPhhIihJifmNy1FB1BWxq4v3pfzs4W7aYzByrswDyn/6jyKE7Pv9CDTQGTPWEsWvpenPagXZRfQJT+2NlAoZYsEExC3nkTaJUgm4UJq5ohkgu8f8CPVPjwvmTanOEnPRitmoBJjPPGM8VEvVrWIKgrVg4b8LvdjJLV6mRpU2xv3+j4P3KTlZ+Ir+/52l65X0A=", - "type": "googleTranslateOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleTranslate", - "date": "2021-02-26T11:20:10.808Z" - } - ] - }, - { - "createdAt": "2021-02-26T11:24:45.742Z", - "updatedAt": "2023-03-06T11:43:35.065Z", - "id": "66", - "name": "Google Analytics OAuth2 creds", - "data": "U2FsdGVkX1+F0sfl4kQM+wSoX+PvxCea26tz1KafoF3iRiF9ezfmEt4xuhBhArvCrEsNZLYabqHmcnbbRytU3SUyvWP7UYhWR707ltECvPxfhWyi4H5aFlWB3AExRKodiiwf9U011DTxOqtVkXez1a2AUXjOXl3W01hQyaHSxGYnLh+wqEWh1/LUogCSMi1eeG8zt2jkZAUgvrAcEI9mSlwHi0WNuPCCEPuFn0XQD1L2I/QuAbdqep3pPSwJJ4IUourtHdzxFRtCZQeS+g7ERogFpnTuNzzeXQOlSDRtCCe9zJiMxGNZmycxVKGO7YLAkGnPkMfmFW3v3JpQtAjvLOcATHzDxwQC9Gt2gWGlCBk50922jSzyOB5jQMLZNtjODUNQupQOK+QQVJHZHQzAhRlTydjDJl1ckua0aX+WEpvmuvK3u7m/pY0aY0YaE3wH+e+uMBmoGpZxJxuKbyz5XMNtyZr6RKNV1UeGz3alAmXRE+VENyzKy+6M7xJLfUcT3J6f3CqdBLDn0782FNPev+wIUwPi/pI1VnmZ/yqsFZiMojZffXe3291SjRMo0UeVNWRFeJp+wiTS9izSuUALI4FS/mpG08zh5sslNycKhlKXDVrNPtMYt764wbNLvdm+Hf2WxaEhYDfiYidOaboVGX8TK17yOpyV5s7DfeMZJi2qIPhoASbQUfyBnc5Xepefk8LzS26i8O5Ftgmddl7fJKje4eajv02Ta7J6Govui7U2PLamEsbsYes+y0DYQGZuR2xsZEpwwnzWq5qdi4xGOhrSqG68gpNm7L5XJk+hdewwgUjF8E8nZVShBL/rG29coSrT2PaHXjOqWidK8uoUQ6E7CufQ+1+p1wTD6ryO+FCId6KkmNjG8HK40dw5WHvPYRygRlukH3S3Zxmxk98n9JAnMKHFa0aVOLtrcMXfaCMsrXa6IPW4622pi4aj4B13NRS4JV+KtzIGEWr0QxbIxigSbqUB5pqatY2Tjm/kJEBBQ+xlCmx+n923pdTwvz1ilY/+8QC63SktbfUp5/GCBP5BQUc/1sZ+kd9Gxw5W/bc=", - "type": "googleAnalyticsOAuth2", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleAnalytics", - "date": "2021-02-26T11:24:45.739Z" - } - ] - }, - { - "createdAt": "2021-02-26T15:31:06.279Z", - "updatedAt": "2021-07-12T13:42:58.440Z", - "id": "67", - "name": "Zoho OAuth2 creds", - "data": "U2FsdGVkX1/PHbhszEfSZ7bN4MZZkmaNwKQoFZBG4pF7/ZHUFV0DoTUwqujK/2wOEDxe1FM04hPgOqyJPu+MKRp2c20X0EWVPNRtokD/1+HmqdXOOx6k4X+lbFkfQelI2dWWyprmvi40fwoMdGLUpu3HJc8o55G4q2dtMqPYrmtFHkaf4Op5uiYlayZqmsqJTPWxFPdhMKGpmjZTdNQQ/2qe8cv38+z7Ck8DB665LMHA+KwhlqYopcXxPIQ8i/0ClRPH8FKsOqbByty3BiNToSvI+8kk2H+RUlY1+oiNLgiM6SnlASbKSAv+P1iB+1RE5A0eSIDdjmAE3oPqT5RqGGVadj0+0kdb4lSyMxWum4nXNd7Oj5b4TkD6b2xAcSS5H5Z/4W89icxyMBH13jAi9OfLb9XxWLIikhw7fMv/6qyOIjpoujdwk1axpur2g9TQu4aslhVEvURJYlNxyzTjSz6IWwxybxUGMQp5VVuxTTGnizKcwQzeskQMYHDkSTa6jwREC7eZTR79/UBja0PghskLlk4fIGy2gXSR5YQ4xDNyk+RCiKX5/yN0j6/bmHriBmQRv4O8mEIgCww9QlCNcpoTCK9gPb64DcafH9nYSh24fZl/8dXsi++VGxBCePneIl3a1fHzzA+mr1tp6SKjV9dF8Vh3caodQtYjvTX8LPQNK7Gl5lvKWljTNuP9uxtglERZ7+8e61vWwLHecbY4OA4r9wD+b9DjVngkFtmcM6dN136+KbQ+5UKAapOIgr5NTFfOrQrUBdCEKAuUp00O3jTqLcWhjKhsMDsOrU/8kcfNmuAwMvNQGusmYzQid/+a6/DqmWLEvWWCflgkB6uftGUW4H5HVwmPL0Q7D9Ld+/JpLYxYvGuizAC3owViJJMNWxsJjQwcQDtvJvUnc4NhvkiAOOvURCzsXwj6CLCHnAGuQugSFwFJpBETuobDs55+zzl1/axiumMK5U49tNHtZnMTYm/Qsw9UNP8mWSsqzi4=", - "type": "zohoOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.zohoCrm", - "date": "2021-02-26T15:31:06.275Z" - } - ] - }, - { - "createdAt": "2021-02-26T16:08:41.778Z", - "updatedAt": "2021-04-13T10:26:31.116Z", - "id": "68", - "name": "Zendesk OAuth2 ", - "data": "U2FsdGVkX194FIYOkTkfh8YriL4a3jwoRvtU3bvvVuDSICwS0mODmmldCtKhXiwUugqRLtOWBNeqTfRIUcOnlzPjxU73pF08O06wfQnuTE5RcmG8PjXTnD9eBinn6IqdFf5BmdDzCWYdnhTtXzTUb2r20OCseIwe83PVoZetcSdrf+UYGGrNFkjPZpUMZHyCDUuHFzvJyHokSgOm8sqK9kp/1s/otFliiJJo+a6W6Jys5u4JDexjNuxi7YMErXuOSFdFP8ou9kJBop7MzMZnyEEVwU5FxAMLeQ4QYyTmMWy31UjJ32cnqZHxWH5eBe4ee2AfmT2ZUpOldQjDV2QOmswbjzz2H5IrLRWC1Xcpz9swMpPLdCa08CBzJHfKpMg2qW+BqaWVWmu4OgtuOu1DWuBGV8xrha3zIVgXbR+GZ3uQfEJHJELEDYKxr/TsbUyT", - "type": "zendeskOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.zendesk", - "date": "2021-02-26T16:08:41.766Z" - } - ] - }, - { - "createdAt": "2021-03-01T08:48:19.991Z", - "updatedAt": "2021-11-12T13:12:17.994Z", - "id": "69", - "name": "Microsoft Drive OAuth2 creds", - "data": "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", - "type": "microsoftOneDriveOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftOneDrive", - "date": "2021-03-01T08:48:19.988Z" - } - ] - }, - { - "createdAt": "2021-03-01T09:32:36.992Z", - "updatedAt": "2021-03-01T09:32:36.992Z", - "id": "70", - "name": "Phantombuster creds", - "data": "U2FsdGVkX19vXLwfVWRl0HwLwlCfclCynvIxMoUNSZ5L8PF8GEFUrAQZUE6n3/4Bd07jpO/StLJbCZhvtnVMOKtP3j4Tu41pGdt0hOGwJuA=", - "type": "phantombusterApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.phantombuster", - "date": "2021-03-01T09:32:36.988Z" - } - ] - }, - { - "createdAt": "2021-03-01T11:00:33.420Z", - "updatedAt": "2021-03-01T11:00:33.420Z", - "id": "71", - "name": "Matrix creds", - "data": "U2FsdGVkX1/P87NNIRrCvZ7Wek6+PRyZIdvjv3n9pBqODH8BSb3EisCyd9pxn8DFH5DDkysZmqmSX7LzcX9yUI7nsZO55qyoEhxfqlvHT+iMYMF5avnPNqSn9ixA4OpvcVkqzHWVKvJ5XLNfg/o82uPCIScr52Jqy3tWZBjPqsjxVUM87GXB5zPaGImV9wAuzJoa8yLB4dxleyBTT+O1ZPg77+Anp6cL56qfYlw0IehZrZcUd9XQMh2PrKkp68biuDM/wU70tNmNqUAP3s5M76c5IHK+wG++OikTqB2jL6Quw7eoRrdejWjqAgAcMpCW6X6KOEuvhSpixNeqfdGclnFS1ZcDQrwtJcW1x9RkE8q8LfuRl3GhwEMDYYy0giRM8tMFsbcB3wsSRx0gDKTHqA==", - "type": "matrixApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.matrix", - "date": "2021-03-01T11:00:33.381Z" - } - ] - }, - { - "createdAt": "2021-03-01T11:38:38.114Z", - "updatedAt": "2023-03-06T15:41:00.458Z", - "id": "72", - "name": "Microsoft Outlook OAuth2 creds", - "data": "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", - "type": "microsoftOutlookOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftOutlook", - "date": "2021-03-01T11:38:38.111Z" - } - ] - }, - { - "createdAt": "2021-03-01T11:55:26.940Z", - "updatedAt": "2021-11-12T13:12:36.858Z", - "id": "73", - "name": "Microsoft Excel OAuth2 creds", - "data": "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", - "type": "microsoftExcelOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftExcel", - "date": "2021-03-01T11:55:26.934Z" - } - ] - }, - { - "createdAt": "2021-03-02T10:00:46.756Z", - "updatedAt": "2021-10-27T11:06:21.565Z", - "id": "74", - "name": "LinkedIn OAuth2 creds", - "data": "U2FsdGVkX1+ckjPhFVeFIRl7aC+uDvlzUqHTpRqJss/ciWvEjMHTMnuASd9wOf2JK4lcHqZtWkxFiT+Rn2woUQ3M8guOiGlnkMzTPJdSluBgWbIK76NOCZdPHULW+trSnlx1KbZxyTU5cBwM1fnlip/5WC7ibQ6+Jx7mTAg6M8+CBetR8KosMPreN/KU6RofFoOS+2FX2T7kk91LZKhLC3HHbLEHXJytLrXZ95Hlw7P0ZYyULSRJEy9VTZkREZATiwtAEjtiGSnqeq84guQ0u/QnKirqn/9ux+id+nEzNfFfrRN45PNLcZv/2gGpFqhhufYZhRW601xTvuWCwgedUFj6X8hFrlY2bjs0cU/Ox+PMrFn3pMtiw6DpaeqyatpNvw7gCreIv9byDXDXJKJJNq+ogP31em40CK+VCNcyIOfCdctpJceTVRueD+8GdWKqGO+Bv2c8RmnnRbBgUJeNbTqkyM/bjAXDiIB5IxbQGshEHDBGV8v6Diif88HFXdkG5TwavL63GgxVQxfiW6y067lYbLH3YtSNSDzB4rFsxco0mRBUq4+xADexa9s5ejAtr+Gf31VMiITfu4pn2ppQ/urO5WmZte0DLpwC6C/nOvfZQc1WtbzWTgUWBR0dgSY8WYW2Rr/xBgB5MnmxRJkSS3Ryuzs9QCCacHiuFMbjoOlVyEWUZPbrMh4vSCp1Oqd9", - "type": "linkedInOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.linkedIn", - "date": "2021-03-02T10:00:46.750Z" - } - ] - }, - { - "createdAt": "2021-03-02T16:25:26.622Z", - "updatedAt": "2021-03-02T16:25:26.622Z", - "id": "75", - "name": "ActiveCampaign creds", - "data": "U2FsdGVkX18W+SLv7gUuy10NEDU3kkFR50l77CVagp7KlMOt/QPi4uNpb+HZH6iOBShJD4eAl7ZWqG8RaOLwbmgQ6rSCDp/Ejirxv6xOu5toQU+dcqBLBG8Xxb80XcH2iH83hADIinW+MzHBRoxyv1nLCAGbZ+WdFFLyjUdCbNYaCJ8OnUiDJ82z+fGzmWfPXtWAp7ZdsQgJkO1HRHqCBw==", - "type": "activeCampaignApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.activeCampaign", - "date": "2021-03-02T16:25:26.615Z" - } - ] - }, - { - "createdAt": "2021-03-03T09:00:16.838Z", - "updatedAt": "2021-03-03T09:01:02.915Z", - "id": "76", - "name": "S3 creds", - "data": "U2FsdGVkX18j6CZWeaGqrt9PWsivbWbhOdp+f+5AlePE6pNz5eiFOyAaN84/2BsUh35Bb7lptiiv4OAWbRUMNVMrrHz/gHOSmlW5k8Za0mNv+yzNQBVNPWTgM8FY2DJUWjIamFGfvXH9iy17SIqtPNejNmHMPw8gP3t60gWxlrYsDrjDkVFqbpRvm8eie3Fqin/mOctRhc5RtRBdrJBEz3bzAPEQjzaRHzG2LeU/kA5XMGTfUIFaKEZAxhNMz2Mz", - "type": "s3", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.s3", - "date": "2021-03-03T09:00:16.832Z" - } - ] - }, - { - "createdAt": "2021-03-04T13:43:11.683Z", - "updatedAt": "2021-10-28T11:30:17.299Z", - "id": "77", - "name": "Box OAuth2 creds", - "data": "U2FsdGVkX1+u04oWiTQml2xFo1N0bF+0LN6oa/QW3wRYm88OuvD1gWzSMrsqmt0ogyYRphaB6usFXB/JUsknrHtRZB/DWoo1WYtSREKsu6r/t27nWmE8PPUVkDY9z4cBHGU7wmrPEHMMHLdFreM8VVwNDMqVTIH0MKy9kurxMSbN/rqMI6KF/744KrJRhjK5AdXAu120V9VveO9sjmD1KN79GpZnSpcY4IIhqOgFacBa/rL64bURIxgnaN2HGit06gJmpp9Z6/oPBBu7ukLUhlgoUvOyojNS1tOkpjm0hg2ESLds1KTTc5hUtFQl4MS9EU+xBLitSagNhKgwaNuj84YnoBNyXdOPDgw7dL7Imllb9m+Ic9JNdr60b15RWn6U3MO4NLy6AUf2ITeLL1/UkBTkDcLZt3Owvp1yF/NXNv+1zlssdPFBQ5/1v+sTAZCy0K3jDpAigjYe2eH+1aOTVCqboRNF1KGmGapPVqAo4IJ+DGj/DaU3E6MslATb1shOrLDz3b3Ar4MXes2dk30GOob0mttZt7UcJPQke4ojqFIaC8IgtWgrwFGKzeqYBOWUS6Np1Qza5uvPuheQN4vetFu/9+p6esap4a5fL9BGpJztdJcKDyTFogGVtA33S2iZM5n8D6i5tDVZLZLbDEso5Q==", - "type": "boxOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.box", - "date": "2021-03-04T13:43:11.678Z" - } - ] - }, - { - "createdAt": "2021-03-09T08:12:18.169Z", - "updatedAt": "2021-03-09T08:12:59.310Z", - "id": "78", - "name": "Customer.io creds", - "data": "U2FsdGVkX18xYaYa1fih1Ak9xBxBEcc7kL9WyUBpTiFIlEfFwXG0c+Oy5po6HiAHLJdF1NcwjETTyDMaaQSOTtIW6cSgZVxWWvwQz66Wcynu21E2ZBdpWPpeXtkEcvrf48uTQNBEjew2VWi/gvAYAI7EsWPLnlbcKGSLR6MBjnXDjd2InyvRGKDvkqRgf8jAcbX2eRhJcJY7SXcekyikfA==", - "type": "customerIoApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.customerIo", - "date": "2021-03-09T08:12:18.164Z" - } - ] - }, - { - "createdAt": "2021-03-09T12:43:48.282Z", - "updatedAt": "2021-05-20T08:38:00.279Z", - "id": "79", - "name": "RabbitMQ creds", - "data": "U2FsdGVkX18AeAvLNz45uTV/AZuY9NhFbt2nj1Xgk0Qo6KqJpGfSPOeqTUmwih28kpkqUrYEBwOD/fFZMHhkOy+Hx2VsniZu6VZ6q1XeO4nDkpn85iBFQii2Fgj4QZ6ElTAwuRZ2EZbmLvih0ZGM2g==", - "type": "rabbitmq", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.rabbitmq", - "date": "2021-03-09T12:43:48.274Z" - } - ] - }, - { - "createdAt": "2021-03-09T14:20:45.836Z", - "updatedAt": "2021-05-20T12:02:32.803Z", - "id": "80", - "name": "AMQP creds", - "data": "U2FsdGVkX19X9RUEWDKX9xPj1oZtR55IpUt0jGMm1N/3ofT2fNyP0bb29pLMvx8flJpNEqaxEPilLwHJWgdtAgoZLdXqxwRUtGhURtPlzY5tk9uCn3k6RUrWou8vIOO0h92C9Rjj9ECaOMfztk79/pPk+0YtMov3oVbto6BZUU8=", - "type": "amqp", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.amqp", - "date": "2021-03-09T14:20:45.830Z" - } - ] - }, - { - "createdAt": "2021-03-10T08:50:52.438Z", - "updatedAt": "2021-03-10T08:50:52.438Z", - "id": "81", - "name": "Cockpit API creds", - "data": "U2FsdGVkX18Wg9sOJHfAFVYeyoufC6+kq89NGn6OwGGGlLx+i1vaJWKOYdU84dPMwYUH+N3Ka+wjslx6VYFqzGSLIRWSe0+R/p+d3NTCJcare7+ohHTbBFh+60v9TXpBi9OcyilhMRUSiXemrxyuYw==", - "type": "cockpitApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.cockpit", - "date": "2021-03-10T08:50:52.429Z" - } - ] - }, - { - "createdAt": "2021-03-10T10:24:16.085Z", - "updatedAt": "2021-03-10T10:24:16.085Z", - "id": "82", - "name": "Ghost Content creds", - "data": "U2FsdGVkX1+TNAOLTVdPh0YRViINswv5hzwB+4UvCSKdk4h9rcquyMrOtsHBbQhW1EY8w6A/j2I8/bSkIuL50TlHa5o1aYMY55JM9oVmdO+vIMjVoPxS2oGu+wuj+4DU", - "type": "ghostContentApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.ghost", - "date": "2021-03-10T10:24:16.082Z" - } - ] - }, - { - "createdAt": "2021-03-10T10:24:40.932Z", - "updatedAt": "2021-03-10T10:26:51.110Z", - "id": "83", - "name": "Ghost Admin api creds", - "data": "U2FsdGVkX1+SRpIFNtzzfGZwnTmykQFg+c12uMUCPuPzR7WQBrKq1wIctFb5XuQEG9eAZW4KmYFjbyfcFDXrHVHa10mDafeIVneNL7aCB5t0fhTGPtWJZetmJdeAZSjmcjO6WNLOCRDaa77GYR8FaRqhytUByOFtQq5+QXN32zBtCnSQi/WxodKICCbvh5c4VQvZeKt7zFf5uJnqXLC5Hw==", - "type": "ghostAdminApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.ghost", - "date": "2021-03-10T10:24:40.930Z" - } - ] - }, - { - "createdAt": "2021-03-10T11:06:38.526Z", - "updatedAt": "2021-04-13T16:46:11.783Z", - "id": "84", - "name": "Gotify API creds", - "data": "U2FsdGVkX18xgudNECIJK0mBFNJLvzrF+BsvkEc6IS49CAlCSF9fOzuX7uEQAT0X5SbhXQrmifGw2W35rGolz2srrAmTTlK1ihXw9rXzXevNmjLRvywHkubMUiqFLx0aQbhKUzUyDZPkAM8dV7/0rA74tkMtL7MpmaSz5bHuU7Y=", - "type": "gotifyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.gotify", - "date": "2021-03-10T11:06:38.521Z" - } - ] - }, - { - "createdAt": "2021-03-10T11:22:50.635Z", - "updatedAt": "2021-03-10T13:29:20.727Z", - "id": "85", - "name": "Redis creds", - "data": "U2FsdGVkX1/eorJ+2PBnpfL7fZovMHUkv2I+nk3rgzDFy39kZhQlqAUbflN1ZdmIBmzZxQeM/XBSFxSk4G6A0jktorg01xhoZbOKAh1/h98=", - "type": "redis", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.redis", - "date": "2021-03-10T11:22:50.632Z" - } - ] - }, - { - "createdAt": "2021-03-10T14:59:28.371Z", - "updatedAt": "2021-05-20T11:33:59.423Z", - "id": "86", - "name": "CrateDB creds", - "data": "U2FsdGVkX1/FqmItC7w2FpP48G1Y/N+HEfvxdUeP6MTzjt3aO8EwtdJAdHZ0lBb4XXHv2Tvj9JiIwSDcDx1XSlPr3M2omC6tPA7+Ssmy8tb07DnUBxoA+pAYNW2jzDqcVRO8Q7GH/8Na0xukhU/KGQ==", - "type": "crateDb", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.crateDb", - "date": "2021-03-10T14:59:28.364Z" - } - ] - }, - { - "createdAt": "2021-03-10T15:27:31.299Z", - "updatedAt": "2021-03-10T15:27:31.299Z", - "id": "87", - "name": "MySQL creds", - "data": "U2FsdGVkX1/S61GLvMW0XIJTyLvo1e1S7EvgzbOGiFek524hwrf/0/9UGj/hSYLV4dZeCOWWJaVzBJHUH6UxaqoEknCElhrh+RGWV9X84sT65Z+ZsOLCEqB4XmTn20I1OJggjnL9FC/owalBUQ5zBg==", - "type": "mySql", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mySql", - "date": "2021-03-10T15:27:31.296Z" - } - ] - }, - { - "createdAt": "2021-03-10T16:14:50.455Z", - "updatedAt": "2021-03-10T16:27:08.802Z", - "id": "88", - "name": "Mautic API creds", - "data": "U2FsdGVkX18UfkxcMVMnyvulFh5v4MsHRBsbbQsB4MkkXXZMgjNNY2Z1yunbFWCzVUVcM7/7CVlTf3oRYbKw4siibl6lk0rwZuviddJinIlUw1UGAVAS/8pcQ9csUGxJlIU37EmvObSthOPlfDlDrQ==", - "type": "mauticApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mautic", - "date": "2021-03-10T16:14:50.450Z" - } - ] - }, - { - "createdAt": "2021-03-10T16:29:41.836Z", - "updatedAt": "2021-10-28T11:30:20.484Z", - "id": "89", - "name": "Mautic OAuth2 API creds", - "data": "U2FsdGVkX19dCfGo1uCKZje/1GRIdUxNmI3o5u+rE2xiejb9rSIE01A0kacwN5utBwgL/MLZvOfvHyioKuaqZ3RKnTg6JaKL9tEK7hdhr6HK9kuubqdoksfcjnP/bmKLJhwB52vSCCx8n3DEpb+09cYJI3tT5uRnl0BuAje8pYIYQd7nmM0hAQe/rgbcQLBvaI+IYIPodPMUxrVpXizxSoVC6N0SRRjC98jEH0xVdwvKmYkHMTrFJCUlL1qN5PJ9NI4fjFz+PdrOSCel/6C7f+8goMq8EqM/Q5RR1NdFN/sa/ta1nv/3ivSNQkI3NJSv8wjxlKPmAlp+dmbiz3e7hC4C9N7AOL7Ug7gerf7XEN2dDQgRjZBKaNm4aqjuMOIDnF2gkQe8qi//m/YSI7U0c006gIkxTnDgKPUKjilCcjtpGo9KkvoRX//cvrwlvYRqRc95hLkzaT75LljQqmIWgi1L3vufhsKQbDnwue2WFCR+DfoGY75/6HHifnD8U1Zctgx6962MUtJxjs5X4pwAlvEn7QuB/N/fiqW9OC4ePMGb+tCsWieN2S77nhiCr9tAVRhn0q2OYe2dg+4kz8OlN+7WRKTLjQfzUTJAjs38/QaxHxCTgPy63Rw9Mde4wF4D9x+fndaoxXJxKk5yxVidvuO8mwyIDwbwxJyqR4mKo4nohQ4MOR74t3dDs0315jqjAShBTytUiSnzD1nfmIPSOoEenMuzUMTPW1m4Z2RRnsVVjAKALlCP7I8xiJZoFwO+XC7Vzu/HQUZ1m25yPtY3lg5Qcl9FqmogdvNTjckw8JKRSGw2f8b0Kf0kO77Hbl6fDSgJkSDbn69anbJF1jraXc5azT+yqL2MNb+QeM8/1LE=", - "type": "mauticOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mautic", - "date": "2021-03-10T16:29:41.832Z" - } - ] - }, - { - "createdAt": "2021-03-11T09:10:39.937Z", - "updatedAt": "2021-03-12T11:30:31.155Z", - "id": "90", - "name": "MongoDB creds", - "data": "U2FsdGVkX19VdDhEFhUCeW1BZk7DkUFX6zvlRNRhxoY9puM/2xlvJt2EIu+np9RsNvpq9VrsBhi8ap1sC0uiSN6GQeDCnCCN8/IvlSlwWuiPDai0lzQ7eRLaRDAfhbx40FAQfK1KLW+bbVddeQVYvQ==", - "type": "mongoDb", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mongoDb", - "date": "2021-03-11T09:10:39.932Z" - } - ] - }, - { - "createdAt": "2021-03-11T12:08:10.123Z", - "updatedAt": "2021-03-11T12:08:10.123Z", - "id": "91", - "name": "QuestDB creds", - "data": "U2FsdGVkX1/N9OGwXIhnHPyDyqK6Y5ajkxZd1MlEBVJmdb+FZ9eheHQ+Cmi3/VC0sGW/aKRXEduxqA+Nh5ZMHIGJyK8kNej1yj7BD7BVHXwOHBzFgHLObH78pncsJc2f", - "type": "questDb", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.questDb", - "date": "2021-03-11T12:08:10.116Z" - } - ] - }, - { - "createdAt": "2021-03-11T13:11:20.456Z", - "updatedAt": "2021-03-11T13:21:28.295Z", - "id": "92", - "name": "Postgres creds", - "data": "U2FsdGVkX1+R4Frm5szecbkG6nOk91uePHlHRSowvgnUi7jxpTYoS/2gAMD2iBVatEzm+vrehhv5MQ9BbbtVJvsP7FyH53eZaLe+Y4CaisflkDWG3o2C5fcXlLSScKyP", - "type": "postgres", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.postgres", - "date": "2021-03-11T13:11:20.453Z" - } - ] - }, - { - "createdAt": "2021-03-11T13:59:22.856Z", - "updatedAt": "2021-03-18T10:26:59.786Z", - "id": "93", - "name": "Kafka creds", - "data": "U2FsdGVkX1+rWU9thAgHLGdI2UgdcVfSGCSAQkYRb9LWs6ASmyQcg0rNn9FL8+hZHffroK/VRVLrDqAuCRZKsDiUGDCGo9RZN5bi9qkVmxnzbLbDWhfhTCheBM4TEuITypYyHUnwwka56YjBgmdpjP7zEhDUKW9o6wsp0np3I7nZdlsllVEVrRNpb7d7C76DMJ9wNi+7C2Nr8cSywNKwuA==", - "type": "kafka", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.kafka", - "date": "2021-03-11T13:59:22.853Z" - } - ] - }, - { - "createdAt": "2021-03-11T15:11:08.706Z", - "updatedAt": "2021-10-28T10:25:18.167Z", - "id": "94", - "name": "Rundeck API creds", - "data": "U2FsdGVkX19MoytoZIpT2F4JLX+owySDLMvAiLJmLeiqGf2lxJ8jcBHvH789doN4L2+kJbc4fHur7DiknckfSYC9TCwk2dpe8y5MiI8/7v6JbInpy99IQ4xns5kIwg5y", - "type": "rundeckApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.rundeck", - "date": "2021-03-11T15:11:08.704Z" - } - ] - }, - { - "createdAt": "2021-03-11T17:17:14.643Z", - "updatedAt": "2021-03-11T17:18:39.467Z", - "id": "95", - "name": "Yourls API creds", - "data": "U2FsdGVkX1/YuUuye5uQXe3GNUqXhPtgJ4D7B8QBoFEt5lSLIMah+CtSBAhXgmcrXQDKfcDxz6WPifZOoWKigiuzbAROEcB637teGe8XLC8=", - "type": "yourlsApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.yourls", - "date": "2021-03-11T17:17:14.638Z" - } - ] - }, - { - "createdAt": "2021-03-12T09:09:03.077Z", - "updatedAt": "2021-10-28T11:30:24.515Z", - "id": "96", - "name": "NextCloud OAuth2 API creds", - "data": "U2FsdGVkX19QtT3IYsYHzTBMEyC2ptpKQ2BFukqLGXFDjyJHbyTq3yh8y1bIsosRedrvfCQuRWyG/yUFIv1dV63oZbLiWVcgtgypcpVyypXmvqrDpKMVbQlWCAPOumcfvJzOR/Nb+oFSu9O2TAonJNSUrRn254IaRSpylB+vJClRIyi4ycAv91W3JwfGAnS7N4EFOqbpjONN4K4rmx06XSxMgfUytE6XMBfj4URYsPkG181edV9c89hX2rkKpBU0YCWECEAzgO3m7cQlsXwxoALjUAoPgtwk6iq3LOIr1Ko06V7TNaexxCEWBszvGos033Eo/nTp06sJk4eJXzY/CkJLdtSWbFo23+MGcvrcFitaeooPAHvYQiRzvTyRIAP+6Zs8GswgjT2f/HhicK/X3Pwp+S39vjg1DcSbElVdd5mVaWTPaWdbI8M6GQ6TrrpBHwDQqlMK5uW47RFAFAVwbRby//ijhz95p2wqaieRRFJjNsn1ejleSdsw8UzEWP/Pwz221wgUryi0xTiye+4+3LINfBtJoLUTNOw9wgR5vOUYVOXl6mgYWp/hBdVdKeX2e68v+87qZR0anXuEFGCsdzdP9Roz9XnumKp4AxoxE+ZP9t11WiLp05DUxf8sVZ8tVeA5kYx2Xem1fpgRJi+zsA6wWxVp05w77heihZOBrWrPx7cHf7ozMRDn5gDgCphy7V3eM8sk1eRP+VbHA9fg+X2QObGTs4bFIc4h9KVj2aLHA4hLlflQp7ZEkGxZ4M5Ro8UyGwfqh2+rZJF/KwDG8DszlUb0E3HHtJTKqzw0EkS8LvuZF/LP86sbHg4gBDi2+r+FUiC2U2AytSkc2P/r1Flca/bLov4fNgpaPLCQCcbCRnL6vQCK9JcG6pGE72V0u6bhMEk29ugECqep0cYZXRbKD/mRMbpQz6JpmE07Cw6fmFbJnyzk9XaUOonHoZY3W+LrKL1v54JnfOLiarnXztG9eTZCofDrpBnsI37jhjM=", - "type": "nextCloudOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.nextCloud", - "date": "2021-03-12T09:09:03.070Z" - } - ] - }, - { - "createdAt": "2021-03-12T11:40:01.879Z", - "updatedAt": "2023-02-20T11:04:47.455Z", - "id": "97", - "name": "Wekan API creds", - "data": "U2FsdGVkX1/Qia18DYmlRSucqmePYvwmX4Z8WJDbQSCLZZZhjNE+e432Y96+of/LqxeHRKDK36YUvkOT4Zyvoxt8zwYk5gnXYEhA8VM4jpnmYLlEXvP2coH7+79beTQnFtSiblt9DY6kiQ9sZCPkHxlWpVVTwLiodlZ6M5mGlF3ibRAyfziFR8CQ6+HX3a6ESeZiS8XpAVvuIvIxttgFPQ==", - "type": "wekanApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.wekan", - "date": "2021-03-12T11:40:01.876Z" - } - ] - }, - { - "createdAt": "2021-03-12T13:11:46.131Z", - "updatedAt": "2021-03-25T15:23:50.434Z", - "id": "98", - "name": "Microsoft SQL", - "data": "U2FsdGVkX18OjvLpm+sUCUJogb+mrx4B1Fhu9ILn9v3eOFS6L1hW8b05Ocp2PMM181JqNeyuuU0LZ29domoAwZ08IrBSknLtPy4CfNvfRgs=", - "type": "microsoftSql", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftSql", - "date": "2021-03-12T13:11:46.129Z" - } - ] - }, - { - "createdAt": "2021-03-12T15:28:11.857Z", - "updatedAt": "2021-03-12T15:28:24.902Z", - "id": "99", - "name": "Line Notify OAuth2 API", - "data": "U2FsdGVkX1+xSNwjOdBqBUIXSvai4AJ/B0Xilj0ktq/QoH6TWBiztIDKcV7aYMdQRy8T81/7BQgyeRKecyXKRZOsxhNi1wN+RYqJYb8w/izJ8yKKWDgckR44RCmGnlh/hjW+sRaKxpP0uqe2GChrtTHcTSOOzyHCGe97mZNksHL8hwO0Xj2s7kK4M2P3vISgigQnZpQi07N1kRFVVJFEV56egA1KDzcQW2zFFAXZdd5CGt9b0rqD0dXuVe/Ma1Nd4tYwvbLcCkQUdBE11HwmJlNQVINqjIhog4L7yGofqE5Ye7uFYE+uM338dTD0GR1eujDhJV1WfaH5BBPrDUhg9A==", - "type": "lineNotifyOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.line", - "date": "2021-03-12T15:28:11.855Z" - } - ] - }, - { - "createdAt": "2021-03-12T15:50:41.447Z", - "updatedAt": "2021-03-12T15:50:41.447Z", - "id": "100", - "name": "Mandrill API creds", - "data": "U2FsdGVkX18wwkOLFQswsvPfxPV7EGPE8rz2BVZRmhiy5p0rj4/q8v+Pq/J+UA4JpHgpTwQSFoLJcxnbtCFHjQ==", - "type": "mandrillApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mandrill", - "date": "2021-03-12T15:50:41.446Z" - } - ] - }, - { - "createdAt": "2021-03-15T08:07:51.815Z", - "updatedAt": "2021-03-15T08:07:51.815Z", - "id": "101", - "name": "Twilio API creds", - "data": "U2FsdGVkX1/Hm6KToJ4wYYYp1RPiXzQnl8H7C6VGFTMLgjlg8bsI+Z3qKsZb6XmbNxsN8pZtxSk08819FDDERmVJtGDteE3PUbrSwX9ZBvted/SF93KyL0PrCtIxRtOeHd5tquC8QMVHy2HlTl1/KDCVZwG0zCK1cJnaACH0FOs=", - "type": "twilioApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.twilio", - "date": "2021-03-15T08:07:51.810Z" - } - ] - }, - { - "createdAt": "2021-03-15T08:50:20.567Z", - "updatedAt": "2021-03-15T08:50:20.567Z", - "id": "102", - "name": "Travis API", - "data": "U2FsdGVkX197DT7QsA2ASxrFzL+fJxEil+VzyuZvlZrQzTP+vzquYU/h6m80jBYrfXHyvGc74cxzdHjX/LZ7LQ==", - "type": "travisCiApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.travisCi", - "date": "2021-03-15T08:50:20.565Z" - } - ] - }, - { - "createdAt": "2021-03-15T10:40:08.581Z", - "updatedAt": "2021-05-10T10:08:44.134Z", - "id": "103", - "name": "Cortex API creds", - "data": "U2FsdGVkX1+BOc0IlJwZnb73ie9l4VzT0h52Urrsf6r09AMleCIsQNdCH+7hmC4hAM2AKbgcLPjPGwxTN7hMRWwlTKi7nh7BinHXheGeJtp91MKse93YE+VH3Rvp6JJ/plIDmiJTp1FoQFNPPDqbPw==", - "type": "cortexApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.cortex", - "date": "2021-03-15T10:40:08.579Z" - } - ] - }, - { - "createdAt": "2021-03-15T11:34:15.209Z", - "updatedAt": "2021-03-15T11:34:49.148Z", - "id": "104", - "name": "Pushbullet OAuth2 API creds", - "data": "U2FsdGVkX1/acNZEycwY2oYwzm/qKfppF3HlTQy/vC5TI7QDcPkrAvzzINbzJ866e0VmMz9ZHhNXV6ZAxm3Ofs7fa+xTRbyfsfjHApBvN0B/VcYPKnH6WRQ3rv9quVw9UBS8HJdS3M+HVYf/VvrKNVwhm0ebTuF3SJr+9/zHrey23gZuKsQNcw24jaYDGSYiJ64eLg+rsUh93QoMDOq8mmgiHb9z0KDudTKlB728rHPo1ELA/k+F6z6F4p+j839rAl+wsfLVmM5Z1MCiEyBkAw==", - "type": "pushbulletOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pushbullet", - "date": "2021-03-15T11:34:15.208Z" - } - ] - }, - { - "createdAt": "2021-03-15T13:09:48.087Z", - "updatedAt": "2021-05-25T14:27:49.598Z", - "id": "105", - "name": "Twitter OAuth API creds", - "data": "U2FsdGVkX18riumSapB5XXGF1EBh0TEEEVdxGzpWWM/KLB2RxO6eop1nQKUIcdF/tR92J9faZGVQa6vHsbpKdvBgK7AtceZlR+t3obChNOEhz3IdPnLuwDl4uDDCjmb8FN4TP7DgHV97MHdFf0okHw/Ds5pJheSkeL0OuXSc/1fa59vHan7pn11KZGtgwtIU", - "type": "twitterOAuth1Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.twitter", - "date": "2021-03-15T13:09:48.084Z" - } - ] - }, - { - "createdAt": "2021-03-15T13:50:05.544Z", - "updatedAt": "2021-03-15T13:50:05.544Z", - "id": "106", - "name": "FTP creds", - "data": "U2FsdGVkX19yEAmrQHFBDGmRxp+WnSpl/QjsGjk+TtgU4xYhPuOMkP0L9vQhT88LHML81VWXAEWg/KTV969Ndw==", - "type": "ftp", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.ftp", - "date": "2021-03-15T13:50:05.540Z" - } - ] - }, - { - "createdAt": "2021-03-16T15:12:24.122Z", - "updatedAt": "2021-05-21T09:17:05.551Z", - "id": "107", - "name": "The Hive API creds", - "data": "U2FsdGVkX1+sq7FgjnLT7wscZcPeewSYPCGmLSNFCHl5ARoZ4AhDoX+pJBdeZq5Wjt6ys2RYz2IArqslrrzpiUEtyVBA2jONuoID/rqAbpjkg7DQE/vPIGoddzk1cbe+Hij4Q2LgIdyi8vimHRYw1w==", - "type": "theHiveApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.theHive", - "date": "2021-03-16T15:12:24.117Z" - } - ] - }, - { - "createdAt": "2021-03-16T16:55:54.217Z", - "updatedAt": "2021-05-19T14:12:02.316Z", - "id": "108", - "name": "The Hive API creds (v1)", - "data": "U2FsdGVkX19jCmj6rCN79nEROh6h7iIjy6b+p4stO/NGN5SZJruViMOIVpTC2UBpbEbp0lpmurHRWHa0t7lhFQN0YNksUCa1Dvdq2gg0L+lUKZR2gX/uXEO2TkkmAht/siUB5DrwetudoSY1n5eNNbu2/5LCGME8H5oT0wh+5V4=", - "type": "theHiveApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.theHive", - "date": "2021-03-16T16:55:54.214Z" - } - ] - }, - { - "createdAt": "2021-03-19T09:08:45.915Z", - "updatedAt": "2021-03-19T09:08:45.915Z", - "id": "109", - "name": "Shopify API creds", - "data": "U2FsdGVkX18BbV4+zI7uK/CPIyEYKsbC2sfNU6LxGjBLFbQ2e0MpunF4VAfH+iCZ8uZEN0TJN0kQl54YWaSnADzhRpgbG9GKTvF6kz57XVACRtVW39StOmUhPTeZFCe8BOd1x7xXEsdtCKYfQmm4PyIiA7v3DfKRJWLJfDGaUYfKGXcDIvjN6e2INRhKMhecJM4QzJGCR5dgNGIt3+x4z2he3eXOZ47B1DpGfch53ojSDMNbbPVt4ErKWtpt2SDiN+Fa2QHQGOL6MMAMp9wGUA==", - "type": "shopifyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.shopify", - "date": "2021-03-19T09:08:45.910Z" - } - ] - }, - { - "createdAt": "2021-03-19T14:22:44.070Z", - "updatedAt": "2021-05-04T14:31:32.039Z", - "id": "110", - "name": "Microsoft Teams OAuth2 API creds", - "data": "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", - "type": "microsoftTeamsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftTeams", - "date": "2021-03-19T14:22:44.063Z" - } - ] - }, - { - "createdAt": "2021-03-19T18:17:05.697Z", - "updatedAt": "2021-03-26T13:23:15.730Z", - "id": "111", - "name": "Microsoft Teams OAuth2 1er account", - "data": "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", - "type": "microsoftTeamsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftTeams", - "date": "2021-03-19T18:17:05.692Z" - } - ] - }, - { - "createdAt": "2021-03-22T08:12:15.509Z", - "updatedAt": "2021-03-22T08:12:15.509Z", - "id": "112", - "name": "Orbit API creds", - "data": "U2FsdGVkX1/o7TfYGI4nCUKryXGq7lhyDEjT2FntS9xynzLCAikqxFA3p6Qt/w4TtDKB/0sqdtX43Ie2FSrW8A==", - "type": "orbitApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.orbit", - "date": "2021-03-22T08:12:15.501Z" - } - ] - }, - { - "createdAt": "2021-03-22T09:46:41.540Z", - "updatedAt": "2021-03-22T09:46:41.540Z", - "id": "113", - "name": "Monday.com API creds", - "data": "U2FsdGVkX1/RKU3VMsGxVQ92hJHN35dpJmqaGx6FHA/Q1ffPvjPJ4aLYcU1pJQ1ZxqFOS8g5rg+A6dPC5glz0g7FVBNAz1+Lz6CAWDLs/AJ7CnZEbQNg1E28pZXhEsTEVmvjtYijeTqZ3d798xrWLIbVVNUTe/NkWLaqMh3NA8t+qA1vdQRxdk9EQjIkVcFeMElCtTIV4KGW+rgJUxk+q3fqPcOziIg5UJUB3OL1ZuHqYjGb+fRJJ8NKsTbLC/zEhecmBYKx0e62pveWMlAKSrajkLzBMvzI34RYvLkGSVX7veFtdOQjYF/ket9gDEKcfduWzZE29K4BKhZVHJZQQw==", - "type": "mondayComApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mondayCom", - "date": "2021-03-22T09:46:41.538Z" - } - ] - }, - { - "createdAt": "2021-03-22T11:00:22.706Z", - "updatedAt": "2021-03-22T11:01:17.224Z", - "id": "114", - "name": "Clearbit API creds", - "data": "U2FsdGVkX18jQUzG/vWBSBLNWCv0XRtGjyoWCC1R9qAtgjcOKXrqXJfS1gjE3y5bT7F+7yoNd0Z/wO0+R/Grwg83EaqgmzKcmWHMEg8JpQY=", - "type": "clearbitApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.clearbit", - "date": "2021-03-22T11:00:22.704Z" - } - ] - }, - { - "createdAt": "2021-03-23T16:27:04.016Z", - "updatedAt": "2021-03-23T16:27:04.016Z", - "id": "115", - "name": "APITemplate.io API creds", - "data": "U2FsdGVkX1/T+TNJGO/e30THF/oTXD49Z8O3DqAyoTgkqXESzPpgtKWF8O+A38S+3nFWEnqitAui/Kg1XmGJhTfnDEOj4RJAuGc4cKa7XIU=", - "type": "apiTemplateIoApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.apiTemplateIo", - "date": "2021-03-23T16:27:04.008Z" - } - ] - }, - { - "createdAt": "2021-03-23T16:56:37.485Z", - "updatedAt": "2021-03-23T16:56:37.485Z", - "id": "116", - "name": "Peekalink API", - "data": "U2FsdGVkX1+amqKPT+su6WEQcvcNEN4JG8G5+//6gX/YU1+jf5CK/TeYa587Ic/R+qDJhrUSFDLFd+I9JlKvYUzFUWWYZel36akQnn2qrHQ=", - "type": "peekalinkApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.peekalink", - "date": "2021-03-23T16:56:37.482Z" - } - ] - }, - { - "createdAt": "2021-03-23T17:16:51.390Z", - "updatedAt": "2021-03-23T17:19:41.777Z", - "id": "117", - "name": "TimescaleDB creds", - "data": "U2FsdGVkX1/OG4Ms0I7b2c+6p5RfwLpDZfWBSe84eAlrmtuhog0SpjsaeZaLyDwN802lxA/6TRpGnF4v43rOUfxHAKYnloI7LiMgLdVJS7UNMBiYi22P71O46+UagWW+", - "type": "timescaleDb", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.timescaleDb", - "date": "2021-03-23T17:16:51.386Z" - } - ] - }, - { - "createdAt": "2021-03-24T08:41:57.197Z", - "updatedAt": "2023-03-06T11:47:25.441Z", - "id": "118", - "name": "Raindrop OAuth2 API creds", - "data": "U2FsdGVkX1/trFrXaFPYfQbSJPjaXjVpd4UVIUEzxmaXTiZ67ecDLPrnD3nVms3bvjo8KUPYYpHZP+21uZarECDahaMC+DFrH4JkjUsHDDdqtzhmfLJDhDdseJm9GCVdyU1JoljnI991rZyXpgggOic7SSxENP6fWpah7rdwjoFLPxoPE02fyLCuDJk/XZ/2t9/PZc39SY+ssBJXX501TKdL2014tYQbpSvbzJG3HWVqF01XSQjj31g8RS5TmcRoQfCnk2YX1ug6BNZpELpBXpEcPNoZTz0FP7vE4T6IxRz6jk8+ZXHplCMdwiJ5ZYY4q5Sak87pC8xNvLpixBh0Zpz4/3H7FWP9FnwUqLkNlRdgb09OQ9ftVZQEwvKeldjmvbmFA3YECHAsvqqmywiTTjWY/HRKunW2F0U4YzZb0U0ONVhIhQEfKImIwyoGjzRwElqor+/9gFPoDEGCVmYvzHLpCBXDeaW6EunsktSV8oBVQmty7zZBmas1n7sxM+LpNGP86qeKKuklUkn0slAYl8BCxJSiowfQLDeYCF/qa77oha5cu64ES7OwcbP+DDV3JdFU+OG4xEX3OKBYALPU6LnZW3tboIFjvHBB1pJY7j1RlOEXei/G7mRyxxkyZcoBXg8so/7gb4ybqfg2+qnTkxboQydBIMSB0V6xtwizkws=", - "type": "raindropOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.raindrop", - "date": "2021-03-24T08:41:57.191Z" - } - ] - }, - { - "createdAt": "2021-03-24T09:01:09.124Z", - "updatedAt": "2021-03-24T09:01:09.124Z", - "id": "119", - "name": "DeepL API creds", - "data": "U2FsdGVkX1+GlCRFP+uZ80Sf2efUOqr1NZRfWmKURwZ1ZUxZ+6hMALKGhNp+ALMZxH+WSgYhmynGpl2dRXnLfdt+2uC4ME3cigCFSE0W2vk=", - "type": "deepLApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.deepL", - "date": "2021-03-24T09:01:09.122Z" - } - ] - }, - { - "createdAt": "2021-03-24T10:06:14.748Z", - "updatedAt": "2021-11-12T13:12:41.830Z", - "id": "120", - "name": "Reddit OAuth2 API creds", - "data": "U2FsdGVkX1/0US4pkFlyhr+JeAVih9LYj9FCeuOCXka2W4E8s1yIzfgOMwuxAdP0mXUCVd48h+haGlZg3bjD9oy37E6ooQOp2BTs7TUUF7jJSLNq5hVkm0wzcq4YvI/hHVrD92CobCjCI0yY19u2weTVkUdyZbDlVRrWvyn0UJMUqtv/KI0f9g5CaNrkPI3dxODytpokrdnk9dl7SGHUOIQg8y2nYadjCl8Wdarjvv4CrrnYJyUFKKtIWH5cDHY0I0NL50QjgDeVQ7KsoT6yfoOoqvBbCyTMPVRQwAJuTDBiNmpiZNwGzZ6+4QBQgcJB9qyMt3N3LMKF6LqbKvaf2hyO0MCWe/hctHe6Mqa2c/Se8AROktUOBCD5gCNkVCoFmQkLW2ImeEdD5Ne7CB+1CTQgNwGUTOgLporM70kQu7jSmWM4bgMaX7m3hbqtl4uyTR0Rb624hXnfTPGC7LAV56SwUciuPEFEJfNeUToIe3yxrR0PwPALUJ0QrFJA2q/ssy1xUKBEd1MFJb7/0SiFC8VOUM3lyBEsAkYD7CpPNjZaATjfY5Cbf2pKmwnZxjEh7ME/PqAqcfVdk9kck5OexkM0NFjd01An4uAwPOohJR/EYgHD3nPkUdJK7WfIvYneEiPYRNMR+JO0EjFafLZpB13v/iKyiVLO2hHmcdqeJcOBWIrjCF6fhv818VfByfHSTkTJBF7KOmCmQnkhU/BhKFt4CDsC2xoNrBumIfxxnhIltVf7pMgTltDai8RE+jPhbNjqGdZDVcVBPhDtDl/IyQ==", - "type": "redditOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.reddit", - "date": "2021-03-24T10:06:14.733Z" - } - ] - }, - { - "createdAt": "2021-03-24T13:18:39.585Z", - "updatedAt": "2021-03-24T13:21:09.217Z", - "id": "121", - "name": "PostHog API", - "data": "U2FsdGVkX1+dxVkGdcLhw/iwAZ6ZhsE/B5fcd2vpZQ7D4fzJCDCTOa42QLamab0a+76Z+B7qWIYwjAmJ2esTX/XXzwcSf3pmLF3BgFktOezmzBHZ0Pg13R2aMcXsNTq1IlNUvYnsLw8hURREdBE0DQ==", - "type": "postHogApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.postHog", - "date": "2021-03-24T13:18:39.143Z" - } - ] - }, - { - "createdAt": "2021-03-24T14:40:12.371Z", - "updatedAt": "2021-03-24T14:40:12.371Z", - "id": "122", - "name": "Wise API creds", - "data": "U2FsdGVkX181H3w/pIF/pUShbLd5k3fIlJ+P1zcgGUzs9B/ShD57Tqt51M8KLZxqVH65s74UnMEYb4YHWYBYpazIRQPnpf16euX/WV/yz7Jn+U39z5oNT6aGrdON0ybt", - "type": "wiseApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.wise", - "date": "2021-03-24T14:40:12.367Z" - } - ] - }, - { - "createdAt": "2021-03-25T08:24:41.346Z", - "updatedAt": "2021-07-29T10:35:04.793Z", - "id": "123", - "name": "PagerDuty OAuth2 API creds", - "data": "U2FsdGVkX1/OnrXa5cdqsp6Gx8I+ZTOCZASl95XvWjDG6KcvYHq1fsfTpz/yj3iO+4PJ1C0VkHsLX9a+hpUz30J3ryvl4PgnqSBuFMYJq2ilJ4/RWKiTyEaDIQ4iLsexw23QJ5a7+Ac2Fy7wyxvQ1p9e5ibNbVyqEMeccJQNj1BC7iJHOwcZc3swcC3fxLy+IgfSpMAcfnVRc5j1Z8x3IK9J7/K4sClINHgOCm+XRiqGRcWzMIUyGgVXGTLVw5CITzp8mc2RvHgWiY7i77352wHqUmNLaXMM5MKJTjv1hFAkYC+qSeFy24CxixcWTxChKHDNtIrszJAGc/8Tztht91wd8xifgp57bVJf1msIx3LfmJE1FabWw5ibzjqdU3M1Rh92+EgTnDue9BgZ3p+f8lmO+W7RRc7zDWJPT+kF83KVcTsml8RR5cOKNJwzCEndmMpKIqiaSqEWyzMSi5/oW1J0EirvMRisWQPNIZo2jiwyp1QKxKMg8t/wxwciU5TUZYwvtOSYOfL1CuDo6VN/G2Sm/2mTqf0C1QcXUPSzzzMV+5EJNJgxhuYHdo/3O8KGLQZ64P0DMxWh/nzUcIz5NIyaTLbGa0vIjrbrs+LvrX0=", - "type": "pagerDutyOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pagerDuty", - "date": "2021-03-25T08:24:41.341Z" - } - ] - }, - { - "createdAt": "2021-03-25T09:20:09.900Z", - "updatedAt": "2021-04-27T09:05:17.449Z", - "id": "124", - "name": "AWS creds", - "data": "U2FsdGVkX18CrjtlfrVKO5aBIoQs97toMhis4Msz7ramicpQPg/7ADHR1a5KrYJwMaSesk+aep+ff8fKEbZ6uaH2kiIcCo4Bb/W70/YpXYXIfMlxeo29OolY9w2HlSQnoQT8gxGqza8L/ZQRgW9PaD8dj04GOGv6Dyp9jLQgXGA=", - "type": "aws", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.awsComprehend", - "date": "2021-03-25T09:20:09.898Z" - }, - { - "nodeType": "n8n-nodes-base.awsLambda", - "date": "2021-03-25T10:26:02.255Z" - }, - { - "nodeType": "n8n-nodes-base.awsRekognition", - "date": "2021-03-25T10:26:02.255Z" - }, - { - "nodeType": "n8n-nodes-base.awsS3", - "date": "2021-03-25T10:26:02.255Z" - } - ] - }, - { - "createdAt": "2021-03-25T16:17:53.698Z", - "updatedAt": "2021-03-25T16:17:53.698Z", - "id": "125", - "name": "Tapfiliate API creds", - "data": "U2FsdGVkX1/iIPUbQzFC5Idc51Ntpap/YY8Z3XUFYvy6tbuJi6vtZEdT7zS/UJfhdwAg16DFWZ9msD/qfB5xQ+hm+Sgfinm/cRu84fu3cxA=", - "type": "tapfiliateApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.tapfiliate", - "date": "2021-03-25T16:17:53.696Z" - } - ] - }, - { - "createdAt": "2021-03-26T08:42:20.556Z", - "updatedAt": "2021-03-26T08:42:41.657Z", - "id": "126", - "name": "Wordpress API creds", - "data": "U2FsdGVkX18sj4B2d0sk6ZjrvYjNNo/XAGODRSiifsu17PiCMzuCEV1JDLqWx7MT/xZLAyDfNyVcTYLffFoIvBZS+VZuhi7xyrQ+HLqi1d+PkS1Zcy7HZwsb/PDN1istKiMM6upOXhqITrHeNrVQZg==", - "type": "wordpressApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.wordpress", - "date": "2021-03-26T08:42:20.549Z" - } - ] - }, - { - "createdAt": "2021-03-26T09:23:43.013Z", - "updatedAt": "2021-03-26T10:04:56.190Z", - "id": "127", - "name": "WooCommerce API creds", - "data": "U2FsdGVkX1/PpZBiKFypBhk59ahnQrzs6DvXvq+yOJl434b6v7qRK+jU3pJWDXgRu9ekq2QJWCDPv62Wzi0AJP9cye+2//skLuJaoo2qcjHOyINNQsPx7McIgHrf+boea9Taf7uF/qPSdRTPh5PtlPdHjH7pFfi5JwMk9+GYJKPt5zq+oy3AD8hCu/11cuZjQ2i5wGp7d1I+jIgEXWwHrLCUwDTyrAzIorS38UHmH71Tmuy/65s+qeMN59wHsNRw", - "type": "wooCommerceApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.wooCommerce", - "date": "2021-03-26T09:23:43.010Z" - } - ] - }, - { - "createdAt": "2021-03-29T08:29:56.384Z", - "updatedAt": "2021-03-29T08:29:56.384Z", - "id": "128", - "name": "Vonage API creds", - "data": "U2FsdGVkX18WVXC8Ll749yKbkxqAqMbGn5a4OOBxojW53/A+mJNMqVRbJFV2z2ufNwfTqCH4JEZyyTQrutfqwr2SeSWMVooingKfRCPt5QI=", - "type": "vonageApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.vonage", - "date": "2021-03-29T08:29:56.377Z" - } - ] - }, - { - "createdAt": "2021-03-29T13:54:02.617Z", - "updatedAt": "2021-03-29T13:55:02.914Z", - "id": "129", - "name": "Drift OAuth2 API creds", - "data": "U2FsdGVkX18fFSioDqPTa+OHhYDqqWu7G45NcimDjrhwkLpKsZg/zDWYia85+CXZENYbOQjwd57C7qBwhaPxJtXFF528/FeScstHHNJoI4HKGDNxwn9/4zrQGrwB21gPXhq+eND+Si2mCZhP2Upu+BOgk5m0pfce+lLmwYwILFfTuM8Vz403A0P9grRLAk+vSxkErwdtqNqp4Ac3Cvxczw==", - "type": "driftOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.drift", - "date": "2021-03-29T13:54:02.614Z" - } - ] - }, - { - "createdAt": "2021-03-30T08:31:01.924Z", - "updatedAt": "2021-03-30T08:31:09.696Z", - "id": "130", - "name": "Sentry.io OAuth2 API creds", - "data": "U2FsdGVkX1/cXGLFr718WUrwP2FijYTb0QYRysCy9kj5Xen1gZJgDP3LfMl7lkeTdE/q2mCYKa8rq/pb32Xm3bzXbprORCqXLnZB0p93wZZKcz1+LzckY6yuifN/VEIMKhE3fSwXi1/PER8VmQ3K92hup3LSalVzuqhy/EX8K5oDkLEEmEI043hglgCbTSxplxrjgRJ65y73yTMxfOrLdHWTbZVjZEKB8knc/hRvg6M16nkSyfFclQALOZiKN6o9OLNTx3iQ0wLrhZSvDZuhfiysVqEzpcBEsM98232NzyIxcrQ74SR+uuhgZeN8IejYR5ApPJYUsrTTC+keCqW9la0KBSPdM+ckfTYIctJFLZnjvbvJMEZHjEMn2CjOgmcd5U0o8LLceh7aDCbLBJ4+1FsE5ZQankySwNriCSV6XsQ6b42Cev6nIpne0lwOLCtEryzlEAtr+e5bn8/BVrgFVY6IMnOq1qtW20UkF9/dBlQIXy/hcXNoeHHjKcn1480GvLtHAX68rWwOi4cAbF6jM1azNGpxUJPXJflT0QQWKo0QZKoS35rbvUtpF3GR1blAkcISaQXZi03fWY81i7m/ddPB0uN3A64EQ1MPsaGjuqfFWKvD+BcbJzHOdHf3NpUNBGBaNLRUzHNqB9PvR+lI4KKHve3gw/xygaE431v2OF57YRgJAdJKJMsXYSRR4rPWPqsZGLWQR+u9tjSgm5qo8NlrGTCisfZZuxitK1SHVneULlJe78ybNd7SaLbpcdPeUfRlg+UnRKXPpHmpwWjmCnrhgfL43Zn6MtPQ45FjLrWWgduf8ylg5wC+LBIEFfJ05bNDEAI82mo7fX/FAdgK76mzbs95moEbrqgDy+9rXECuWaTmOtXtnX/A/+pQ0uZ1", - "type": "sentryIoOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.sentryIo", - "date": "2021-03-30T08:31:01.918Z" - } - ] - }, - { - "createdAt": "2021-04-06T08:26:09.733Z", - "updatedAt": "2021-05-21T13:38:09.422Z", - "id": "131", - "name": "MQTT creds", - "data": "U2FsdGVkX1/m4oE9vOBa3hzo+X+T6tDwBY4YVzTXZnDcIEl3EZzNTlirYEuZIoakWhJwCqw1a/1MkLh1jUy97VpaZ3/DEZM9TMnznlRWz+cqawe/VrPHHOLHw4bFqCvvdvgD4IvVycxY57RsxFiL+w==", - "type": "mqtt", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mqttTrigger", - "date": "2021-04-06T08:26:09.724Z" - } - ] - }, - { - "createdAt": "2021-04-06T10:42:40.529Z", - "updatedAt": "2023-03-06T15:34:19.246Z", - "id": "132", - "name": "Google Slides OAuth2 API creds", - "data": "U2FsdGVkX19/PS9ckxDNT2HrxxHvkTgLNa/qdlRTq0hdxcddI2D3UDqpimeDw8cJMdIexszhk3oq6n+6f3mqLHaezPu6xZ8z7a/d5oEcx8fK5y60vmWODlFrsiqlBPDlbesIT01amc39JuFQZTbp+gHbpIxWj4fURrmGf5cLSW+HW82Jwm74OTO/GARTgklTrEwn+StkHayC2Nq0lUAt72ufXg+LThsg+c/v0pZSAvYr6xJcFKGQewNZJhTK7OaJRmM52l5Exk3cm4go9AzflcGt6aslIQ5d5RHdoloEgyxVjeNO9akQdqL3lJNy0WIphnyQsSM1Od8K1G7ONaHc4OsKABEvbkSll9EfuospiZTlpiwqnQsIFLsAC9cZTLFUhVqGOliF37firEZrwxu5CeMkuJRhNkPgGT64/+NLef9Wjxo7qFXEjkRH/yNiJ/MBiRe61oB6uohb/iDpnk3D1vFpjLS4V4h83SRLkOYSG7Yua5snfoXGWd3TdiEsIOdA2dI2FEUH9zQCT8prJKU/9H1n/ntdcOgO8clDMhrv5139UFyuWyFt48dxvqzVuAf4mD+EEmfyJL/PJkAMvUSrcHAPHyu5V7PGCT0zbjX5wBU66gvn6xPlDK2dvRzRt19MiH33HyBkjUtP73v7N8tN+2eXzDlgOMOrO2bH/Ail4yekJE32QEah/msJbiQlE7HCmkQeaWqeVG73wrxFnA2TVkKf0/pBLEUk5fhe9xZIhwmQh3AyavssJGk3aBq5/xi1MFYXPhARSE/cgMaEQ/3s9+wWKT7xk3wQr+J774RNiSLvbezrvxrJap2/P/4HFZijfB1vvLRUvjtoW/WvCgX3R2Kk+a3Y0epUah8ISgddmlTb1FLz0a4s2ciA5l1ClJaA7ICNzOiuX/ViB95/mrtfaE3ZUyzmlXX/VPhu/uYtki871EsyawsVa0CZOS+VUL0pWflxj8ZBk97mjpRw04+50m/qejCMS0b1FkeyMbGyiuUASB8Zz/CtY93OH4d7ZEcKAVxcxN6RFkiuIrMYXwPI7FzD4P+FCbLN/kC8GSpAdD/KIZj22kdvANovTr7nzqdd+l8EgpPiHsm6B2IOqjAsEJmb/4uzHGINchbij3KSj4gluczYBKilJx0HlHrgDZU9V0aHI4ljDLz94NdrQOh6TWUB7Mi31lMJYsBh6yTsAE3mrPGvQ/mRZmxbBmpAwkhrrspV6GrMXU1o2ncI8+N3oC5PAyk6oWWjVpSMmwfeTigKBRYu9WRGdYJUXy0NrU9N4iwVkFUDTInXgabiQUjDiB0ErltnaV9x12BWbwdw7UhMe9ZAyfhF5CGR1Tg/c6oVVolq9i/lgegO2t+Ckc45FrHuUKCXk0TZKy45wsUn5+0uq0cRrdbS1rcXVsEHC1RlNY/6QlcGPzDEAD3uogVUXNJdAIN8nXBA0v+OJbN8YV/PRiOC/5MUd4dXDOZG2jMeI+Q/cNlrjKDWbO6uV9LFoA==", - "type": "googleSlidesOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleSlides", - "date": "2021-04-06T10:42:40.526Z" - } - ] - }, - { - "createdAt": "2021-04-09T15:28:44.590Z", - "updatedAt": "2021-04-09T15:28:44.590Z", - "id": "133", - "name": "NextCloud API creds", - "data": "U2FsdGVkX18Nzxxsz9idMXFq+XbyidwNPqnC+idaMf7TnnDZK3A8+/uA97PCCJ0mKSJvRr0eAZyoAb2gnRY0HoemTUb6byZgJf/aQU/os641kNKcHZTSgeO2KMOB60UV7z7lnHk/TeO0m6JtIiJpiFoowYbYqej6cWnq6Mj1sTE=", - "type": "nextCloudApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.nextCloud", - "date": "2021-04-09T15:28:44.587Z" - } - ] - }, - { - "createdAt": "2021-04-09T17:52:02.689Z", - "updatedAt": "2021-04-09T17:52:15.721Z", - "id": "134", - "name": "Freshdesk API creds", - "data": "U2FsdGVkX18oaxZ5INmwYOUt7Ya0KjQv5ypLeMpwKcunmELwMmERRqD1WoTWs8UWgprV6yAX7L0NL2fgBT93mXQChIoHf1ZZoGXE6vYrQOsAR7sJsfnr3QARPc46VKff", - "type": "freshdeskApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.freshdesk", - "date": "2021-04-09T17:52:02.682Z" - } - ] - }, - { - "createdAt": "2021-04-14T13:04:06.289Z", - "updatedAt": "2021-04-14T13:04:06.289Z", - "id": "135", - "name": "Demio API creds", - "data": "U2FsdGVkX19k/lMkGTHyBCxQZ1d+uG+9bMMPm31UxGZBstePP71IUR1okte6Oz4WvNQIONYkt5aSMKKRAZukIAoVircgl9uAoDYE/sJAHfT3jwiRIhnC07FTmGV9+sx7", - "type": "demioApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.demio", - "date": "2021-04-14T13:04:06.280Z" - } - ] - }, - { - "createdAt": "2021-04-14T13:45:10.548Z", - "updatedAt": "2021-04-14T13:45:10.548Z", - "id": "136", - "name": "Emelia API creds", - "data": "U2FsdGVkX1+qPrASstL2tQks2/6kiNgfwJRpNdFOM+9drLY4CFL17SNSlGhHnIXu3WMcg/7PLvPbs8+C7ALIhYACrsnoPMWd7mWjd748N8s=", - "type": "emeliaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.emelia", - "date": "2021-04-14T13:45:10.542Z" - } - ] - }, - { - "createdAt": "2021-04-16T09:02:52.991Z", - "updatedAt": "2021-04-16T09:02:52.991Z", - "id": "137", - "name": "Intercom API creds", - "data": "U2FsdGVkX19Vssu2q10fPW/982PXhjejRzXqloNBNbiT1zlWoXl1tPgilsXs6gz67MJG+mtV3JWWS5yhYtYTp7q7omTykQkuiOoWDDVYrOWcLA/vJIK6ZB1NlCFSXBai", - "type": "intercomApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.intercom", - "date": "2021-04-16T09:02:52.985Z" - } - ] - }, - { - "createdAt": "2021-04-19T08:27:18.210Z", - "updatedAt": "2021-04-19T08:27:18.210Z", - "id": "138", - "name": "Mocean Api creds", - "data": "U2FsdGVkX1/oA3812/OCv0qqWa7+wDlwRdkyVKk/LGtTfRqSbyyqIIrWW9vWdkB0jfZARMPAH86FL5kD/58U3PaY4w/k4la3dE/jqjC+2GQ=", - "type": "moceanApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mocean", - "date": "2021-04-19T08:27:18.207Z" - } - ] - }, - { - "createdAt": "2021-04-19T08:43:47.245Z", - "updatedAt": "2021-07-12T14:19:41.820Z", - "id": "139", - "name": "Xero OAuth2 API creds", - "data": "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", - "type": "xeroOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.xero", - "date": "2021-04-19T08:43:47.238Z" - } - ] - }, - { - "createdAt": "2021-04-19T10:06:31.948Z", - "updatedAt": "2021-04-19T10:06:31.948Z", - "id": "140", - "name": "Stackby API creds", - "data": "U2FsdGVkX18YSUQweuj3R54MYldVyuyfIcUECTdY4k8eFC029LqS1/8pTYrm6+L7", - "type": "stackbyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.stackby", - "date": "2021-04-19T10:06:31.944Z" - } - ] - }, - { - "createdAt": "2021-04-19T12:54:51.234Z", - "updatedAt": "2021-04-19T12:54:51.234Z", - "id": "141", - "name": "PayPal API creds", - "data": "U2FsdGVkX18g+KnywgStKZsljAR3dqZvRZdgXGBuouUc0hj1Gb0BHHChnQugXSDkyY3MrhbSjxeWT6bEkMhatJhjGn5wVwgC4TdlA/Y4RtC4SKpfR2tBK/jkFUZwg0btHdWvqOmvwhWZiD+NYvHGrTCq0HNicuQjknMwmGxlOawWDdMcze42ZgWXxnNWdPn8e4bk1abVjlpFjGFJOxGFXk5CIaSmJzhqW5Skc2KJldOjjgseY4n1FZ0EO8kQbBmV/ByloLTwXzbIySp3b6U3oD7Kvz6Jgynq7t8d9ZhUyQs=", - "type": "payPalApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.payPal", - "date": "2021-04-19T12:54:51.218Z" - } - ] - }, - { - "createdAt": "2021-04-19T14:25:44.337Z", - "updatedAt": "2021-04-19T15:00:14.218Z", - "id": "142", - "name": "uProc API creds", - "data": "U2FsdGVkX19KF4H+kQokEweikHpaP0Prxirb4ouEZargEzvOebobUvkimtl8geJDm95pRY4fll4SDHz7l2L4njSwzuv6IQxHfeJho7R5lExqRhVDj+ZQ8jRCSrG5p+E5", - "type": "uprocApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.uproc", - "date": "2021-04-19T14:25:44.333Z" - } - ] - }, - { - "createdAt": "2021-04-20T08:01:26.495Z", - "updatedAt": "2021-04-20T08:01:26.495Z", - "id": "143", - "name": "GetResponse API creds", - "data": "U2FsdGVkX1/Fc7tymDGjDUPosf8p2aMy7/NUfcnxwrOM2hWkOx9bmBJVc9fRfTyl1bUO/3jyrsnKTfHghQPl8w==", - "type": "getResponseApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.getResponse", - "date": "2021-04-20T08:01:26.487Z" - } - ] - }, - { - "createdAt": "2021-04-20T08:18:06.168Z", - "updatedAt": "2021-04-20T08:18:06.169Z", - "id": "144", - "name": "Vero API creds", - "data": "U2FsdGVkX1+oCZoIiHT3SSDwdC99JjgwDMCIt23PeIqRoB4rpgM98nP8OQOQNSH9Df5b4bWa8p322REvxf9dLSlzFCOvKxquHB0FeoqJnux8UP8m5Jrp+Nxpw7qpbeBL3qRUfKbgoXszfk1pUmmvNUZh5YSO8/gH0zTuuFtANOyFCrPTyQvMPjdX6HAEzHPh", - "type": "veroApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.vero", - "date": "2021-04-20T08:18:06.162Z" - } - ] - }, - { - "createdAt": "2021-04-23T08:43:45.513Z", - "updatedAt": "2021-04-23T08:43:45.513Z", - "id": "147", - "name": "Webflow API creds", - "data": "U2FsdGVkX1/YeJuB/FidCg/1I1TIxB/cbbS4POvlDiLmRYUwYRgFYB8Et98LEHR+IGcrbeuoBsgzFvhdXll47u957EDSCeRAgOYRQTuGfLXJ7VD5ivlQ0m4bB8/xbO/6ici02pdWMflo/mw0DUyYYg==", - "type": "webflowApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.webflow", - "date": "2021-04-23T08:43:45.507Z" - } - ] - }, - { - "createdAt": "2021-04-23T09:35:22.641Z", - "updatedAt": "2021-04-23T09:37:52.374Z", - "id": "148", - "name": "Telegram API creds", - "data": "U2FsdGVkX19JZ124pG1f9r1orLPLlcPbl6wYcoTfUvs8ojNn+545HdL7dTSmisYsEDgg442gpxquvWAov9dpOqfB4MQ7oUWyhfUtCVYXbCtfljF/mNdk64aOWOmHsdot", - "type": "telegramApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.telegram", - "date": "2021-04-23T09:35:22.639Z" - } - ] - }, - { - "createdAt": "2021-04-26T11:53:04.438Z", - "updatedAt": "2023-03-06T15:37:54.377Z", - "id": "149", - "name": "Salesforce OAuth2 API creds", - "data": "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", - "type": "salesforceOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.salesforce", - "date": "2021-04-26T11:53:04.432Z" - } - ] - }, - { - "createdAt": "2021-04-29T07:05:40.497Z", - "updatedAt": "2021-04-29T07:53:55.208Z", - "id": "150", - "name": "Strapi API creds", - "data": "U2FsdGVkX1/WCBhlME0j52od0t4RYCtgoPvXWR+ffFtpzUDySvgPd+BoJRC3NrnSUNc5BCFfo76hpcdhLbx3Xz55xH2vH4t9iZBiR+oKZB1OTlnPXc4OsZvtSpxd3W+6mPxb7XUG7HRGCF+isKA6zum1Ksv3e8bu/fNEMeegFNI=", - "type": "strapiApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.strapi", - "date": "2021-04-29T07:05:40.491Z" - } - ] - }, - { - "createdAt": "2021-04-29T08:11:19.033Z", - "updatedAt": "2021-04-29T08:11:19.033Z", - "id": "151", - "name": "Uplead API creds", - "data": "U2FsdGVkX1+FFxby5MlGpjIyd9BO5rI142CioEUqAEf1RB15TsNOO4WkEBKy8mxwNCk9mEoMhAqBjthLxTTrrA==", - "type": "upleadApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.uplead", - "date": "2021-04-29T08:11:19.030Z" - } - ] - }, - { - "createdAt": "2021-04-29T08:49:17.282Z", - "updatedAt": "2021-04-29T08:49:17.282Z", - "id": "152", - "name": "Affinity API creds", - "data": "U2FsdGVkX187OO6F81DyFZw3QtY7mKRKTz/UDroZisna5MMy+QudQWu7auA1XrADEc5TpMjRRJ+8PMkWIKBerDjVVo+4hNMMQwU3fU6V0rE=", - "type": "affinityApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.affinity", - "date": "2021-04-29T08:49:17.277Z" - } - ] - }, - { - "createdAt": "2021-04-29T10:02:17.166Z", - "updatedAt": "2021-04-29T10:02:17.166Z", - "id": "153", - "name": "Discourse API", - "data": "U2FsdGVkX18bdMnFwv+YAYjbRcPl7x+2R1N8nV3EbsI0t0YGO4Mr9go6xmK5B9b63g9s+V1UFFobk5LlyeWNqkbiLDihH9wy+/V2VD5AtRE3YRvtuK4+BIoVj+xtzPrjn/U2od9jccxV++iHbwoV1D/2Fzb6pQP9cLKyykm38E2GkCMa9zkgoR4PPg+vMKmTGwJhf8b3f7jWpj2hQju3qw==", - "type": "discourseApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.discourse", - "date": "2021-04-29T10:02:17.164Z" - } - ] - }, - { - "createdAt": "2021-04-30T07:12:07.227Z", - "updatedAt": "2021-04-30T07:12:07.227Z", - "id": "154", - "name": "Mailer Lite API creds", - "data": "U2FsdGVkX1+19L50lgsCSy4Ck/5RRp6CXjjrXH8uct7/NlJ9ykhTqQtj/LmrDsyO5J9+HdKkRv/xLDK+jqhnfg==", - "type": "mailerLiteApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailerLite", - "date": "2021-04-30T07:12:07.220Z" - } - ] - }, - { - "createdAt": "2021-04-30T08:21:46.630Z", - "updatedAt": "2021-04-30T08:22:20.978Z", - "id": "155", - "name": "Mattermost API creds", - "data": "U2FsdGVkX180CNroiq7zE3GIzIwitHMqah9pL552nzdMqDpXDqJleyRLcFw48lWLT7zwgI9eGXdOuphVOylXRXtmG+a0dD1y5qJ5aEpssw8GYFyVe5YwpZOPQV3qcGBwbphhe0XYpxKf32dnPpOEdg==", - "type": "mattermostApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mattermost", - "date": "2021-04-30T08:21:46.627Z" - } - ] - }, - { - "createdAt": "2021-04-30T10:22:25.663Z", - "updatedAt": "2021-04-30T10:22:31.039Z", - "id": "156", - "name": "Chargebee API creds", - "data": "U2FsdGVkX1+uzSiaH7ecp2Y1RO6QUxLlXhsXGAjyPJXjyBtj0pX+Rdcq6/ieIYK9OnhbiEMn2N/yxvArK91p1Nl74p6YG9u1RHvLFLyB4h1/uY1Uz0s+8mbVvxQvfrn1", - "type": "chargebeeApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.chargebee", - "date": "2021-04-30T10:22:25.660Z" - } - ] - }, - { - "createdAt": "2021-04-30T10:50:16.724Z", - "updatedAt": "2021-04-30T10:50:16.724Z", - "id": "157", - "name": "Mailjet Email API creds", - "data": "U2FsdGVkX18jpZ9c4KNNhiSLG4xvQkMNRSw02aYpBDU3G96lKlKheejNN6uOgaZhYLRUhqE2O73M+RGH+D7za+8Frz04tHcgqj8TQbgjUHMnscyf4h5/geJOGnNLEzjJ803sXMaw5zHioeFxKvRRKQ==", - "type": "mailjetEmailApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailjet", - "date": "2021-04-30T10:50:16.722Z" - } - ] - }, - { - "createdAt": "2021-04-30T10:57:35.157Z", - "updatedAt": "2021-04-30T10:57:35.157Z", - "id": "158", - "name": "Mailjet SMS API creds", - "data": "U2FsdGVkX1+ZwlTYm6WgzkaNidpElcnI4nuvvczGPr1lWtXuaLnh5PccnLmVLW1wqzCCiNScG7CcJD+Ch+BCOA==", - "type": "mailjetSmsApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailjet", - "date": "2021-04-30T10:57:35.154Z" - } - ] - }, - { - "createdAt": "2021-05-03T07:29:32.307Z", - "updatedAt": "2021-05-03T07:29:32.307Z", - "id": "159", - "name": "Kitemaker API creds", - "data": "U2FsdGVkX1+t3XGAixnfonj+DKGY3E9e89cyuNIQ0HOJ7b+tRdw6oot4mR/E5Rs4DFvTmQ8fSVmmksz0eA/Jlj/lsZphI3c9OjmbZIimFSY=", - "type": "kitemakerApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.kitemaker", - "date": "2021-05-03T07:29:32.301Z" - } - ] - }, - { - "createdAt": "2021-05-03T14:31:02.284Z", - "updatedAt": "2021-11-12T13:13:11.267Z", - "id": "160", - "name": "QuickBooks OAuth2 API creds", - "data": "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", - "type": "quickBooksOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.quickbooks", - "date": "2021-05-03T14:31:02.276Z" - } - ] - }, - { - "createdAt": "2021-05-04T07:28:31.210Z", - "updatedAt": "2021-05-25T14:28:18.569Z", - "id": "161", - "name": "Twitter API", - "data": "U2FsdGVkX1/lNEaMgYF4KKEgurSWc0tgQmBaQowLsCduikuKYhkO+zZqveLoyp2PX1W/l6lsPCz5XgtFdSxd8KofwPoJXRlBwe3v5R98pcgcjKa6u18fyZFLsQu9/G6RtsSogdPTeltqH0dPJcGVdRvqZh6mB8PNflDFglBDswxgxBNXpBI0MrTqsUU+dOjmro1Tg9iRymwiQTjTVc/MAdR+iv+Bdg/ToUjKQeM4C/1hbsJ/l8vcLPBXv6BZfFSRYPt9vGIrfQ2WUj2IwyAO9KxPgxhwhUpGwXRXcHfW/yC6b53cvtM62GkgCONjlA7QFtDWucNqGOFbGi0va0b1nxKZOpVFbGAhD7UOOuEzUZDi9v7Np7/CUDhEf+nwEKeKqtEoO4rk5iZ2izLsoyE2PvtYgU/Xp+7F8+g0jAm0fL1ZWHW9XylT578k9Cc7rFguFN1eCKTf6P6+LHxFmzNd7g==", - "type": "twitterOAuth1Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.twitter", - "date": "2021-05-04T07:28:31.208Z" - } - ] - }, - { - "createdAt": "2021-05-04T15:26:06.759Z", - "updatedAt": "2021-05-04T15:26:06.759Z", - "id": "162", - "name": "Invalid api", - "data": "U2FsdGVkX1/WJF2fZFfajX7IsiVGSVZof3M94BzbuHizjuzvUeHFxAvSQUkHBQ50bmxFoNncCV/c47w1wrjVoA==", - "type": "vonageApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.vonage", - "date": "2021-05-04T15:26:06.754Z" - } - ] - }, - { - "createdAt": "2021-05-05T09:51:21.413Z", - "updatedAt": "2021-11-12T12:11:05.438Z", - "id": "163", - "name": "HelpScout OAuth2 API creds", - "data": "U2FsdGVkX18+4kpwPQqa0q0osZvootlzR4EgJ+MD6xDctnqFPigrupQLHdsK1zLEK4paIeHBXxLQ8Rv/6xCA+FdJ1L3XEiZNrI3PfA5oKmdw/BEAjDYBLF4+/rIhuZIene3GvLH9WeffpM8AxxNP4DAJzLQh+0OJqv6R/n5S2Q4p/6X087iQl0/iUhWdIhftxZ60SbrgMQ8kpmMXVORTNvgw8KNNgaFGF2iuL0bJklgmz3QgzuK3BXKxrOH3sDLGyeRzumNBQbDZO/laYwLVSUhf58b8LiKFbWu78kotgvIOBTp/g9Xt0uqINbzhHUjvanh65nOlWvonn16sspvsZ/JiXtJjn0lrfHPUcVosBzYmVSCl/iMUdPVkomYhPt8Frp7GXIuH4gYg0lLgzjXbKGLd6dL6tWOFA6pDkkvL6LpwKt+JgZjhbgZxVXb8NWZG41CkJUKkkaldxnel6DrZow7jBpIJR1yPwI/ZzfeYPlhcQ+mNVZIsRFcZOtwjYgdMoT7GcsRFxo0NXr1F5dxYZEwuLHmZcuehowPhfkdi4e6DJ1atoGoyJHH5wbp/zeV4WuIguSEMaV18agOSlmFF5KeSvuBcDRvWFzFVItiGnyyzMPoPTWZbGJ/Gz8qMAq1O", - "type": "helpScoutOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.helpScout", - "date": "2021-05-05T09:51:21.408Z" - } - ] - }, - { - "createdAt": "2021-05-06T10:27:13.780Z", - "updatedAt": "2021-05-06T10:27:13.780Z", - "id": "165", - "name": "Dali UptimeRobotApi creds", - "data": "U2FsdGVkX1+W2QfOypfTTcFZS4FxxaaTfwKo3gAxMpSQGt21/BD8DC6Za/7A4BJJt+U7wWsUNy4EFNK4rjO5yA==", - "type": "uptimeRobotApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.uptimeRobot", - "date": "2021-05-06T10:27:13.757Z" - } - ] - }, - { - "createdAt": "2021-05-07T13:47:53.290Z", - "updatedAt": "2023-03-06T15:34:19.060Z", - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds", - "data": "U2FsdGVkX1/mtUW0G2VISsFJ2G48bosvwmK/08RO4geDNmVKTatLG9IJGC02dx0HSQmWKZJb7QyBIx70Dk1obHKZrtYAf2hiLsOm3Vmhk/BQWUTmAhhSIaeY+HicX64hjHRdWtPjE78fY/DZev2yE8INiE8jIDKx6szxmlQDCpQYK8mnTkzJiHEVaa6U6UzhJvVQ75Yc20f+nnx0YUV2UvfIWOPyKcF+g8n/etPZ2b+GQuwy+lw4x1/+B0H3GCQVqFZ8/Tqd2m1pJ3aQxTLinMLSvZDEeSXr8XlmSXBCQr2UgfK4XnIguFjNphtBtQcf7wRDp4q+biTOeuOxD5FawILyh+k8r1pof7yt+7fNxUUjw2dXLe3/BAou+hm4P570fvpYzgXT8CANDiqf4X61Eyufa71/K/uPyCskNXNv5ROo7pk33YS23fhfSlX4TBBwXODMtX1yOU4rErQjz14J9qdtK3rFzqJYMi6KG6PQO+moa6jN+5hFljam09Zg7A1t+26wlB0PX0UZDXNpJvXlCBaixH4l7ouoQqqYZKdob5n1zEaxfymy9l8n+UG+DFQQ0zkT5XX28wzTv5WxlIoxclPzhpgjQOZHjuXctMsDi1RqE4BP2iRcappWtbaMS2hlruhZVIO6OblnaaqCTEqs6IiA7XnhpcKlafzeUPW7CB7n1XwQZgMEmtz3VeagLGBMVAw7aI0WBo23ubd3h/HzgodVef0Dlf7QCWoEXekVZNEcSIXSdV/kxGAPt2UpFboYbWkOsjVUVKxC6ujOzSUR/Qx6W2L4KLBuboT8OF969MRKAUc5Z7WQrVRykdA8PbaOgboh9g3zKVqO4CN7ZVBgfPqx2Zv3oNeZrKeElUs/5avadyWj9iKaa5sO9wfE+D4++6P3J4oL6cnucGXnEhbFUbeL2TyKdc1s+o2iG1aO/m32nH/pLEI7h2fK+voKHjenP4akoGvvxldrrTtT86pFDajFwno3I9/8qnRs4ju5dbcOnw2pcrut5xeTAKCLiCpxja+z3m8MphfbttRZbK0vQzCIe5sVJRLJDQLVWWzlU4l8/4narG3+Pu09Z0O60z01bQ3WlGGmDkuYZLUoMV6AqPagQcERgj4XzGgJLf+xGy8fBBKBPXrRlLqVDDlfyYhTcuJHTtt+9nnLf62/twpWfhKVsyrGzBhGGfTIKLR2c7jcgldNID+UObQycxvxEx7jGU0dm9dFyICN2T32I1yf/o/UdO4pEzCm72upQ3IPWK4tvPGkP6pMFiI2qDg86aIUae260f1xHksAJK7ftWsgZ4GWVU/egFQsJi/9SmHqeYWmyT6XIF7wsFWB6ov///+h3AkDFEpGhMPuRylVH3iKwf35HlSKvyWWd4nJ6Po88hPEzE6d82ByALDN1u7bsNtPNIP4Lf3M7e7FLHmlmQmizNxk4WIopubB8y8GK7WB3HgeJ59WCyEixDIL7qZUsR24", - "type": "googleFirebaseCloudFirestoreOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleFirebaseCloudFirestore", - "date": "2021-05-07T13:47:53.255Z" - } - ] - }, - { - "createdAt": "2021-05-07T14:55:52.263Z", - "updatedAt": "2023-03-06T11:42:47.100Z", - "id": "168", - "name": "Google Firebase Realtime Database OAuth2 API creds", - "data": "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", - "type": "googleFirebaseRealtimeDatabaseOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleFirebaseRealtimeDatabase", - "date": "2021-05-07T14:55:52.046Z" - } - ] - }, - { - "createdAt": "2021-05-10T13:16:33.985Z", - "updatedAt": "2021-05-10T13:16:33.985Z", - "id": "169", - "name": "Mailcheck API creds", - "data": "U2FsdGVkX1+WLeu6sqlw4024fkM5XdyMKrG9CmdpQYV1CD/nRL4GMPDrG+1jzWr2RZAHRzy6kd2fl1MZoOjpod/3BrWOoCrDchk83J6BOhbuRJO4fI8w1a1vsmGuyBTxcukGfo4tSlpFyrksrX5i5mrhYLbXz9Lo76U94PhRGUd02424YRs4via6wPlay02aUWhSKIp4ZKDW7XNUHxAWpq4F+VtXSJj8y9Q3qQcf5cWlEdsSJ3I48uvOYHV4Xonm5D+CMAuso6xSwhDjQ5MqsMKo4HiVtlMk5wd6UCmR9a6zrmFd9RiknyUwmww8P6pzF0Msro8eXnuUXlL4o/0lJ1hnX5i/yKZtAN4zMjozmNeZ6lmxXHEghRLCv8eaEt3I6p5EnvM63AATN7K5BSXZXAfqssYmKVAhtjp118zCUPk48w16mb8Tqn0Y86Cz/j+oOggEDMdYUpkLn3CR79M2O57zZnlzZMqGsv14wWb2zvkecPkNpOu4rIKyiAjY/Nftz1b3MghpJnPqCAz5PhskxSCkQcwH2FvzeTkK3NN7pf8tBnZyvBmHf6oTcQN9b+LPmm1orqgvUL87BHRCj3yVp4Nl0HcYN2pihR8xdYnOt7ms1qpMHeQLECmxgzbIOrUTb4Whu7mnWYbvC/d3GjU74P5kdZvPD8T7GNszhGdlvGP9svo3Uq3H8J5COB/nmfSsbfw4vZiwxM4IsNaPFcp9TygTwIIxjsBLoEHlS8UzV6XKJiUQTrozzrS71Pc2lg3voJGQtkYM1DBFKXkQZvVfasz0+vI0euYVbmcXaQ0lPCht0ssgZkZJISSKxq6QCbMkCYjLbOPKMoJeRo2qD/ENU2xzj978P8ROsT11i/uPHOkT8xMAKYx/tu2cyeRHZu2kU5LoJRDFjOZo8cU9IiQq7g==", - "type": "mailcheckApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mailcheck", - "date": "2021-05-10T13:16:33.976Z" - } - ] - }, - { - "createdAt": "2021-05-10T15:39:16.380Z", - "updatedAt": "2021-05-28T20:43:59.278Z", - "id": "170", - "name": "zoho-creds", - "data": "U2FsdGVkX18b2vpX62qVckXUxaI7NoDMwZycOtRKB0jkRTxdAWKqj0hUN7ef9noq2487OjIjwyKguRxEfBsgDiVcsZHFFOyvXNw0dyvRtsq/GFRQ8vFIqbkMgjRclvxLCUC3ljk1aXa35+9MzF4L2jWVl1LZ3+1Afaldo3hLUg9jVIIF2r6G0f3y5NI0wgT8GkLbisk31+rYFo251hYBGy5YKqmTHzxgKrem8RpEUqCF/62zYTMhtz9VcBsfcoODazeFb/utkQlwMHUUbK3sj3Nju8mHLw+XoK7CoPrNEPuNVqnfYegKkhzfnoa0GoryyNyS9HAlq6lx+KJ/DEX4adgGBttHG10Hv9Kw9HQemyPi7Oz6YgWfbBf/3hUaPdHKvUrF6qXYWyK6+TsnAYgkvtFTS/sfNOHbW7FCtzPyLR91OlA63d0OIUzdknpv7IjUeVmG8TCwtAzth0HPLCqGIAI0Nw+zxItkYGJLMRegTPrJ5IifvKuEZ8rAjmMxzhr32dlPTZPRrBfVcPWriwCQUTBBhWpGWaEj+VzwZ3frNqNFwnZhfZDwpkFstnUYziDhYwW2mXRqDZJdce4Rdx9S9xrlnnpAAiaFmdv94MkjXD8l9mDO1JJt6Lt03QOwtRkk+Piwww8nbBFyHT5tmAG3Xw==", - "type": "zohoOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.zoho", - "date": "2021-05-10T15:39:16.377Z" - } - ] - }, - { - "createdAt": "2021-05-11T07:31:14.708Z", - "updatedAt": "2021-05-11T07:31:14.708Z", - "id": "171", - "name": "Pipedrive API creds", - "data": "U2FsdGVkX1/i5SvT4DYHROcecqD+fOfNaeUkpDTXSmT7FcYgX+h/+uo4HNnd+KRdiTzGiyWEzFvctcBM2H5M1KA6baQHXc2Z8LgptfYFUUg=", - "type": "pipedriveApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pipedrive", - "date": "2021-05-11T07:31:14.702Z" - } - ] - }, - { - "createdAt": "2021-05-11T11:25:24.871Z", - "updatedAt": "2023-03-06T11:43:06.535Z", - "id": "172", - "name": "Google Docs OAuth2 API creds", - "data": "U2FsdGVkX18SCW6jsqljoAMOOy3C97ewD4+qZuFjchnBqCMKip7MeI6cfV2xegtZTTL+eFmtcrkf9NN96gdR4ClAk1HuNs4XK29yzVGb2LtB9F2rTH/jYTlSYlX0O72C1ML/EqfyX/4qnqCc3yXZeeoAWkHLH7rgMcl9DXFHjRjhD5eJBsVEkNfKOucgmhA2vEvabJtrPcEgnYef0aH1bSap2S7Q1ntJMOygh69VSlZusK0KocPJbWypG7VVGNbfIJQlz+GikmLQW/eoIfma4rRqVm5y2uKPxbJ7XGvlOMv9T0rkVHGdw2T+vQKkJAFWsBiIaEnrUvpzt2NAVJXr/w/1DJ3/zV4ep8KHOKYHWGS9H/ujWx6TdE3iOvLSjtEEz8l6YWaEvRthodlR/bJLqxySUqGvHIz2U3KfhP/3QrzELbiDZD1yFyZc/B3mLqKexdptSft0KFdZINbv8ZbZ1J4t1zEwfHKG6WAgsNtrYvI3UC5tRbxmxDgT2C0+KRu7Kc43VeFdR8ck8ITqHA5orJ0ZMi1IcJkrFSw9KIubOh7t8gEoO1D+r//KC+f7KGq4XN5L23yOgx+rXXhdrxNI1DVUpAqzDDuvHBENYTkpt5FVbuTPca8gb8DKv3AOvq3uxpkcCa+Y2FdRzxB69YHM8uL/LKP0JlcgsWEQxBmETjlDCQu1NN8v5F6hjBkY1V9fg707tzg96M6EF9baZgD+8JEOOuUpk6+7o0agJ38pzAp2uZl2zjtCCr2DMh4RWYn08KKBrNbpLWNZDxSNvJStIGl7c/D9Bq58PekrxYA3UJoUk3xpDcpwmdT00B72/roerT+5ftGbo0MAp1mSAEqa05roy02CThzH56dqDLUNT7rO0XA+SsgjeQWckvgPl2wM5E3aMzSguTUq6PcSNCkA23AL27D70S6Yk/52WnL9DPasDhBoIm4xTEdislHhK0nAkmMYzofZT7xQrLjqUVzXuX8kRtgWoDKKHIgBnQ0SogA2xw8QgFO/2obT7PwoQyzk2g2iwLljX0XT1DjzXPa0zqz3pjtAOf4g61QK5chatbu+cA7opSAz1d0BDWrPYYzGy7WugeERYD3kSH5/0SY9vfUKd8iv76e228gvBL+xBq4=", - "type": "googleDocsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleDocs", - "date": "2021-05-11T11:25:24.864Z" - } - ] - }, - { - "createdAt": "2021-05-12T07:04:35.309Z", - "updatedAt": "2021-05-12T07:22:49.204Z", - "id": "173", - "name": "Paddle API sandbox creds", - "data": "U2FsdGVkX1+rZN6JDd2DbWAbiBgbAtT1vMW4p/mzboubKGSXSfpBYao4xG2gAfpHXTI8H/Sldj6bxnH/bvJ7t0mxIJSrmYuHejom6BWr0NDChDZ0Y9QMf2bbsLygJNKVF1j7Jd0u5DljqQrj8g7tYz/rJlbCJLrY4tpfmBc6qTQ=", - "type": "paddleApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.paddle", - "date": "2021-05-12T07:04:35.303Z" - } - ] - }, - { - "createdAt": "2021-05-12T08:27:43.980Z", - "updatedAt": "2021-05-12T08:27:43.980Z", - "id": "174", - "name": "Iterable API creds", - "data": "U2FsdGVkX1+p128UOZNFPiKgBT+0ym+XIQHKsJGkQU2pka0lG3p2i1RFnnuScB03Z7ootwh1owE0l1Dt3eLe+g==", - "type": "iterableApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.iterable", - "date": "2021-05-12T08:27:43.977Z" - } - ] - }, - { - "createdAt": "2021-05-12T08:42:03.059Z", - "updatedAt": "2021-05-12T08:42:03.059Z", - "id": "175", - "name": "Beeminder API creds", - "data": "U2FsdGVkX18vLPz0OwOKJ6aK94NjCU6bGe3ZXP1H/7kw8wfcA/BG2NXVJhpTaDLb8qzmN1ijjHQ91fDgyN/U42j2oYvjQX4uIGqb2q5wR2I=", - "type": "beeminderApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.beeminder", - "date": "2021-05-12T08:42:03.056Z" - } - ] - }, - { - "createdAt": "2021-05-14T09:39:49.819Z", - "updatedAt": "2021-05-14T09:41:10.735Z", - "id": "177", - "name": "Pushover API creds", - "data": "U2FsdGVkX19Vcl9xOMo0dfpIcNBa0y4wEHeGB4Iq0acfEyNYVK76PMLSBn4DKyp5ZzdmIjIyqKik9lxdP+wPDg==", - "type": "pushoverApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.pushover", - "date": "2021-05-14T09:39:49.816Z" - } - ] - }, - { - "createdAt": "2021-05-14T09:53:58.647Z", - "updatedAt": "2021-11-12T12:11:06.896Z", - "id": "178", - "name": "Keap OAuth2 API creds", - "data": "U2FsdGVkX1+NkVLasVH/iMl98lMmeEg/Q0W6kGd92IvPjWjgHPju4aRg8OarC2AuPMzE6sep/kOm7UN4oFr8n/WOLNWRP5Ddnedh7oHaEp0o8dthM7ujNGDNVm9xPWXMpauP2njVksnZu6sPfcLMixE4JwbqpO77qgeM0TMwhSe1PjQ6cbAFftprDgg3XrLaq48P6HX054BZS0pq6zEKOi0LRazhpz2E0zUQujC44CQpwI8GJ5DuXIyxAmnZDa5miadQouMemcE41uLYQhO1hhhzo/FxB4OY6FKNfoIJ04vVhv7vgj4oQvUTNDr9AwMMuzsGoWW5eplS/0r5RbFMN0pymu1fuTemEiW/dz2EPXloU8laFKC8LQfzdTngmTzNo2OHCmAuraSpauMdzQyEfulL5mrKE9ZYnrJ6hVfyhJKFP5wLOUiIOfxuT5AF5bLD+erQ8AqwcmGLBKcib/Z7PoTFan43h9lor5q9Wlzc00lRBFLKmlpAN+jNlI9CUOT0/qC7Iv+pl8uU4EKguC9pQWtfCkkdQi1oyONfxn4bYytOEBBtv638YILEXCZSmOCdjpSksA++WYHw8vXLDQVR1CtjhPbptky79syXxDPJP5slSHl+Ug9cEfHU3i5+cVK3ei1FrQfvfVl9mXiWdvtMEM8qM+siaIpnIaLrPAhme2lGyPw6dABtPIVrsQcvoJcvT4nvwfu4pnYkhbluS74drw==", - "type": "keapOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.keap", - "date": "2021-05-14T09:53:58.645Z" - } - ] - }, - { - "createdAt": "2021-05-14T11:04:21.533Z", - "updatedAt": "2021-05-14T11:10:33.718Z", - "id": "179", - "name": "Header Auth SentryIO", - "data": "U2FsdGVkX19tQuwU/H6CAXmD5MBtBA3MUnCvQGXDMyOCv1wQs/dPKOAml8oa429Di8wjPZNQkN6t9pbprWbmuiUruy76PDIRQBVOcuTj8VlopGRHtx0l3aquHFYVifqLjcwiMh0mQRTwpCRR03MQ8Qys1rYhvrPlrSRwui6RQUg=", - "type": "httpHeaderAuth", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.httpRequest", - "date": "2021-05-14T11:04:21.531Z" - } - ] - }, - { - "createdAt": "2021-05-14T16:24:46.971Z", - "updatedAt": "2021-05-14T16:24:46.971Z", - "id": "180", - "name": "Notion test creds", - "data": "U2FsdGVkX1/T6vi5pJxnkc964CrMX8moS1c4VBMwhtElX6cMgfNa+qCjs8ANhO6fM3DWQIMlR7xm5xKDOwJVi5WyBIhL06mF6FI3Y6O0BWU=", - "type": "notionApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.notion", - "date": "2021-05-14T16:24:46.962Z" - } - ] - }, - { - "createdAt": "2021-05-20T15:41:04.169Z", - "updatedAt": "2021-05-20T15:41:04.169Z", - "id": "183", - "name": "Deepl Free API creds", - "data": "U2FsdGVkX18xDcu7uWvmrhsM6E154fcUJt2sUvitsqGkmIU0/9MHLkQ7vlfPIazmcZ8fTsXgEtgggvWKfox0jOWcBEWtN/9mh+NPVdomHujrFdjuWv3rU3etEdhoZJLb", - "type": "deepLApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.deepL", - "date": "2021-05-20T15:41:04.166Z" - } - ] - }, - { - "createdAt": "2021-05-26T13:08:47.620Z", - "updatedAt": "2021-05-26T13:08:47.620Z", - "id": "184", - "name": "Rocket API creds", - "data": "U2FsdGVkX19lFQGVlDNhMUVmJ75DaD25RiS3AZ/GMAPTMeEeyP0DY2C9WrTmyqPojz/W6tbAAXDOQjJjX1+vJOO2bdStS8is6YWU28uwgy7om4Ah/BBdAsFmG5GcdgnRABnzKOKa911BfpVS0FTMx8UErbSmK8ri/lZH1N7+ZyaKLZBP/aaLgXjAx6Tab3MA", - "type": "rocketchatApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.rocketchat", - "date": "2021-05-26T13:08:47.616Z" - } - ] - }, - { - "createdAt": "2021-05-27T15:04:49.079Z", - "updatedAt": "2021-05-27T15:04:49.079Z", - "id": "185", - "name": "Home Assistant Api creds", - "data": "U2FsdGVkX19SRTFRfGXIbmNPr/231/ZflbW4U24b9PNR/sRnZJrvC/tYT7Y6/NaEjAPEG34tNfI6Er05iEn5HSdV8fURYF2YfV2x+Bi/PCk2G8SmjGNhvAAfn7FLEXa/P5SyfdNVhhYMw93hV2l0HM6ulpaqi3kvdCHVc9WqYmKDT+jfqfiB2QDCRhFEpnHa5DOjpdCo0uA8JjhkMYn7uslT2s2DyGSbqrDOs+MwtFL1yL5PVo2JxaGwbBtjiRg0AEkWGur/3zix5zTAsin+ohzP/t0XBQzuRK7FRfWD6HlXNV7DD5wFr8dJKjcwxxnqrx+h4D/9qyBfqdk4H/zdUg==", - "type": "homeAssistantApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.homeAssistant", - "date": "2021-05-27T15:04:49.072Z" - } - ] - }, - { - "createdAt": "2021-05-31T08:49:12.155Z", - "updatedAt": "2021-05-31T08:49:12.155Z", - "id": "186", - "name": "Uptime Robot API creds", - "data": "U2FsdGVkX1+PwKjMMm2u0e2DI0H14X5nof/91ip7CjYdvk3XZnh/jz7ba2/aG93Jm23BvvkbF90ai3knsj49gg==", - "type": "uptimeRobotApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.uptimeRobot", - "date": "2021-05-31T08:49:12.149Z" - } - ] - }, - { - "createdAt": "2021-05-31T09:22:28.271Z", - "updatedAt": "2021-06-15T15:59:53.419Z", - "id": "187", - "name": "SSH creds", - "data": "U2FsdGVkX1/lBuNcR39kXxNKDkrIC83g0wueSK9p1TudrXGxPitzJ0cx+arrA6SQbnxqOQ8agV/2tImy0NkOorQa2JzZLqULN0l4+rA0fVprv0QjVMLHKuzdLkoQrrLufJ+Ec24L+Dto23QKHrWfeA==", - "type": "sshPassword", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.ssh", - "date": "2021-05-31T09:22:28.265Z" - } - ] - }, - { - "createdAt": "2021-06-02T13:44:52.204Z", - "updatedAt": "2021-06-04T20:52:03.921Z", - "id": "190", - "name": "Microsoft Todo OAuth2 API creds", - "data": "U2FsdGVkX1+Px8W/qPjgXxWByV6q49iXd5fe0qkQUJi3w2Mtg4QTWKE0zMyL3/VVfxulRQmreUWVWcUP87kJjDz9/wXTYxuTknt5pPtp/pNaYCyzvpXmM6KakpK+mbh40IgUuNaRVuxH5sGwww185cw15ndpgQFju65kQ2LOmaROc9x42mOPIa4HNR9Wukko5mqdwKWjBvp2JXU80XWIalUqHZr8mCz8Wa+ZBvC0PBHjvJ2IV8gCOz1Gr+GQAxdkERNXiYyyI7dUvCurb8utihoAwJ8tOrh28q5665jliIjufDkPs5UnAtKRVxZqcgcNfVhDKzyyerh1szsMBki4UJmYcawZiOvLNJXV34YdPqP4XprZssA9sRZjN2/Qpqb5Z5VjIpqOfjWgo/O8Pu6XbisxobKdd7hMoUDSswUhzzUQEdLWRnyFSKq4r5M8NL97QF9mPetHl5SmjPgPIuiqzkNISXreCvCIgse2BVeNPwDOFNJVAtnZmZ3NGwBXjvUImP8ZqcRzZsepxUUy9e7GbW38swGDCWN09k1Eh574XNkEuv6+ZuECobN4/+G9+pfycLI5pFaCwb+/xxqqQ7ZwyrGHyq+6vn3NQ2gAkiyQWMqXgQt06F9y/o9oEPewLQRD+lyZ+kJCJLmfRUxwQ48G5LbbtZw1bd4oJNEQtqIqzJdV6shue7YZ0PUUpdt6guwP6SMPtd/D6NHmRQ78EXYmWdGLL5q9wEyjYh7pGRTv76V6IHdjDLdtNZQxNXW9uRq1qDsWU4v9GuLhXn+cCnDZq3Lfvi+RtBlcANAd8/u2WjzZvn0Wywb/SFT3TMiwlRe9g3G9HVjsEbCOVNSywlo8TuvdfOBFVh+ukU8qst0eEVIVQrInaO6ZonqGDoOkQS+FGE5p+fscpbFzwwGh1JAOU2cm3A0Ye9PrhLaL0HPTsTRgZ5rJ2BYmgFyIZrnzHCfa71ysCrhgT24yiVXpJaZOA8yXGZZBe0Kou1UHhpVuWS+n5c8GmN0nFTPf1U+5F9LiGBH74QjT0Z+lD7oWzPc/QLbOujNi5NCZQCb+Qwxc5xu+9fPqG1rcrBE8xTauGAUVMIEg2AXFJil80rnXZdoCuuvOFkVo3aNGnFFCZWSx5k2czZKuGfHX/HQGWlHspG+e7Gr4eW810LRiFExIbMb1mArdxXqT6e8IqoKT3skgQJLL160nZ6LhzePYVcUlxqRCRNXRIe4wk9xymhv4JlKICDWzHRM8FuJC0Bvfqyzine+ve5kVG5kk71u3Cr8CkLSso3n2YhyHFZn1i+PRhcBfO72SqDUgslb56I82pXHSa2FLjvgCBy9l8pbAiGBg6YQON8WKJA8SnLlBE2wGWtNQOxFm67eC2AgLYilu+jBRripWfwUiqFUI2KzmMlaNwAARHs/638ZafUxKGcEAelw1K8q/a3yLQwJS1unTeYHfeQGbyVXnuSwEcgpDGaOaveyYu5yDmBXRFtfu/UoywGD2JXjUoDc93HFdm2fL9jsCBLDV6Je9bcuV5S+EbGPsyGhrGz0JJ9H44IgzEYbo+h19Q2u5ii6rVCs7/dwzk9mBQkLzkQQNN9+jlh6FJUB1BzTss30HQnKZxT9BGUt5xUHDNUB/73at8Hx6Hh5DjLsluroCnxGooApWESAbum9INFjfuxsYryh1XphgOO6nj6iOREwNH435bmon3swAB+VvwLZnVdDT//ve/aL+gYXJ878hALQK4kQnmLl2I3K/ykO32qJYdZ3UtZRjqOzePuMymQ0p+41f+wLtW9xc20n59Wl8GRw3/hRD9EJp1H2fABIgSw8th4TxqASIIrCh7ZKCLri3Qf6dKkLWUiq1xcq0YrAPp7DdwyMK5ClsdoQrXy+yVcopR5MzXdKkV1uHkznr/VneAVU5kcUpoNAq6qPfRFnImN07sbxBGP7X4m8wrZXhCcGBWFrCbl3I9+gUu/GfC1TgpQNoj5FkyxRVg2MUZG2HYKOXSPA3Yg3YQxfP7FTp8Zq+zk3xmsnRM2bR/k/kJL8Ksn+n+/aQZ/lUZZoKgT4P0pkg1J6NZZJnLL66FM7E7By29qCnhx22Ox/AYWKLT97msDrYeM+XF92agT2zTSEksRf1mFx3DRNWPmIhChc4sjY1hnbN6h2zyajDLWoeoB9y/QUx5rVCE9kDOX9VdFc+Mk7A88aZy/iTu/8iHF8qjqDAYl/OEKYqrkQNfricy84Dt10t5fd5eZWi6zyloBKppQNWE4DcC2mJs1w57LRsV9kO0ijcSBICflpEdB+1Y+IVBU8Ds3Ynp+E5ON1uEF3s7C8VbJMOp4ttFy9GS4EKh7JiGKHoQ2VCr9ng4WMMz5RxAlpBDO126MvdnbygOhaLWkbdCxA+FH4Fk1bCVkvuwkJNhHIL3f4dy50deYRMB+F1pk2zBWnxJehM3XxUUvxgLYTyEE/Sj0aVdcImQYUrZLlcXI1LylSFMuOyM45ydlo23qOes1wm4uCc6iYTfw/GK184m9sjLPAMM+2IAtSX+bi5K0AikXSzCDFvWNbBsYV8a5C4lso4hFWienS94j/rhx1nO/6UDf831zyF7JYK8ozUnHvfMVorFNuMpYsXgSRt7C+GTbGHB9QUmDLayiWTDt4wTCMk6RRCSxcFNac7BJnqpqTT5l69CJz9O9/MoukVH7h42qVdPFv4cYPzV96yIN/eFkk9YaBBoBwF9BQcYltT+FZrfuyyBkd/Iuah/f4tEkkjkq4tATk7UxNNGZG0hUxqoTyaGF9vwouYtErV39ke8HNCIv8OUzVHHQWfO3shj23cIKHbY+h5c0Nf6fr+LGkvgiNJIACXCkBZTb9aV3FMN6rKhGaIimVrouWanCil5iHaPzPlyvAUj6rMx2c8R8ijWwzRTcRFZJbRmKdw8FMDuoY3bM674Z3vBnf4qZYbNPWQh4G7zZcwYZUvZtwLVLoebKTSDo0U5jeHWDJefX0yfzUFEa2s2mTjjZYIhSc/Ekr16j8Viiqn9G6Kf0etEPyEuX0LBkSJDWk0NmuhMzd14MfiZ2jRX0gsIU/9WCKz/rntYte0p43ssK4aWA7nEOpr9kvlt/UHYuAm3w/OVxWX2pv6MGUiMsXZStzn9Oej+aw9CqGoIFySbDG76xvGo4H2QlsWGPmfRo2Cir/QRDkf1CBQ52Tn9lETpftuV4VBd/XE4oFG3Twvv5CdDac14+s/G5s2pNtWjdZnJn0LUw2/sMkblEUznfpxRUNcZJwIbxHPQr8db+feBvQzOnZDUN7yrr+XW0Exd9jwRGCS2FrDQYMWb0K1vBGPw16cxTJKsvMICv2x4SZe09WaN2BIOXFMxZriXoXW9cQ5y7fGuNtfO2JUL1vSmfc4OLDYlUUOZ0nQagpyldu8b3QawPY6uJRg0Taz6LpJqKvgj2p4R4Jg0Y5zDBj+y6CBbWD9oqleiID9ZGz+MZdec86RSVJmZJQsGyvtjSUEfGdXrfFMakNu3owfcXWs5jzWrmuRc7zZV7Kr4BlvLU7t4A5XYTJDRCMydXqU4R8my1PGMOWXROnwxoUn/QbxpBz0EEOIB0Onr/1B96DRbm81XAZaGzFz9xkxIp4WkfFuwzbZcqR3Vh3sXVfB0eBx1v1aIGSZ7j68IinXPmkh1DR5ONh6z5IwPzNtXSdK6AjZQkfvbQMXEDQ5OgII//VLcz5cpDx2jz4/L2Erzi0KhTGFMDXR6kY2lNZlxKN6NrZYnEq7daUlYxE4mogYHNlKU/CepARf8PXZ6F98xUGWztxJrf7Iy3Z48GeUDG0cdL5TTwxmo/PTIfor2aB1jrg+IabfAEXE52UAuQkCGzb/7ZHydpjw3y1RFl8nLhsaD7ZIVw9LXeKBKqmK6wcsXt3wbdv0kN8zq3l1x8VK0J2rIm28f5IBJhBuwmqUE4EnmfPoBaD1U8mMwuSh8aCK3iCipHhqW2UGS12J6jOksghIKSkpsxWcaz8TbNh/am/BPd8cKAHpWCc3Tskx7+6SXvBnvCJRoh7v/gAxDNHJP7mmIhdGci/t47rFBqj66sI1HNf7YO8BvXb4VH88v8sdhc1UXPfNYjkcERN6/es8pJnEDEMZn8skh8OnXlIwG//ZBXiz2EcjfbIdFcLatElQO59C+/KqtBZxl2BUSHvIo6fJnmVDnOmb4Q3b7rcDiJDUP4WmEHRxvd+6zIxzr3+UwZVjL0m4biwN9BC4TMBEwXoyJcuVZMDzKCLLyVPMIpMsy2sh1V0tReansvPmykTMth13Z1t8KJdyCFa3VRO6KQKz7B1j9cpJwjoU", - "type": "microsoftTodoOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftTodo", - "date": "2021-06-02T13:44:52.183Z" - } - ] - }, - { - "createdAt": "2021-06-07T07:58:21.050Z", - "updatedAt": "2021-07-12T14:21:08.641Z", - "id": "192", - "name": "Microsoft To Do OAuth2 API creds", - "data": "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", - "type": "microsoftToDoOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.microsoftToDo", - "date": "2021-06-07T07:58:21.028Z" - } - ] - }, - { - "createdAt": "2021-06-07T09:28:51.874Z", - "updatedAt": "2021-06-07T09:28:51.874Z", - "id": "193", - "name": "Git creds", - "data": "U2FsdGVkX1/IIVWsCYtoZ7p4mtRUcAsonMpXURC3t/1X0QXVuHDFO/G213Y22rbgDrpW4lHErYa2qGGN9udgc5HBNoNcH6jWBZ+504s9HF8=", - "type": "gitPassword", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.git", - "date": "2021-06-07T09:28:51.858Z" - } - ] - }, - { - "createdAt": "2021-06-07T14:45:16.621Z", - "updatedAt": "2021-06-07T14:45:16.621Z", - "id": "194", - "name": "MQTT SSL creds", - "data": "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", - "type": "mqtt", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.mqtt", - "date": "2021-06-07T14:45:16.591Z" - } - ] - }, - { - "createdAt": "2021-06-09T08:29:47.063Z", - "updatedAt": "2023-03-06T11:42:50.922Z", - "id": "195", - "name": "Oauth google", - "data": "U2FsdGVkX1/Mc0X3JTx9ez/2SbPS2BGxL4JwA8TgOuHlOjvjQQdgOOhg3pkNsaIA+CGAREXyIpbz5yyCT/ov0Tf45L9G7AAMLNqyDDmd60guHvBTX1qQdOeP1q5YDghzCm5+7PqTfPIoBl/0eGvlsC0HWNhigSxRhVfce2LH0iyxhIZUYB7Yck8mztHusijc60d0BNuA6/b7hazJL/yqFRcCQCbh/qGW6HpyUc+xiyS/Yt7Vssvaq01A4sF7F2u5", - "type": "googleDocsOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleDocs", - "date": "2021-06-09T08:29:47.048Z" - } - ] - }, - { - "createdAt": "2021-06-10T09:30:02.562Z", - "updatedAt": "2021-06-10T09:57:05.941Z", - "id": "196", - "name": "Google API creds", - "data": "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", - "type": "googleApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleDrive", - "date": "2021-06-10T09:30:02.546Z" - }, - { - "nodeType": "n8n-nodes-base.googleBooks", - "date": "2021-06-10T09:36:33.967Z" - }, - { - "nodeType": "n8n-nodes-base.googleSheets", - "date": "2021-06-10T09:36:33.967Z" - }, - { - "nodeType": "n8n-nodes-base.googleSlides", - "date": "2021-06-10T09:36:33.967Z" - }, - { - "nodeType": "n8n-nodes-base.googleTranslate", - "date": "2021-06-10T09:36:33.967Z" - }, - { - "nodeType": "n8n-nodes-base.googleDocs", - "date": "2021-06-10T09:36:33.967Z" - }, - { - "nodeType": "n8n-nodes-base.gmail", - "date": "2021-06-10T09:36:33.967Z" - } - ] - }, - { - "createdAt": "2021-06-10T11:13:54.703Z", - "updatedAt": "2021-06-10T11:13:54.703Z", - "id": "197", - "name": "Wazzup creds", - "data": "U2FsdGVkX1/V+lYhVIpxJKAdbtjAbgUWxRDA21RqHYIZQA2X0vWyQ7gLvuaTInDChmdKKTU6oz8CQYiovBvAws3Kdks5GVPpaGvJnj0N4a8=", - "type": "wazzupApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.wazzup", - "date": "2021-06-10T11:13:54.654Z" - } - ] - }, - { - "createdAt": "2021-06-16T14:50:59.312Z", - "updatedAt": "2021-07-07T15:22:11.746Z", - "id": "198", - "name": "Service Now OAuth2 API", - "data": "U2FsdGVkX18A1rFV+ipWYsfGfllKG2J76l/5EBlzh/9wFdEVWYGEnrwlNwmivXblDY3TaeLDZQ7jn9cWBhEOz23n6c9lbRi23mxBiwTPt6TBz8ujyaRtjNolow4/P6BFppafb2ayEknxRrkpGB37G89acR+ddbMWMa2K7vIuzsdCPpn6crRFJoils0eRXDJnzj0IRlNatksGlI8LhmRFFXtxCrzNEcZiO4cj2IH3vZbzXTE+2CHo8/+IPDohplkp0VM6to0jVW5EvpGGISJAuuOogmYwzIRUoWjCspXqt7eyDVH2YoCRTVWDVgxztHwGgHCHnnbJO/ksS3ElgCUZd/P118h7zGAVEhKu9+D1KKzULRMnd9llYq8dh93a/jRXksXSiCV9Kx8foOXjpRveWuTx+iAcGy8mdrnZVkYjvid6iuTbbrAtToa57IzonzFsHXWcs0S0WRhmzDt5KC7FnQRVcYO2J9qabKFaOgH4ObqM34TNeQTH3rI18bVDwgzWKIL7PGW5dn9ZQ28bf9kQU8JoJtlBUxr+sCS7uiR6M/Hsw0qBwnfyc1Ho/besVrmtv8bffbeYvbQCS2nTuXPxqJkX8oKX93MZvj2ybXI6N/343eWUisvegW7SxPKdxQkPJI2J8vsbG8QWZd3I+Ubi1clX4uARulfeuzXLvCs5KTShvssJgbagP9Sf1Dd9vK19GAUUNzSQ79e+EXec6QJfLQ==", - "type": "serviceNowOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.serviceNow", - "date": "2021-06-16T14:50:59.280Z" - } - ] - }, - { - "createdAt": "2021-06-25T11:10:45.303Z", - "updatedAt": "2021-06-25T11:10:45.303Z", - "id": "201", - "name": "Github HTTPreq creds", - "data": "U2FsdGVkX19Q/HZbu0Xv2aO4XK5Oll/0GPHCxm4fG15rmTB0ULY05HVx7Jvx5okarKKH35cpGoC1aPtb+fSPXCNa6zUZpYbH0TrIs654+BbSp7HKYRFioah/4EUmxSQP8XlBClrgz/bB55EptXwekg==", - "type": "httpHeaderAuth", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.httpRequest", - "date": "2021-06-25T11:10:45.298Z" - } - ] - }, - { - "createdAt": "2021-06-28T13:18:15.532Z", - "updatedAt": "2021-06-28T13:18:15.532Z", - "id": "204", - "name": "Facebook Graph API creds", - "data": "U2FsdGVkX1/WG8FR/tKdm1BVowImxVfuOFxk5Fgb/40AfVh9o73NOgUbruEdXTq8Hnpv/9vGngPOPksmN40/zqrjMAo9vHdU1MTU1LE36ose16QAFlfDulQMRlwzakuw+wpvwjfrzDVYIHhwJP9Hr4hZtIVOz1uesbVWKdh3mx+BqnNFY3KZ0MDdcITrOwQO1mS9IJ3sWi9AjqRKG25/MMaYUEoKmOZ56Cdhhn9WuJDTg+46ZjVU67gfWmbJA4adi1oulaksMlw4UKoWLBovXxy12CrJ2xE5Nlxuz4rK0lbjB3GGCNX6VL/BLfJftO5iqyRClhwtFtjf6qwHKiDbjg==", - "type": "facebookGraphApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.facebookGraphApi", - "date": "2021-06-28T13:18:15.519Z" - } - ] - }, - { - "createdAt": "2021-07-06T11:02:01.098Z", - "updatedAt": "2021-07-08T13:08:48.371Z", - "id": "208", - "name": "Twake API creds", - "data": "U2FsdGVkX18fJ1Lxo94Z8X4fgXyEr3BAX28NaqpdFK0czUM1u0V6LYXdd6rqFE7PGWPrex+qy/u611mBJPMpjryqTkhw5dpS6c7vrRlNP+m40UllwH+UyPMJ4oJvkzV2ZxVJh6jwX4V6r5XmFpOCg8+6U4JHp39ThXlwU4iecu9ydQATOs0hNftYjmDPEaoe4hNqgB0PspxoVJT4REXAcg==", - "type": "twakeCloudApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.twake", - "date": "2021-07-06T11:02:01.088Z" - } - ] - }, - { - "createdAt": "2021-07-06T13:56:38.704Z", - "updatedAt": "2023-03-06T11:43:42.917Z", - "id": "209", - "name": "Google BigQuery OAuth2 API creds", - "data": "U2FsdGVkX1/kMPFA6N8Qd2dHVP3Hc84dX/wYIWkMRR6R0xeEMAe3PEcnzFRn9bzQIByvsHVMhcaem47LjECpiQIkV5Ee8Jd2LbZD73Qufzp3tKdsBwieP6WlP0UL/Qrkz0dws7/LlE0BsVLO4XzlwvMS2qCP/v3NQtNqbvpbvpz5qDMED8FkwKtfPYzs1x5WRiAhhCHac66e+U9BTcxbQHi9s6qzZZkHvO9wnubjNH54vc+ZtFAdmzxJrfFHxlkguF0m9C743E9044Vj+v2dMrW5N82MGQBCUe5h3MJH7IoyY4hji0txJknLuqOJ5QUK+ULQM86F2znYypgDtNsS9WaSARSX/E6Fs0rUipzaubuZo2X/T/nbz+jn0I4IbYM0lY63ntaulZUyyEEqDrw60qv3AEwhA+Jtk5WhuBi6MmTaeFMx6vAIKTgFLyPckqq3Z6kYo39owdYMkdoEAHdhUlMDX2WaxAeXMTrZS8nmnN/zkDYQWEX4DVj6CdURKD9aOwlgZgdB7+rMvr6DPvqhUWhFBQbzAxQT75vKOTaRWKhxykKzFOu+p4T9nsUNGEFgRDsuXgB4O6ufjdiUuiaEdKF6OSzokwhP4fTz5HkSi00I1WV3YC3yzll0tGGfGGaZUdJkt0dn+Ko+h8lLfuHYbj0Adp4TNQ/D23Gwvz+n1OBttnjaT9wcrrVG6tZoyX/S4LQZv/yQHqp6pCQjAAxvybiLKNgvXncYQZdIz/IQ7idp4cvP+d7TbhZMCoGmro/dK+Vx/T+pM2NgCQX/XSNfDq7fx/1Q74hz2Z1qdTNnHOxE5AZhmMJtW0Cn87ZcAZdLxjw+likWq4+opb8RV47k+fGc93gGVYQgbgDKfjPY1GeyzGy2CFlZoajaEd4uUOY45Sw8QtsnN9Yv1L02eqYmAw==", - "type": "googleBigQueryOAuth2Api", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.googleBigQuery", - "date": "2021-07-06T13:56:38.700Z" - } - ] - }, - { - "createdAt": "2021-07-08T14:04:04.717Z", - "updatedAt": "2021-07-08T14:04:04.717Z", - "id": "211", - "name": "Bannerbear API creds", - "data": "U2FsdGVkX19DUobOgTiZB2BNRYe9XfE4cRRrm0jJeH4vpdAIA6Xn1yWx1Srof9jTwVuDwQgygu86BpsDpAikOA==", - "type": "bannerbearApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.bannerbear", - "date": "2021-07-08T14:04:04.713Z" - } - ] - }, - { - "createdAt": "2021-07-08T15:03:50.597Z", - "updatedAt": "2021-07-08T15:03:50.597Z", - "id": "212", - "name": "Automizy API creds", - "data": "U2FsdGVkX1+a4YF8ERm2wQpmFF9zuWqVqcoRxHitUPNwbj04yGayD0/BUAF7C4UF049E9a+vkWKCCU+wPzMNupy+v6T50/t04J5T9X0lk7U=", - "type": "automizyApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.automizy", - "date": "2021-07-08T15:03:50.578Z" - } - ] - }, - { - "createdAt": "2021-07-08T15:56:27.335Z", - "updatedAt": "2021-07-08T15:56:27.335Z", - "id": "213", - "name": "Autopilot API creds", - "data": "U2FsdGVkX1990Zz0289mfOk1s3M8GpfiHEy9YKoQwnShYRqiYSMWnJEu5LFGr7IMciUvkztaubmR0CV6u2Iktw==", - "type": "autopilotApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.autopilot", - "date": "2021-07-08T15:56:27.305Z" - } - ] - }, - { - "createdAt": "2021-07-09T09:25:37.158Z", - "updatedAt": "2021-07-09T09:25:37.158Z", - "id": "214", - "name": "Copper API creds", - "data": "U2FsdGVkX18l89dBvUw37IdZgI4DoqM5IrZELrJN19yyuFJVOJulYwWC3pdJYs+mu5ZQHakW2plT0JPMN5aI0+oI8C1aEOkiwbpxdJYQE0HBU9WYhcxEHauUR8VZsFSr", - "type": "copperApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.copper", - "date": "2021-07-09T09:25:37.137Z" - } - ] - }, - { - "createdAt": "2021-07-09T10:42:39.852Z", - "updatedAt": "2021-07-09T10:42:39.852Z", - "id": "215", - "name": "Lemlist API creds", - "data": "U2FsdGVkX19YK3ou2PHqwk9RvmTvq8SW+IuQUPU9elxpcL1+v7VSCtXCabTO+REWz0AtAzO0Wf+KX3/NHph0GQ==", - "type": "lemlistApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.lemlist", - "date": "2021-07-09T10:42:39.834Z" - } - ] - }, - { - "createdAt": "2021-07-09T11:07:29.231Z", - "updatedAt": "2021-07-09T11:07:29.231Z", - "id": "216", - "name": "LingvaNex API creds", - "data": "U2FsdGVkX18mh/bww6zfE0KPaki4toOG5g2TnxjJziEUuVnYpj+ObrcXE+P2q7+2iSvLhCM21pZpq6/xsfdOOT2MOvxcIUnYnWDupJOv1PRafpZOL3DrOFiRoMUdMTwrgxk9rDT0Pv2kn63IHheCcw==", - "type": "lingvaNexApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.lingvaNex", - "date": "2021-07-09T11:07:29.221Z" - } - ] - }, - { - "createdAt": "2021-07-09T12:21:19.612Z", - "updatedAt": "2021-07-09T12:21:19.612Z", - "id": "217", - "name": "Quick Base API creds", - "data": "U2FsdGVkX1/bmFNHmFEKuJOOrdCy4gBcs41FiU0KeSIZwYcwtTyPH4KjLKqweO0QfuNDv2K41BKrDM7Q9oAs3Tv5Ko/P4l2QtZBYpq8XAwrVP7wUzSkGwwT+7OCbKlnhBo3WBLxfngAj9beW+c90yg==", - "type": "quickbaseApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.quickbase", - "date": "2021-07-09T12:21:19.609Z" - } - ] - }, - { - "createdAt": "2021-07-09T12:55:33.370Z", - "updatedAt": "2021-07-09T12:55:33.370Z", - "id": "218", - "name": "Salesmate API creds", - "data": "U2FsdGVkX1+6pfuX5hgu5NnZwv66rRj2UWXLmjFk4okMMGKTS0Zq5v4KEEuepftiE3NDFtbjAknhWrYiFvKZmGOzD9H/Jqkp9YVul9MIeuT5FPTHFWRw0NP9/ucm0p2W26k1seEXBzw5v5NgiaxvGQ==", - "type": "salesmateApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.salesmate", - "date": "2021-07-09T12:55:33.366Z" - } - ] - }, - { - "createdAt": "2021-07-09T13:37:45.136Z", - "updatedAt": "2021-07-09T13:37:45.136Z", - "id": "219", - "name": "Unleashed API creds", - "data": "U2FsdGVkX1/UWTTmjW5+dEZHIF+vI+/8Z1z6yrVsts5aNRyaAR6zF/jmjTJo5dxXl1Scl0ItuRFq52ZkFpwSS8onxWlh899d/ksRPsuXyUj0g1vZoNhRAlPUAk4uHTKG7CdLbIbR1AnLx7RBZ7BX5CXEaei/260WGBt/k0Apf62O7sR+6aLGEkMJ3HdVodIPbx3xA9vRHvft5DWwPnAeblMuWMNYnPZdm201+pjdqrc=", - "type": "unleashedSoftwareApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.unleashedSoftware", - "date": "2021-07-09T13:37:45.126Z" - } - ] - }, - { - "createdAt": "2021-07-09T13:56:17.513Z", - "updatedAt": "2021-07-09T13:56:17.513Z", - "id": "220", - "name": "Flow API creds", - "data": "U2FsdGVkX1+s012n9S/Ccpyeyjpguajol8ndKHq2fk8+BkMbixDXi+8lijoBFaw+jU9NEigXKBPoyvIvg0xILHYEPN5g4URfbcNkospCZlYCzd5lRvXXrkmdUY+1ldjtzjYFGcFZbQAjzGmHx3Kr+nmDom+9+MZROgJJq2On9oI=", - "type": "flowApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.flow", - "date": "2021-07-09T13:56:17.501Z" - } - ] - }, - { - "createdAt": "2021-07-15T13:53:23.185Z", - "updatedAt": "2021-07-15T13:53:23.185Z", - "id": "221", - "name": "taigaApi", - "data": "U2FsdGVkX194voBZRbkQtyAV6D4Xt5l91TONcpGY2UmJllyCtDzFntUo2jODSyeHjtIHNBh9D4uknbeHfYaGgyFSpuiqNly8hI6s09AZGL8=", - "type": "taigaApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.taiga", - "date": "2021-07-15T13:53:23.176Z" - } - ] - }, - { - "createdAt": "2021-07-29T15:07:56.696Z", - "updatedAt": "2024-01-30T15:16:53.177Z", - "id": "223", - "name": "Spotify OAuth2 creds", - "data": "U2FsdGVkX184CipdIAhmdBl5m+xl1UgWlNQPsCPRgb7EcihBkDWoc5gsRnellNxJUCWhYn0nnIITcr3Dr7V9we5IOhDFKmptRTs5e+DQ6Gn64v+rr2fT7ww9PnjTGL9pAm/mYYyAwazE6FhT6ea4Ne2/K2ISicwx1aBggzHsoe/pTv9kR4iVMznWJzJAQO8KJ3gxxADMTvIYlDhmCO7h9MhbqBXPNrkLre7vEoOhp6ZzhrDqwtFeqEy1lSytV7XQmXgjAC/bpP5+i/YNZBSfKqWCWn3m4Log8LSlpP4C5lW40meo0RRskcZJYAoF52A1ac4Cm5t/I+fbxjsAzPSSIqfSs1C6i8iVmI9FLdaM3d8K4nWh3q0T/7xBgcun08A925ECqF2KvNxqZQJLusrIUoEwjxuCupgGakxMbhXZPXRYzZj/9xOQuQeNeRXkEeZ3qG6WvJlnEfPRAfMjVjNIN5GLORwF1O1advW71UrEffPMSWeN1iPa6vrKErZCMBmU7GY6jSpQXyVSCdB5W0hUkFRDRkP1X4+JmJE6RH4c90pIyaNGdgiDapK/LRs8i/dDReVt+Pb/0XOYcvn9AfGvEnxKjKnj2m0gxiHRu7FiCWrehaYrXtoYhygxLAHG1JlGNQ+vCKLSreplrszOjD6Sik2ltsJVPwrW3Luw8WcdSuGUA+J+NqiNSchm49mXGvTvea/DAgssBQD8xSUbab4SXfIAlOjyFT66UgtRKKP4WHGkXvhQuhI1l+4cx04E3kWO+a/VLUCtBECGGjKGeLcDLLQoyw3hHanYS8fAqeBZQRiOfALQucOWUwDhSp8rtmf+FXBdeqrPGMNVt1qTha23xk0uhKf1looNXocOFrlAtm7pazu66pQrk9gOxLjATieYQvoRpnOURn8e/O2vk6s0X3asHRVtIhVR6kmP0yXK4cfesn1j39J/Fyb+dT//N7RrpAcF5tzcaovZ8jP5FUTUCaKJiKCutEuzhU6uXVnS6tH9UP1FilYn6HKFk/hryyrBmaeBog6XhV1ncVMogXMJFNMsW/RPPzbaJU2qEO9sIPmi1pHKuV/4wCYLtNCwi5+LyeZeND+WmHU8LjqqLvqvNVihbQlDQQ1a22R6rWDqo98PS+nOTyl1hhxcgYwo1kBaza3UlRUBF2PDelWu3HZSWGZpd1ojQpcmK6Y54Wd793rc9TRyLRRDpipkh4Yvm2XJexr/EZ/nLdfbCj9dWaZEKf0apgAQ6aN68/uRSvvfT9jSaic+/AExw86kxtMShH1TBPT1J0KZgAxE3CL8VNoanze9RMmnEy/AjCL7D4IPILZ5OYcsRf37O0um8e6gKXqOo9z/LMPNpz1GEzilH8U1Mwk5QFChK7h8fobLYqYdRliSc43wC7IzaBrSjrNNpYckjvlVIf2cb1eBniG3P+7gBuevtXwX+v405PuCBZoiwSz7w1iOQvZa+5YiejMCySjOhAxe+7o2e69w2IVj3Ua4MRsEIUbIvQmU3d0vzBftcYyCGS3TUcllSBfZXxdkIYs/3r8Jf+8peyQ21LprnZZmPQnHYIDSa9ORb/KqL2Yw+lAUC0wSEof6k6IdlM/GyUupdowSjARTC+9z9ZTyXBA+z8COSJwgDlcoy3lXjXEcIHRKqZyqv8Ogb7kcKr2KtSTfeEDedm06/bEx8EWn/MGwdk784HiYjwCYFIwA9eq/OUbvDyAoIZFmNeVCzedCHa5cvzVVjiU5f+7U/n7W0oLdkdRwXtp8ney3oY9iK0i/tw6duUUOE1+VrFjeGRQLzu284Dz2N7s/J7pM7a+XmMu++A==", - "type": "spotifyOAuth2Api", - "nodesAccess": [] - }, - { - "createdAt": "2023-11-14T14:06:37.142Z", - "updatedAt": "2023-11-14T14:06:37.135Z", - "id": "q80wx3kiggmjWdY9", - "name": "VirusTotal account", - "data": "U2FsdGVkX19YzDZdkttgnMSwQaHslQJ/df+UymDyoElout2KYb4Ze5Mr8W8vyWA9oM3jSc110zApTlvOaCe4H883SXgDBvugTvyHCclweEevR78xACzsoGHhS0t0YRcqKiag3BteYgeG9KspdBeVCA==", - "type": "virusTotalApi", - "nodesAccess": [] - }, - { - "createdAt": "2024-03-04T15:51:12.065Z", - "updatedAt": "2024-03-04T15:51:12.056Z", - "id": "wd646B2kD0zzQHC3", - "name": "CohereApi account", - "data": "U2FsdGVkX1+e/SwD3hZJTTggN8oHic/eaqs0GnrjpVoisY4MilixmCGSBvWHESRgvOKXCmpsohpPqEeyJ6ioY42jm9c72rjaLM2oiMoHTCY=", - "type": "cohereApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.embeddingsCohere", - "date": "2024-03-04T15:51:12.055Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.lmCohere", - "date": "2024-03-04T15:51:12.055Z" - } - ] - }, - { - "createdAt": "2024-03-04T16:05:06.082Z", - "updatedAt": "2024-03-04T16:05:06.080Z", - "id": "RNAgogiex4JxTr44", - "name": "Azure Open AI account", - "data": "U2FsdGVkX19Q3gtwA9Nt1YBIdkH5c+OI7X/A2iWsNJXYnagrLOooC/UZI0ZCBpPlYDHHa49T5xbWraJ/kwpVy7E0+OZWwb7sZ7xcKa+618BMLdaJQyn4fqTmz+CfXRFB", - "type": "azureOpenAiApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi", - "date": "2024-03-04T16:05:06.080Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi", - "date": "2024-03-04T16:05:06.080Z" - } - ] - }, - { - "createdAt": "2024-03-04T16:13:11.535Z", - "updatedAt": "2024-03-04T16:13:11.533Z", - "id": "Rl7R5orXMm9FvxZS", - "name": "Mistral Cloud account", - "data": "U2FsdGVkX18K/8KeCsjvuxU95AF9Cyy2yaOFG0JW6hvZB3YUfVQ1bOEro8sNAFGo7h3brCwBDCfz/JLmXNWs9A==", - "type": "mistralCloudApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.embeddingsMistralCloud", - "date": "2024-03-04T16:13:11.533Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.lmChatMistralCloud", - "date": "2024-03-04T16:13:11.533Z" - } - ] - }, - { - "createdAt": "2024-03-04T16:13:58.488Z", - "updatedAt": "2024-03-04T16:13:58.486Z", - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account", - "data": "U2FsdGVkX195mafxGwDW3DcL8Kkn5ME4KGNGUU34IbAdBul7UJ+XXh2bVkZzD+cCvnX6Mbh1qNhP1TynynqgCrfzhn0mDHdRyJ5koVBdJaOsOQ72ItjBbS08JDmAExSR", - "type": "openAiApi", - "nodesAccess": [ - { - "nodeType": "n8n-nodes-base.openAi", - "date": "2024-03-04T16:13:58.485Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.openAi", - "date": "2024-03-04T16:13:58.485Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.openAiAssistant", - "date": "2024-03-04T16:13:58.485Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "date": "2024-03-04T16:13:58.485Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "date": "2024-03-04T16:13:58.485Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.lmOpenAi", - "date": "2024-03-04T16:13:58.485Z" - } - ] - }, - { - "createdAt": "2024-03-04T16:54:42.832Z", - "updatedAt": "2024-03-04T16:54:42.825Z", - "id": "Ohl5AdteUC94gDYj", - "name": "QdrantApi account", - "data": "U2FsdGVkX1+FU6GWIVYq7ZrHXIwHRkf+0tRLQBoPbEfjpaPmbKq6mFH8g4qOh9kYvmO/LijqrYmxTcW+RL1UV5NJgtAMAU50POrgUcC1Gk50gzXoO+DFS3kt6FQLb+a82ovGtB+UBqYj6xplZNLXJl6sS2MKt+zJ7ehgjt3TPlxLbCjwA2ByS68k86rOhCFRfpIyvX3lkaAfw/CtIpSUD32CgIY3bTbABO40aZqDEzE=", - "type": "qdrantApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", - "date": "2024-03-04T16:54:42.824Z" - } - ] - }, - { - "createdAt": "2024-03-04T16:58:05.121Z", - "updatedAt": "2024-03-04T16:58:05.119Z", - "id": "IoeAsZR3eD1OS0oY", - "name": "PineconeApi account", - "data": "U2FsdGVkX19cylSnz+B0slgUyHRFO8DR/XbCXcs7O2lSTJd9sXSt2KWwTtWJni0xdJUlH2ii2jk3MyxKWuY+ltZw2/oCdFIT3qy8EGI2ujHgaC3JGJPr344LGa19LiUE", - "type": "pineconeApi", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePinecone", - "date": "2024-03-04T16:58:05.119Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePineconeInsert", - "date": "2024-03-04T16:58:05.119Z" - }, - { - "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePineconeLoad", - "date": "2024-03-04T16:58:05.119Z" - } - ] - }, - { - "createdAt": "2024-08-29T09:12:15.992Z", - "updatedAt": "2024-08-29T09:12:15.988Z", - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account", - "data": "U2FsdGVkX1+e3a7wKZrdar8jkTor3wRQjSfAGyd8i2yoXHRvcGUhx+dIzZDPfNXHbSUUi0lcYIdIicMPJfDdZ2UXpeqjm2qQAyE86jAeTqgUE/KFUxHH3ULtAGqEbxM5WZ0K1qL1HJUuIaTRK0/NrA==", - "type": "postgres", - "nodesAccess": [ - { - "nodeType": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "date": "2024-08-29T11:26:05.119Z" - } - ] - } -] diff --git a/test-workflows/skipList.json b/test-workflows/skipList.json deleted file mode 100644 index d55a883f6b..0000000000 --- a/test-workflows/skipList.json +++ /dev/null @@ -1,926 +0,0 @@ -[ - { - "workflowId": "1", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "4", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "5", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "10", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "19", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "20", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "21", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "22", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "26", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "27", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "28", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "29", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "30", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "31", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "33", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "34", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "38", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "39", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "40", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "41", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "42", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "43", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "45", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "46", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "47", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "49", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "50", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "51", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "54", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "56", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "57", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "59", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "60", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "64", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "65", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "66", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "68", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "69", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "72", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "73", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "74", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "75", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "76", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "77", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "78", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "79", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "80", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "82", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "85", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "89", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "92", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "94", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "102", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "104", - "status": "SKIPPED", - "skipReason": "This node is deprecated and has been replaced by the Extract From File node. Also it didn't interact with any live services, it could have been an integation test.", - "ticketReference": "" - }, - { - "workflowId": "106", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "109", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "110", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "112", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "113", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "115", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "116", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "117", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "118", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "119", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "120", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "121", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "122", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "123", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "124", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "125", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "126", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "127", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "128", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "129", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "130", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "131", - "status": "SKIPPED", - "skipReason": "This API service has been discontinued. For more details, please check here: https://notify-bot.line.me/closing-announce on node Line", - "ticketReference": "" - }, - { - "workflowId": "134", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "133", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "135", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "136", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "137", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "138", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "139", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "141", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "142", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "144", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "145", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "146", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "147", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "148", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "149", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "151", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "157", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "158", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "159", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "160", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "163", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "164", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "165", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "167", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "168", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "169", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "170", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "171", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "173", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "176", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "177", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "179", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "180", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "183", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "184", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "185", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "186", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "187", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "188", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "189", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "190", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "191", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "192", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "193", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "194", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "196", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "197", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "198", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "199", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "200", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "201", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "202", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "204", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "206", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "207", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "208", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "214", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "215", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "217", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "218", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "219", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "220", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "221", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "222", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "224", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "225", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "226", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "227", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "252", - "status": "SKIPPED", - "skipReason": "", - "ticketReference": "" - }, - { - "workflowId": "223", - "status": "SKIPPED", - "skipReason": "You can not complete this operation. Please check your balance on node LingvaNex", - "ticketReference": "" - }, - { - "workflowId": "143", - "status": "SKIPPED", - "skipReason": "Invalid API key for Clearbit.", - "ticketReference": "" - }, - { - "workflowId": "86", - "status": "SKIPPED", - "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", - "ticketReference": "CAT-790" - }, - { - "workflowId": "87", - "status": "SKIPPED", - "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", - "ticketReference": "CAT-790" - }, - { - "workflowId": "88", - "status": "SKIPPED", - "skipReason": "It looks like a timing issue with the delete operation. The contact was created but not found when trying to delete it. Tested it with the same workflow and it worked.", - "ticketReference": "CAT-790" - }, - { - "workflowId": "233", - "status": "SKIPPED", - "skipReason": "Not Found on node Qdrant Vector Store. Could be a timing issue.", - "ticketReference": "" - }, - { - "workflowId": "241", - "status": "SKIPPED", - "skipReason": "OpenAIAgent requires an OpenAI chat model on node AI Agent1", - "ticketReference": "" - }, - { - "workflowId": "259", - "status": "SKIPPED", - "skipReason": "Please return an array of objects, one for each item you would like to output. on node Code", - "ticketReference": "" - }, - { - "workflowId": "254", - "status": "SKIPPED", - "skipReason": "Overloaded on node AI Agent3. Is this because I ran the test workflow multiple times?", - "ticketReference": "" - } -] \ No newline at end of file diff --git a/test-workflows/snapshots/1-snapshot.json b/test-workflows/snapshots/1-snapshot.json deleted file mode 100644 index 2b48e4a0ee..0000000000 --- a/test-workflows/snapshots/1-snapshot.json +++ /dev/null @@ -1,397 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385621, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twitter": [ - { - "startTime": 1676891385623, - "executionTime": 416, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "Mon Feb 20 11:09:45 +0000 2023", - "id": 1627626558218182700, - "id_str": "1627626558218182657", - "text": "Hello from n8n testing framework 0.5036048381984097", - "truncated": false, - "entities": { - "object": true - }, - "source": "n8n testing framework", - "in_reply_to_status_id": { - "object": true - }, - "in_reply_to_status_id_str": { - "object": true - }, - "in_reply_to_user_id": { - "object": true - }, - "in_reply_to_user_id_str": { - "object": true - }, - "in_reply_to_screen_name": { - "object": true - }, - "user": { - "object": true - }, - "geo": { - "object": true - }, - "coordinates": { - "object": true - }, - "place": { - "object": true - }, - "contributors": { - "object": true - }, - "is_quote_status": false, - "retweet_count": 0, - "favorite_count": 0, - "favorited": false, - "retweeted": false, - "lang": "en" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twitter4": [ - { - "startTime": 1676891386039, - "executionTime": 227, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "Sun Feb 19 15:58:36 +0000 2023", - "id": 1627336861717876700, - "id_str": "1627336861717876742", - "text": "- @PlausibleHQ tracking plan, in progress 🚧\n- @n8n_io workflows✅\n- @MailerLite add Users subscription✅\n- @NotionHQ… https://t.co/2Mb94nO48X", - "truncated": true, - "entities": { - "object": true - }, - "metadata": { - "object": true - }, - "source": "Twitter Web App", - "in_reply_to_status_id": { - "object": true - }, - "in_reply_to_status_id_str": { - "object": true - }, - "in_reply_to_user_id": { - "object": true - }, - "in_reply_to_user_id_str": { - "object": true - }, - "in_reply_to_screen_name": { - "object": true - }, - "user": { - "object": true - }, - "geo": { - "object": true - }, - "coordinates": { - "object": true - }, - "place": { - "object": true - }, - "contributors": { - "object": true - }, - "is_quote_status": true, - "retweet_count": 0, - "favorite_count": 4, - "favorited": false, - "retweeted": false, - "lang": "en" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twitter1": [ - { - "startTime": 1676891386266, - "executionTime": 234, - "source": [ - { - "previousNode": "Twitter" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "Mon Feb 20 11:09:45 +0000 2023", - "id": 1627626558218182700, - "id_str": "1627626558218182657", - "text": "Hello from n8n testing framework 0.5036048381984097", - "truncated": false, - "entities": { - "object": true - }, - "source": "n8n testing framework", - "in_reply_to_status_id": { - "object": true - }, - "in_reply_to_status_id_str": { - "object": true - }, - "in_reply_to_user_id": { - "object": true - }, - "in_reply_to_user_id_str": { - "object": true - }, - "in_reply_to_screen_name": { - "object": true - }, - "user": { - "object": true - }, - "geo": { - "object": true - }, - "coordinates": { - "object": true - }, - "place": { - "object": true - }, - "contributors": { - "object": true - }, - "is_quote_status": false, - "retweet_count": 0, - "favorite_count": 0, - "favorited": true, - "retweeted": false, - "lang": "en" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twitter2": [ - { - "startTime": 1676891386500, - "executionTime": 244, - "source": [ - { - "previousNode": "Twitter1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "Mon Feb 20 11:09:46 +0000 2023", - "id": 1627626561162682400, - "id_str": "1627626561162682372", - "text": "RT @nodeqa1: Hello from n8n testing framework 0.5036048381984097", - "truncated": false, - "entities": { - "object": true - }, - "source": "n8n testing framework", - "in_reply_to_status_id": { - "object": true - }, - "in_reply_to_status_id_str": { - "object": true - }, - "in_reply_to_user_id": { - "object": true - }, - "in_reply_to_user_id_str": { - "object": true - }, - "in_reply_to_screen_name": { - "object": true - }, - "user": { - "object": true - }, - "geo": { - "object": true - }, - "coordinates": { - "object": true - }, - "place": { - "object": true - }, - "contributors": { - "object": true - }, - "retweeted_status": { - "object": true - }, - "is_quote_status": false, - "retweet_count": 1, - "favorite_count": 0, - "favorited": true, - "retweeted": true, - "lang": "en" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twitter3": [ - { - "startTime": 1676891386744, - "executionTime": 218, - "source": [ - { - "previousNode": "Twitter2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "Mon Feb 20 11:09:45 +0000 2023", - "id": 1627626558218182700, - "id_str": "1627626558218182657", - "text": "Hello from n8n testing framework 0.5036048381984097", - "truncated": false, - "entities": { - "object": true - }, - "source": "n8n testing framework", - "in_reply_to_status_id": { - "object": true - }, - "in_reply_to_status_id_str": { - "object": true - }, - "in_reply_to_user_id": { - "object": true - }, - "in_reply_to_user_id_str": { - "object": true - }, - "in_reply_to_screen_name": { - "object": true - }, - "user": { - "object": true - }, - "geo": { - "object": true - }, - "coordinates": { - "object": true - }, - "place": { - "object": true - }, - "contributors": { - "object": true - }, - "is_quote_status": false, - "retweet_count": 1, - "favorite_count": 1, - "favorited": true, - "retweeted": true, - "lang": "en" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Twitter3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.616Z", - "stoppedAt": "2023-02-20T11:09:46.962Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/10-snapshot.json b/test-workflows/snapshots/10-snapshot.json deleted file mode 100644 index 917668ffac..0000000000 --- a/test-workflows/snapshots/10-snapshot.json +++ /dev/null @@ -1,708 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331886877, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty": [ - { - "startTime": 1710331886877, - "executionTime": 1389, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "incident_number": 1722, - "title": "Test", - "description": "Test", - "created_at": "2024-03-13T12:11:28Z", - "updated_at": "2024-03-13T12:11:28Z", - "status": "triggered", - "incident_key": "d3b8964acebb45b4a91944a06bc89930", - "service": { - "object": true - }, - "assignments": [ - "json array" - ], - "assigned_via": "escalation_policy", - "last_status_change_at": "2024-03-13T12:11:28Z", - "resolved_at": { - "object": true - }, - "first_trigger_log_entry": { - "object": true - }, - "alert_counts": { - "object": true - }, - "is_mergeable": true, - "escalation_policy": { - "object": true - }, - "teams": [ - "json array" - ], - "impacted_services": [ - "json array" - ], - "pending_actions": [ - "json array" - ], - "acknowledgements": [ - "json array" - ], - "basic_alert_grouping": { - "object": true - }, - "alert_grouping": { - "object": true - }, - "last_status_change_by": { - "object": true - }, - "incidents_responders": [ - "json array" - ], - "responder_requests": [ - "json array" - ], - "subscriber_requests": [ - "json array" - ], - "urgency": "high", - "id": "Q3Z252030C2VEG", - "type": "incident", - "summary": "[#1722] Test", - "self": "https://api.pagerduty.com/incidents/Q3Z252030C2VEG", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3Z252030C2VEG" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty7": [ - { - "startTime": 1710331888266, - "executionTime": 1108, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "R4CLO6G4XRB6395SM2S6WLWH4A", - "type": "assign_log_entry", - "summary": "Assigned to Node Qa.", - "self": "https://api.pagerduty.com/log_entries/R4CLO6G4XRB6395SM2S6WLWH4A", - "html_url": { - "object": true - }, - "created_at": "2024-03-13T12:11:28Z", - "agent": { - "object": true - }, - "channel": { - "object": true - }, - "service": { - "object": true - }, - "incident": { - "object": true - }, - "teams": [ - "json array" - ], - "contexts": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty6": [ - { - "startTime": 1710331889374, - "executionTime": 861, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Node Qa", - "email": "nodeqa@n8n.io", - "time_zone": "Europe/Berlin", - "color": "purple", - "avatar_url": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.png?d=mm&r=PG", - "billed": true, - "role": "owner", - "description": { - "object": true - }, - "invitation_sent": false, - "job_title": { - "object": true - }, - "teams": [ - "json array" - ], - "contact_methods": [ - "json array" - ], - "notification_rules": [ - "json array" - ], - "personal_web_cal_url": "webcal://dev-nodeqan8n.pagerduty.com/private/effe61535b688813e51b31cd68f98cf54428fe2848b86672bcff8689c9900c5a/feed", - "personal_http_cal_url": "https://dev-nodeqan8n.pagerduty.com/private/effe61535b688813e51b31cd68f98cf54428fe2848b86672bcff8689c9900c5a/feed", - "coordinated_incidents": [ - "json array" - ], - "id": "PT0VVWO", - "type": "user", - "summary": "Node Qa", - "self": "https://api.pagerduty.com/users/PT0VVWO", - "html_url": "https://dev-nodeqan8n.pagerduty.com/users/PT0VVWO" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty1": [ - { - "startTime": 1710331890235, - "executionTime": 919, - "source": [ - { - "previousNode": "PagerDuty" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "incident_number": 1722, - "title": "Test", - "description": "Test", - "created_at": "2024-03-13T12:11:28Z", - "updated_at": "2024-03-13T12:11:28Z", - "status": "triggered", - "incident_key": "d3b8964acebb45b4a91944a06bc89930", - "service": { - "object": true - }, - "assignments": [ - "json array" - ], - "assigned_via": "escalation_policy", - "last_status_change_at": "2024-03-13T12:11:28Z", - "resolved_at": { - "object": true - }, - "first_trigger_log_entry": { - "object": true - }, - "alert_counts": { - "object": true - }, - "is_mergeable": true, - "escalation_policy": { - "object": true - }, - "teams": [ - "json array" - ], - "impacted_services": [ - "json array" - ], - "pending_actions": [ - "json array" - ], - "acknowledgements": [ - "json array" - ], - "basic_alert_grouping": { - "object": true - }, - "alert_grouping": { - "object": true - }, - "last_status_change_by": { - "object": true - }, - "incidents_responders": [ - "json array" - ], - "responder_requests": [ - "json array" - ], - "subscriber_requests": [ - "json array" - ], - "urgency": "high", - "id": "Q3Z252030C2VEG", - "type": "incident", - "summary": "[#1722] Test", - "self": "https://api.pagerduty.com/incidents/Q3Z252030C2VEG", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3Z252030C2VEG" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1710331891154, - "executionTime": 503, - "source": [ - { - "previousNode": "PagerDuty" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "incident_number": 1722, - "title": "Test", - "description": "Test", - "created_at": "2024-03-13T12:11:28Z", - "updated_at": "2024-03-13T12:11:28Z", - "status": "triggered", - "incident_key": "d3b8964acebb45b4a91944a06bc89930", - "service": { - "object": true - }, - "assignments": [ - "json array" - ], - "assigned_via": "escalation_policy", - "last_status_change_at": "2024-03-13T12:11:28Z", - "resolved_at": { - "object": true - }, - "first_trigger_log_entry": { - "object": true - }, - "alert_counts": { - "object": true - }, - "is_mergeable": true, - "escalation_policy": { - "object": true - }, - "teams": [ - "json array" - ], - "impacted_services": [ - "json array" - ], - "pending_actions": [ - "json array" - ], - "acknowledgements": [ - "json array" - ], - "basic_alert_grouping": { - "object": true - }, - "alert_grouping": { - "object": true - }, - "last_status_change_by": { - "object": true - }, - "incidents_responders": [ - "json array" - ], - "responder_requests": [ - "json array" - ], - "subscriber_requests": [ - "json array" - ], - "urgency": "high", - "id": "Q3Z252030C2VEG", - "type": "incident", - "summary": "[#1722] Test", - "self": "https://api.pagerduty.com/incidents/Q3Z252030C2VEG", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3Z252030C2VEG" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "PagerDuty4": [ - { - "startTime": 1710331891657, - "executionTime": 1169, - "source": [ - { - "previousNode": "PagerDuty1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "note": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty5": [ - { - "startTime": 1710331892826, - "executionTime": 843, - "source": [ - { - "previousNode": "PagerDuty1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "POGZPU2", - "user": { - "object": true - }, - "content": "Simple note for an incident", - "created_at": "2024-03-13T13:11:32+01:00", - "channel": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty2": [ - { - "startTime": 1710331893669, - "executionTime": 1144, - "source": [ - { - "previousNode": "PagerDuty1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "incident_number": 1722, - "title": "Test", - "description": "Test", - "created_at": "2024-03-13T12:11:28Z", - "updated_at": "2024-03-13T12:11:34Z", - "status": "acknowledged", - "incident_key": "d3b8964acebb45b4a91944a06bc89930", - "service": { - "object": true - }, - "assignments": [ - "json array" - ], - "assigned_via": "escalation_policy", - "last_status_change_at": "2024-03-13T12:11:34Z", - "resolved_at": { - "object": true - }, - "first_trigger_log_entry": { - "object": true - }, - "alert_counts": { - "object": true - }, - "is_mergeable": true, - "escalation_policy": { - "object": true - }, - "teams": [ - "json array" - ], - "impacted_services": [ - "json array" - ], - "pending_actions": [ - "json array" - ], - "acknowledgements": [ - "json array" - ], - "basic_alert_grouping": { - "object": true - }, - "alert_grouping": { - "object": true - }, - "last_status_change_by": { - "object": true - }, - "incidents_responders": [ - "json array" - ], - "responder_requests": [ - "json array" - ], - "subscriber_requests": [ - "json array" - ], - "urgency": "high", - "id": "Q3Z252030C2VEG", - "type": "incident", - "summary": "[#1722] Test", - "self": "https://api.pagerduty.com/incidents/Q3Z252030C2VEG", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3Z252030C2VEG" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty8": [ - { - "startTime": 1710331894813, - "executionTime": 871, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "RQHI382RHNLDBDSY2RC947RRYM", - "type": "trigger_log_entry", - "summary": "Triggered through the website.", - "self": "https://api.pagerduty.com/log_entries/RQHI382RHNLDBDSY2RC947RRYM", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3Z252030C2VEG/log_entries/RQHI382RHNLDBDSY2RC947RRYM", - "created_at": "2024-03-13T12:11:28Z", - "agent": { - "object": true - }, - "channel": { - "object": true - }, - "service": { - "object": true - }, - "incident": { - "object": true - }, - "teams": [ - "json array" - ], - "contexts": [ - "json array" - ], - "event_details": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PagerDuty3": [ - { - "startTime": 1710331895685, - "executionTime": 940, - "source": [ - { - "previousNode": "PagerDuty2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "incident_number": 1673, - "title": "Test", - "description": "Test", - "created_at": "2024-02-14T02:09:08Z", - "updated_at": "2024-02-14T02:09:12Z", - "status": "acknowledged", - "incident_key": "d11eee79ee8048e99aa37675daf7a621", - "service": { - "object": true - }, - "assignments": [ - "json array" - ], - "assigned_via": "escalation_policy", - "last_status_change_at": "2024-02-14T02:09:12Z", - "resolved_at": { - "object": true - }, - "first_trigger_log_entry": { - "object": true - }, - "alert_counts": { - "object": true - }, - "is_mergeable": true, - "escalation_policy": { - "object": true - }, - "teams": [ - "json array" - ], - "pending_actions": [ - "json array" - ], - "acknowledgements": [ - "json array" - ], - "basic_alert_grouping": { - "object": true - }, - "alert_grouping": { - "object": true - }, - "last_status_change_by": { - "object": true - }, - "incidents_responders": [ - "json array" - ], - "responder_requests": [ - "json array" - ], - "subscriber_requests": [ - "json array" - ], - "urgency": "high", - "id": "Q3SVCZJPSB89X4", - "type": "incident", - "summary": "[#1673] Test", - "self": "https://api.pagerduty.com/incidents/Q3SVCZJPSB89X4", - "html_url": "https://dev-nodeqan8n.pagerduty.com/incidents/Q3SVCZJPSB89X4" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "PagerDuty3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:26.876Z", - "stoppedAt": "2024-03-13T12:11:36.625Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/101-snapshot.json b/test-workflows/snapshots/101-snapshot.json deleted file mode 100644 index 3e6b9c9ec6..0000000000 --- a/test-workflows/snapshots/101-snapshot.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994468, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747343994468, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "toBeRenamed": "name" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Rename Keys": [ - { - "startTime": 1747343994468, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "Renamed": "name" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994468, - "executionIndex": 3, - "source": [ - { - "previousNode": "Rename Keys" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "Renamed": "name" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.467Z", - "stoppedAt": "2025-05-15T21:19:54.470Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/103-snapshot.json b/test-workflows/snapshots/103-snapshot.json deleted file mode 100644 index 299c102703..0000000000 --- a/test-workflows/snapshots/103-snapshot.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994471, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747343994471, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 4, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "filename": "filename1747343994475" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Execute Command": [ - { - "startTime": 1747343994475, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set" - } - ], - "hints": [], - "executionTime": 61, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1747343994536, - "executionIndex": 3, - "source": [ - { - "previousNode": "Execute Command" - } - ], - "hints": [], - "executionTime": 14, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "data": "dGVzdAo=", - "directory": "/tmp", - "fileName": "filename1747343994475", - "fileSize": "5 B" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994550, - "executionIndex": 4, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "data": "dGVzdAo=", - "directory": "/tmp", - "fileName": "filename1747343994475", - "fileSize": "5 B" - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Execute Command1": [ - { - "startTime": 1747343994551, - "executionIndex": 5, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 10, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Execute Command1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.471Z", - "stoppedAt": "2025-05-15T21:19:54.561Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/104-snapshot.json b/test-workflows/snapshots/104-snapshot.json deleted file mode 100644 index 55034a49aa..0000000000 --- a/test-workflows/snapshots/104-snapshot.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078143061, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "hints": [], - "startTime": 1738078143061, - "executionTime": 47, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "mimeType": "application/pdf", - "fileType": "pdf", - "fileExtension": "pdf", - "data": "JVBERi0xLjcNJeLjz9MNCjI0IDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDgwOTUzL08gMjYvRSA1NzQyMi9OIDUvVCA4MDQzMS9IIFsgOTE2IDI5NF0+Pg1lbmRvYmoNICAgICAgICAgICAgICAgICAgIA14cmVmDTI0IDMxDTAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMTIxMCAwMDAwMCBuDQowMDAwMDAxMjkxIDAwMDAwIG4NCjAwMDAwMDE0NzEgMDAwMDAgbg0KMDAwMDAwMTYyMiAwMDAwMCBuDQowMDAwMDAyMzE5IDAwMDAwIG4NCjAwMDAwMDM0OTAgMDAwMDAgbg0KMDAwMDAwMzg2MiAwMDAwMCBuDQowMDAwMDEyODc2IDAwMDAwIG4NCjAwMDAwMTM1NjcgMDAwMDAgbg0KMDAwMDAxNDAyMSAwMDAwMCBuDQowMDAwMDE0NjE1IDAwMDAwIG4NCjAwMDAwMTQ2OTEgMDAwMDAgbg0KMDAwMDAxNDc2OSAwMDAwMCBuDQowMDAwMDE1NjczIDAwMDAwIG4NCjAwMDAwMTYzNTAgMDAwMDAgbg0KMDAwMDAxNjY1OCAwMDAwMCBuDQowMDAwMDE3NDMzIDAwMDAwIG4NCjAwMDAwMTgzMDkgMDAwMDAgbg0KMDAwMDAxOTE3MyAwMDAwMCBuDQowMDAwMDE5ODc0IDAwMDAwIG4NCjAwMDAwMjA1MTkgMDAwMDAgbg0KMDAwMDAyMTEzMiAwMDAwMCBuDQowMDAwMDIxODE0IDAwMDAwIG4NCjAwMDAwMjIxNjUgMDAwMDAgbg0KMDAwMDAyNzIxMyAwMDAwMCBuDQowMDAwMDMxMTk2IDAwMDAwIG4NCjAwMDAwMzI5MTQgMDAwMDAgbg0KMDAwMDAzMzE1NiAwMDAwMCBuDQowMDAwMDU3Mzg1IDAwMDAwIG4NCjAwMDAwMDA5MTYgMDAwMDAgbg0KdHJhaWxlcg08PC9TaXplIDU1L1ByZXYgODA0MjIvUm9vdCAyNSAwIFIvSW5mbyAyMyAwIFIvSURbPDYwOUQyNzU5RTI2NkQ5NzIyQjI5RjE5QzBEQzdGM0FGPjxGNDUxQzNGNjQ2QjI0MEQ5QjQyNTFGMjgwNUVFNjU5Rj5dPj4Nc3RhcnR4cmVmDTANJSVFT0YNICAgICAgICAgICAgICAgICAgICAgDTU0IDAgb2JqDTw8L0xlbmd0aCAyMDcvRmlsdGVyL0ZsYXRlRGVjb2RlL0kgMjQyL0wgMjI2L1MgMTQzPj5zdHJlYW0NCnjaYmBgYAaipwysDAw8rgwCDAggABRjZWBh4DjBEMBw7h9DMgODaDKTV4vCViRFCl3JCzKzjUOjfmj2NS5dc9ZDNeoHWCxcx1HkuMOl1WBVjBIdHSDaOC0DRCspuUSA+WwNILIBYTiQJ8TAqOEDpGWAWBasW5WBn1GO8YTIArcHmi+OOLozLmSJYpjD6GFmEMDgfLCQ2Z2tjCtBmEGFIWCBX+fJ/ixeJWazL0B90gugjhRmYNT0A9JMQOwCxOIMjBZaIGcB8TWAAAMAI5wxHQ1lbmRzdHJlYW0NZW5kb2JqDTI1IDAgb2JqDTw8L01ldGFkYXRhIDIyIDAgUi9QYWdlcyAyMSAwIFIvVHlwZS9DYXRhbG9nL1BhZ2VMYWJlbHMgMTkgMCBSPj4NZW5kb2JqDTI2IDAgb2JqDTw8L0Nyb3BCb3hbMCAwIDU5NSA4NDJdL1BhcmVudCAyMSAwIFIvQ29udGVudHNbMzcgMCBSIDQwIDAgUiA0MSAwIFIgNDIgMCBSIDQzIDAgUiA0NCAwIFIgNDUgMCBSIDQ2IDAgUl0vUm90YXRlIDAvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL1Jlc291cmNlcyAyNyAwIFIvVHlwZS9QYWdlPj4NZW5kb2JqDTI3IDAgb2JqDTw8L0ZvbnQ8PC9GMSAyOCAwIFIvRjIgMzggMCBSL0YzIDQ3IDAgUi9GNCAyOSAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dF0vUHJvcGVydGllczw8L01DMSA1MyAwIFI+Pi9FeHRHU3RhdGU8PC9HUzIgMzUgMCBSL0dTMyAzNiAwIFI+Pj4+DWVuZG9iag0yOCAwIG9iag08PC9TdWJ0eXBlL1R5cGUxL0ZvbnREZXNjcmlwdG9yIDMwIDAgUi9MYXN0Q2hhciAyNTIvV2lkdGhzWzIxNyAwIDAgMCAwIDAgMCAwIDM1MiAzNTIgMCAwIDAgMzQyIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDI1NCAwIDAgMCAwIDAgMCA3MDYgNjM3IDY3NiA3NjEgNTgxIDU1NCA3MjcgMCAzNzggMCAwIDU1MSA4ODggNzQwIDc2NiAwIDAgNjU5IDUwNSA2NDEgMCAwIDAgMCA2NTUgMCAwIDAgMCAwIDAgMCA0NjYgNTM0IDQyMiA1NDcgNDM3IDMzMSA0OTIgNTUwIDI5NSAwIDUxMyAyNzggODQzIDU2NiA1MjUgNTQ3IDAgNDA0IDM4MyAzMzkgNTU1IDQ2NSAwIDQ4MiA0NjUgNDQ1IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjE3IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDM0MiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA0MjIgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUyNSAwIDAgMCAwIDAgNTU1XS9CYXNlRm9udC9ETUZKQ0grTWluaW9uUHJvLUJvbGQvRmlyc3RDaGFyIDMyL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9UeXBlL0ZvbnQ+Pg1lbmRvYmoNMjkgMCBvYmoNPDwvU3VidHlwZS9UeXBlMS9Gb250RGVzY3JpcHRvciAzMiAwIFIvTGFzdENoYXIgMjUyL1dpZHRoc1szNDEgMzY2IDQ2OCA0NzcgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyMjcgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDM0NiAzNDYgNTAwIDU4MCAyMjggMzU2IDIyOCAzMzEgNDgwIDQ4MCA0ODAgNDgwIDQ4MCA0ODAgNDgwIDQ4MCA0ODAgNDgwIDIyOCAyMjggNTAwIDU4MCA1MDAgNTAwIDc1MyA2OTEgNTg4IDY2NSA3MzUgNTY4IDUyOSA3MTUgNzY2IDM0MSAzMjkgNjczIDUzOCA4OTEgNzQzIDc0NyA1NjMgNTAwIDYyMSA0NzQgNjE3IDczNiA3MDMgOTcxIDY1NCA2MzQgNjAzIDM0NSA1MDAgMzQ1IDUwMCA1MDAgNTAwIDQzOSA1MDggNDIzIDUyOCA0MjUgMjk2IDQ2OCA1MzQgMjY4IDI1NiA0OTYgMjUzIDgxOSA1NDcgNTEwIDUyNCA1MTEgMzcxIDM2NyAzMDUgNTMxIDQ2MyA2ODUgNDcyIDQ1OSA0MjAgNTAwIDUwMCA1MDAgNTgwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUyMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgMzk4IDQwMSAyMjQgMjIzIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI2OCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDcwMiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAzNDMgNTgwIDUwMCA1MDAgNTAwIDUxMiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDY2MSA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDc0NyA1ODAgNTAwIDUwMCA1MDAgNTAwIDczNiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNDIxIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTEwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTMxXS9CYXNlRm9udC9ETUZKQ0srTWluaW9uUHJvLVJlZ3VsYXIvRmlyc3RDaGFyIDIvVG9Vbmljb2RlIDMzIDAgUi9FbmNvZGluZyAzNCAwIFIvVHlwZS9Gb250Pj4NZW5kb2JqDTMwIDAgb2JqDTw8L1N0ZW1WIDEyOC9Gb250TmFtZS9ETUZKQ0grTWluaW9uUHJvLUJvbGQvRm9udEZpbGUzIDQ4IDAgUi9GbGFncyAyNjIxNzgvRGVzY2VudCAtMjQzL0ZvbnRCQm94Wy0zMTgg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MeuuSh3asP/Ko2WuPsAGI8qYQcHKxtXfFVaWIY0bvDg6JEcOTv9UFw1vyS2Il47PXba/RT6XTXl/1tHj+9d8luNzrV+z7uLcIw0npkLb87dEOxfXI9rzev7+bo5n048Vyu8vXl4YLxWXUZzhF3v8XKVcQRtr2hSviVVy1XP3lO+RnjCxu2eCfE5yRcnEmiUlsBK1orI8pXJqgcTZBds2ACOjeW4+MGvO7pg0Y+6cxRInZu3ddlnqQsQGh9VywE7Akm1Sm5Yu37R7fbI/sBNQuvCn3PzftQu/W8w5Pvv3hIVsv2cuZJdb4NzPwzmBh2s11y3uHyUiPzxEAQIMALQ6CUwKDWVuZHN0cmVhbQ1lbmRvYmoNMzIgMCBvYmoNPDwvU3RlbVYgNzkvRm9udE5hbWUvRE1GSkNLK01pbmlvblByby1SZWd1bGFyL0ZvbnRGaWxlMyAzMSAwIFIvRmxhZ3MgNi9EZXNjZW50IC0yNTYvRm9udEJCb3hbLTI5MCAtMzYwIDE2ODQgOTg5XS9Bc2NlbnQgNzExL0NhcEhlaWdodCA2NzQvWEhlaWdodCA0MzYvVHlwZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAwL1N0ZW1IIDMyL0NoYXJTZXQoL3NwYWNlL2h5cGhlbi9UL3Uvci9rL0ovTS9lL2QvUy9jL2kvdHdvL3plcm8vbmluZS9zZW1pY29sb24vdGhyZWUvcGFyZW5sZWZ0L3BhcmVucmlnaHQvY29sb24vc2l4L29uZS9maXZlL2NvcHlyaWdodC9VZGllcmVzaXMvQi9JZG90YWNjZW50L0EvSy9FL20vYS9sL3MvYXQvdC9iL3BlcmlvZC9nL28vdi9zbGFzaC94L24vZi9oL3cveS9wL2NvbW1hL04vTy9xdW90ZWRibGxlZnQvcXVvdGVkYmxyaWdodC9laWdodC9lbmRhc2gvai9GL2ZvdXIvcGx1XA1zbWludXMvc2V2ZW4vRC9QL2VxdWFsL3ovZG90bGVzc2kvc2NlZGlsbGEvdWRpZXJlc2lzL2dicmV2ZS9jY2VkaWxsYS9vZGllcmVzaXMvQ2NlZGlsbGEvcXVvdGVyaWdodC9PZGllcmVzaXMvWS9HL0kvVS9SL3EvVy9IL0MvZGVncmVlL211bHRpcGx5L211L0wvVi9hc2NpaXRp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ZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc3MDkyLCBGcmkgRmViIDIzIDIwMDcgMTQ6MTY6MTggICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vcG9zdHNjcmlwdDwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4YXBHSW1nPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy9pbWcvIj4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBJbGx1c3RyYXRvciBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDgtMDYtMDlUMTY6MjQ6MzUrMDM6MDA8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOC0wNi0wOVQxNjoyNDozNSswMzowMDwveGFwOk1vZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDgtMDYtMDlUMTY6MjQ6MzUrMDM6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4YXA6VGh1bWJuYWlscz4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eGFwR0ltZzp3aWR0aD4yMDg8L3hhcEdJbWc6d2lkdGg+CiAgICAgICAgICAgICAgICAgIDx4YXBHSW1nOmhlaWdodD4yNTY8L3hhcEdJbWc6aGVpZ2h0PgogICAgICAgICAgICAgICAgICA8eGFwR0ltZzpmb3JtYXQ+SlBFRzwveGFwR0ltZzpmb3JtYXQ+CiAgICAgICAgICAgICAgICAgIDx4YXBHSW1nOmltYWdlPi85ai80QUFRU2taSlJnQUJBZ0VBU0FCSUFBRC83UUFzVUdodmRHOXphRzl3SURNdU1BQTRRa2xOQSswQUFBQUFBQkFBU0FBQUFBRUEmI3hBO0FRQklBQUFBQVFBQi8rNEFEa0ZrYjJKbEFHVEFBQUFBQWYvYkFJUUFCZ1FFQkFVRUJnVUZCZ2tHQlFZSkN3Z0dCZ2dMREFvS0N3b0smI3hBO0RCQU1EQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGYmI3hBO0h4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zi84QUFFUWdCQUFEUUF3RVImI3hBO0FBSVJBUU1SQWYvRUFhSUFBQUFIQVFFQkFRRUFBQUFBQUFBQUFBUUZBd0lHQVFBSENBa0tDd0VBQWdJREFRRUJBUUVBQUFBQUFBQUEmI3hBO0FRQUNBd1FGQmdjSUNRb0xFQUFDQVFNREFnUUNCZ2NEQkFJR0FuTUJBZ01SQkFBRklSSXhRVkVHRTJFaWNZRVVNcEdoQnhXeFFpUEImI3hBO1V0SGhNeFppOENSeWd2RWxRelJUa3FLeVkzUENOVVFuazZPek5oZFVaSFREMHVJSUpvTUpDaGdaaEpSRlJxUzBWdE5WS0JyeTQvUEUmI3hBOzFPVDBaWFdGbGFXMXhkWGw5V1oyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8rQ2s1U1ZscGVZbVomI3hBO3FibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2b1JBQUlDQVFJREJRVUVCUVlFQ0FNRGJRRUFBaEVEQkNFU01VRUZVUk5oSWdaeGdaRXkmI3hBO29iSHdGTUhSNFNOQ0ZWSmljdkV6SkRSRGdoYVNVeVdpWTdMQ0IzUFNOZUpFZ3hkVWt3Z0pDaGdaSmpaRkdpZGtkRlUzOHFPend5Z3AmI3hBOzArUHpoSlNrdE1UVTVQUmxkWVdWcGJYRjFlWDFSbFptZG9hV3ByYkcxdWIyUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8mI3hBOytEbEpXV2w1aVptcHVjblo2ZmtxT2twYWFucUttcXE2eXRycSt2L2FBQXdEQVFBQ0VRTVJBRDhBOVU0cTdGWFlxN0ZYWXE3RlhZcTcmI3hBO0ZYWXE3RlZrOXhCYnd0TmNTTERDZ3E4c2pCVlVlSlkwQXdFZ0N5eWpBeU5BV1dHNnYrYzM1YmFZV1dYV29yaVJkdUZvcjNGVDdOR0cmI3hBO1QvaHNwbHFZRHpkenAvWjNXNWVXTWdmMHZUOSs3SGJqL25KVDh2NG1vbHZxTTQzK0tPR0lEYi9YbFRya0JxNDl4L0h4ZGpEMk4xaDUmI3hBO21BK0ovUkV0Mi84QXprbitYMHBvOEdvd0R4a2hpSS80U1Y4VHE0OXgvSHhXZnNickJ5TUQ4VCttSVpIby93Q2NmNWI2cXlwQnJVVU0mI3hBO3JtbnAzUWUzSVBoeWxDcDl6Wk1hbUI2MDYzVWV6MnR4Ym5HU1A2UHErN2RtRU0wTThTeXd5TExFNHFraUVNcEhpQ05qbHdJTzRkUEsmI3hBO0ppYUlvcjhMRjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3FkeGMyOXRCSmNYRWl3d1JLV2tsa0lWVlUmI3hBO2RTU2RnTUJJQXNzb1FNaUJFV1M4ZDgwL241TmMzLzZFOGhhZStyYWhJU2kzakl6Sld0S3hSRDRuQS9tYWc5aU13OG1xSjJqK1BoK1AmI3hBO2M5bG9mWlVSaDR1cmw0Y082L3ZQVDNEZExyWDhsdnpBODJ5cmYrZk5la2hWdmlXeFFpWjFyMkNxVmdpLzJJYklqVHpsdkw5Yms1UGEmI3hBO1BSNlFjR2t4Zy8wdVgvSGo4YVp2by81RS9scnBxcVcwMXIrVmY5MjNranlFL05GS1IvOEFDNWVOTERyditQSjBXbzlxTmJrL2o0Ui8mI3hBO1JGZnQrMU5QMForVlducUlUYTZIYWdiY1dTMFFrZ2Q2aXBPQStEMTRmc2NYeDlmazN2TkwvVE4vb244cTlTSG9MYWFKZDEyQ0lsbzcmI3hBO1ZJN2NSVUg1WWdZZW5EOWkrUHI4Vy9GbWovcGtvMW44aHZ5MjFKU1k3QjlQbElJOVd6bFpQK0VmMUkvK0Z4T2xqMDIvSG01bW05cWQmI3hBO2JpNXk0eC9TSDZkajlyQ0xyOG5mekk4blN0ZmVSZGNlNWhVOGpZc3dpZHFiME1ia3dTL1RUNVpRZFBPRzhmc2QzRDJoMFdzSEJxOFkmI3hBO2lmNTNQN2ZxQ2IrVWZ6OVZiNGFMNTVzbTBiVWtQcHRkOEdTTGwwL2V4dDhVZGZIZGZrTW5qMVhTWDQ5NC9IdWNUWCt5dnA4WFNTOFMmI3hBO0hkMStCNi9mNzNyOE0wTThTVFF1c3NNaWhvNUVJWldVaW9JSTJJT1pnSU80ZU9sRXhOSFloZmhRN0ZYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZYWXE3RlhZcWd0YTFuVGRGMHk0MVBVNTF0N0syWG5MSzMzQUFkU1NkZ0IxT1JuTVJGbHYwMm1ubW1NY0JjcFBCTG05ODUmI3hBOy9uVHJiV2RsejByeWRaeVZrZGdTcG9kaTlLZXBNUnVFcnhYOFRnRXl5bnkrNTc2R0xUZGk0dUtYN3pVeUg0cnVqNTh5OWEwalFmSW4mI3hBOzViYUE4b2FLd3QxQUYxcUZ3YXpUTjI1TlRreDhFVWZJWmxSakRFTEx5V28xV3I3U3pWdk05SWprUHgzbjV2Sy9PUDhBemtyZVNTU1cmI3hBOzNsUzBXR0ViRFVMc2NwRDdwRDlsZmJrVDhobVBQVXlQTFo2cnM3Mk1pQUphaVZuK2JIbDhUK3F2ZXhTTHl2OEFuVjU1cFBjcmZUMnMmI3hBO2dxSkx5WDZ2QnhKNnBHNVJTUDhBVVhLUkNVOTZKL0htN2FXdDdMME8wZUFTSDgwY1IrZS8ybE9MWC9uR1R6bElnYTUxR3dnSk82cTAmI3hBOzBoQS81RnFLNVorV241T0hrOXROTUQ2WVRQeUg2V3J2L25HWHpuR2hhMjFDd25JT3lGcFl5UjdWakkvSEg4dFB5WEg3YWFZbjFSbVAmI3hBO2tmMHBQSm9INTErUTZ6d0MvdHJTS2xaTGFUNnpiVUhRc2ltUkFQOEFYWEsrR1VOOXc1ZzFYWmV2MlBBWkh2SERMNTdINUZtSGszL24mI3hBO0pXWVBIYStiTFFOR2RqcU5vS01QZVNIb2Zjb1IvcTVkRFVrZlZ1NmZ0SDJNRkdXbmwvbXkvUWYxL042ZHIzbGJ5TitZK2hSM0RHSzcmI3hBO2prVS9VOVV0aVBXaVArUzNzZXFNUG96SWxDR1FXSGw5THJ0VjJkbEkzaWVzVHlQNDd3OG8wN1dmT1A1TmE1SHBXczg5VDhwWGJINnYmI3hBO0tsYUtLN3ZEeXJ3ZGVyUlZvZnh6RmpLV0kwZVg0L0g0dDZ6TnA5TjJ6aU9URjZOUkhuKzN2SGRMK3g3N3BlcVdHcTZmYjZqcDh5M0YmI3hBO25kSUpJSms2TXAvVjRFZHN6NHlFaFllQXo0SjRwbUV4VW84d2lzazFPeFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1SkFCSk4mI3hBO0FOeVRpcjU4OHk2bHFuNXUrZTE4dDZSTTBYbGJTMkwzRnl2MldDbmkwNThTMzJZZ2ZuNDVycHlPV1ZEbCtOMzBQUlljZlpHazhmSUwmI3hBO3p6NUQ5SDZaZko2cnJXcytWUHl6OG5SMGpFTm5hcjZOalpJZjNrOHBGYVZQVXNmaWRqODh5cFNqaWk4cHB0UHFPMDlTZDdsTGVSNkEmI3hBO2Zqa0h6eVc4L2ZtOTVvSUc4VVo2ZkV0cFp4SHg2N21udXpaZytxY3U4dm9sYVRzakI1LzdLWi9Id0QxM1QvS241WGZsVHAwV29hek0mI3hBO2x6cTFLcGN6cUpKM2NmOEFMTkFPWEFlL2J1MlpQQkRIdkxjdkg1ZGZyKzFabUdJY09QdUd3L3pwZGZ4UVliNWsvd0NjbXRabmQ0dkwmI3hBOzJuUldjTmFMY1hmNzJVang0S1ZSVC93V1FscVpIbHM3clIreGVPSXZOTXlQZEhZZlBuOXpDTHo4NS96TnVwQzc2N0xIdlVMQ2tVU2omI3hBOzJvaUwrT1VuSkk5Uzd6SDdPYUdBb1l4OGJQM2x1ei9Pajh6YlIrU2E1TElPNnpKRktEL3dhSDhNUmtrT1JLTW5zNW9aamZHQjdpUjkmI3hBO3haejVaLzV5YTFPSjBpOHg2YkhjdzlHdWJPc2NvOXpHNUtOOUJYTG82cVE1N3VpMXZzWEFpOEV5RDNTM0h6NS9leTNVL0pQNVkvbWwmI3hBO3BzbXFhQlBIYWFwVDQ3bTNVSklybnRkVy93QVBML1cySjdOVEorSERKdkhZdW93ZHBhN3N1WXg1Z1pZKzQ4djgyWDQ5enlXMHZ2UHYmI3hBOzVRK2FHZ2xRaUdRMWtnSkp0THVJYmMwYnhIaVBpWG9mRE1jR1dPWGNYcnNtTFNkcjRMSFB2L2lpZng4QytoYkc4OG8vbWQ1TUplTVgmI3hBO0ZoZERqUGJzUUpyZWRmY1Y0dW5WVDNIc2N6UVk1WS9qWjg3eTQ5UjJacWVkVGp5UFNRL1NDOHM4bDZ6cW41VitlWmZKK3ZTdEo1ZTEmI3hBO0J3MWxka1VSVEllS1RyNEszMlpCMk8vYmZHeHpPS1ZIbCtOL3graDZydExUNCsxZEtOVGhGWm9mVVBkekg2WXZvSE5nK2ZPeFYyS3UmI3hBO3hWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3ZNdno3ODZTYUQ1VEdtV2I4ZFMxc3RicHhQeExBQisrWVUzcWFoQjg4eGRWa29WMy9jOVAmI3hBOzdLOW1qUHFPT1gwWTkvajAvWDhFei9LM3lmYWVTUEpLdGU4WWJ5YVA2N3E4NzdjQ0U1Y0NmQ0pOdm5VOThsZ2h3UnN1TDI1MmhMWGEmI3hBO3IwN3hCNFlEOGQ1L1E4STh3NnJybjVzZm1IRmFXTlZ0V1l3NmZHMWVFRnNwcTh6Z2R5UGliNkI0Wmh5a1p5OTczdWt3WXV5ZEdaVCsmI3hBO3JuTHpsM0Q3aDgzcnZtYnpCNWMvSi95ZmI2Um84S3phdGNLVEFqVTVTU1VvOTFjVTNwWG9QOWlLQWJaTXBERUtIMVBJYUxTWnUyTlMmI3hBO2NtUTFqSFB5SDgyUDQ4M3pacmV1YXJybXBUYWxxdHk5MWVUbXJ5dWUzWlZIUlZIWURZWmhrM3pmU3ROcGNlQ0FoakhERUlIQTVEc1YmI3hBO2RpcnNWVEhRUE1Pc2VYOVRpMVBTYmxyVzdoT3pLZG1IZFhYb3ludURoQkkzRGphdlNZOVJqTU1nNG9uOGJQcEhSdFc4c2ZuSjVLbTAmI3hBOy9VWTF0OVl0Z0RNaTd2Qk5TaXp3azdsRzdqL1luc2N6SWtaWTBmcUg0L0g5ajVycWRQbjdHMVFuQTNqUEx1a1A1cDgvN1hrbms3ekImI3hBO3JmNVdlZjV0TzFRTXRrWkJCcWtJcVZlSTdwUEdPNVVIa3ZpS2p2bU5DWmhMNy94OXoxL2FPa3hkcTZRVHgvVlZ4UG4xaWZ1KzE3ZCsmI3hBO2NQa21Eemg1TmU0c2xXWFVyRkRkNmJLbnhHUmVQSjRsSTZpUmVudlRNdlVRNG84UTZmYzhQN1BkcEhSNm1wYlFsNlplWG44UHV0VC8mI3hBO0FDTjg2TjVrOG1Sd1hMbDlTMGdyYTNMSGNzbFAzTWgrYWloOTFPT21uY2E3bVh0UDJiK1cxSk1mb3llb2ZwSDQ3M29tWkx6anNWZGkmI3hBO3JzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZURYa2YrTnYrY2hGdHBBWk5NOHVBRjBPNi93Q2kwWTFIVGU1a0NuMnpYbjE1Zkw5WDdmdmUmI3hBOzl4bjhsMlB4RDY4MysrLzQ2RS8vQU9jalBOYjZYNVRoMGEzZmpjNnpJVmxwMUZ2RFJwUCtDWXFQbFhMZFZQWUJ3UFpEUURMcURsUDAmI3hBOzR4L3NqeS9TZ2Z5SzBDeDhzZVI3L3dBNmFwUkh1NDNsRG1sVXRJSzdDdmVSMUo5L2h5R0FDTVRNdC90UnFwYXJWUjB1UCtFZ2Y1eC8mI3hBO1VQMHZDdk4zbWUvOHplWWJ6V2IwbjFMbHlZNDZraU9JYkpHdGV5ci9BRnpHSkpObDd2cy9SUTB1R09LUEtQMm5xVW53T2E3RlhZcTcmI3hBO0ZYWXE3RlUrOGorYmIzeXA1bHROWnRTU0ltNDNNSTZTd04vZVJtdmlPbmdhSEpSa1ltdzRIYWVnanE4RXNVdXZMeVBRdmF2K2NndkwmI3hBO2RscmZsYXc4NjZaU1UyNlIrck1vL3ZMTzRvWTJQK283aW4rc2N5ZFJHd0poNG4yVDFrc0dvbHBjbTEzdDNTanorWSs1UFA4QW5IcnomI3hBO1Urc2VTdjBiTzVlNjBSeGIxUFV3UFZvZnVveUQyWEo2V2RnanVjRDJ0MFBnNnJqSDA1QmZ4Ni9yK0xGdkxLRHlUK2Z0N295ZnV0TTEmI3hBO3dONkNEN0lFdzlhS2xmNVpGYU1aVEQwWks2Y3ZueS9RN1hXbjg3MlJITHpuaTUvRFkvWlJlOVpzSGdYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZWc3NpUlJ2STVvaUFzeDYwQUZUMHdFMExURUVtZzhRLzV4dmhOL3FIbWp6RlB2UGRUSWdKMzNrWjVwTi9jbGN3ZElOeVQmI3hBO3pBL0gzUGMrMk12RGhod2psRWZkUUg2V0lmOEFPUWQ5UHFuNWxKcGNacWJPQzN0WTA3ZXBQKzlyOVBxcmxlcGw2ejVPMzlrOFF4YUUmI3hBOzVEL0VaSDREYjlEUC93QStidUx5NytXV25lWGJOaXFYTHcyWUErR3R2YXB5YnA0c3FaZHFQVEFSL0d6ei9zdGpPbzEwczB1bHkrTWomI3hBOy9hK2E4eEgweDJLdXhWMkt1eFYyS3V4VjJLdnBmOG01bDgxL2xCZStYN284Mmcrc2FlT1haSkU5U0p2OWlaS0QvVnpMd2ppeG1QNC8mI3hBO0Z2bVh0Rkg4cDJqSE5Icnd6K1d4Kzc3V0IvOEFPTjJweTJYbnU2MDE2cXQ5YVNLeUhiOTdBd2NiZXk4eGxXbWw2eDUvMnUrOXNjSW4mI3hBO3BJekg4TWg4aitBeWYvbklGVHBQbS95ajVsaitHU0dRbzhuZ0xXWkpsQjl2M2paUFY3U0I4dnVkWjdKbnhkUG53SHFQOTBDUDBCN24mI3hBO21lOEk3RlhZcTdGWFlxN0ZYWXE4Mzg5Zm4xNU84a2E2MmphN1o2akhjK21zMFVzVUVieFN4djBlTmpLdFJVRlR0MUdLc2QvNkcyL0smI3hBO3ovZk9wLzhBU1BIL0FOVnNWZC8wTnQrVm4rK2RULzZSNC84QXF0aXJ2K2h0dnlzLzN6cWYvU1BIL3dCVnNWVUwvd0Q1eW4vTFBVYkcmI3hBOzQwK0NMVWhQZVJQYnhGN2VNTHpsVW92SWlVN1ZPUXlSNG9rZDRiY0V4REpHUjVBZ3BSNVMvTURRZnlYZ3UvTEhuR0s1L1RGMUtMNVImI3hBO1pLazhRZ2RGalNyRjQvaTVSdlVmTEt0UGpNUnZ6ZDc3U2RwNDlabmpMSGZER05iN2IyZjJKWHFPbDNubUhXVy9PQzJpSjhscmNwcU0mI3hBO2hkbFc3K3JXRWl4emdSVlB4VmdZS09YaGxFc01qUGx0YnQ5SjdRYWZGMmQ0Ry9pY0VoeTJzM1gzcGo1czErSDg4WkxPMzhqeFRjdEMmI3hBO0VzbW9KZjhBQzNCRjBVRVJTalNjcWVpOWZETGRUak1xb1c0SHN4MnRnMFp5ZUxmcTRhb1h5dS92Q1EvOUM3L21UL3ZpMS82U0YvcG0mI3hBO040TSs3N3YxdldmNkx0RjN5LzBxMlgvbkh6OHhZbzJsbGp0STQwQlozYTVRS0FPcEpQVEFjTXh6SDNmclRIMnMwWk5BeXY4QXFzQzEmI3hBO2JTLzBiZEcyTjNiWGNpMUR0YXllcWdJL3l3QXJmN0VuS2dYZjZmUDRrZUxobEgrc0srem44MEZoYjNZcWo5RzBnNnBkQzFTN3RyU1YmI3hBO2lBaHU1UFJRay84QUZoSEFmN0lqQVM0K3AxSGhSNGpHVWgvUkYvWnpaMm4vQURqMytZMGlLNlJXam80REt5M0NrRUhjRUVETFJobWUmI3hBO24zZnJkQ2ZhM1JBMFRML1NydjhBb1hmOHlmOEFmRnIvQU5KQy93Qk1QZ3o3dnUvV2ovUmRvdStYK2xaQjVVODFXZjVJQzYwenp2Rk4mI3hBOzYrc2NMbXlXd0NYQ2hJdVNPWEphT2hKSXpKMDJPVWJKMmVROXB1MWNPc25BNHI5SU4yS1N6UXRNdmZKT3JXbjVxNm5HdzhuVEY3cUwmI3hBOzBXVjdsb05TaVlXd01OVkZmM3lGaFhiSzhPR1VaQ3hzSFpkcCswR216NkR3UmZpVkRwMUJGL2NVeTgxK2N0Sy9PMDJ1aCtTb2JqOUkmI3hBOzZaNmw5Y0MrUklJL1JQR0kwY08veGNuWGFuNnNzMU9NeW9oMWZzMTJyaTBlU1p5M1VvOU4rcWVXdi9PV1g1WVIyMFVja2VwdElpS3ImI3hBO3Q5WGpOU0JRbXBseklpS0FCZWRtUVpFaFUvNkcyL0t6L2ZPcC93RFNQSC8xV3lUQjMvUTIzNVdmNzUxUC9wSGovd0NxMkt1LzZHMi8mI3hBO0t6L2ZPcC85SThmL0FGV3hWazNrSDg4L0tQbnJXVzByUXJUVUdtamlhYWVlYUJFaGpRYkRtNGthbkk3QVV4VjZKaXJzVmVlZm5iK1YmI3hBO2x0K1lIbFI3ZUZWVFhiRGxOcEZ3MUI4ZFBpaGMvd0FrdEtleG9lMkt2aFM3dExtenVwclM2aWFDNXQzYUtlR1FGWFIwUEZsWUhvUVImI3hBO2lsU3hWMktyNFpYaG1TVlB0eHNIV3ZpcHFNVmU1ZjhBT1cwYVhIbTd5L3JVUUl0OVIwaVAwMnAxNFRTU2RmSGpNdUtBOUcvSThONWkmI3hBOy93Q2NiOVQwT01lcEpIRnFtbklnb1NIbVJwbDdkYTNBSXJpcnozL25FRFdZclh6M3FtbHlOeC9TTmdXaUg4MGx2SXJVL3dDQWR6OUcmI3hBO0tsOVMrWi9NK2orV2RIbTFiVnBoRmJSQ2lxTjNrYy9aampYOXBtL3oyeUdUSUlDeTVlaTBXVFU1Qmp4aTVIN1BNdmxUOHdmelg4eWUmI3hBO2NiaDQ1cERhYU9HckJwc1RIaFFkREtkdlViNTdEc00xczhobWQzMWZzbnNMQm94WUhGazZ5UDZPNWhXUWQyN0ZYWXE3RldkZmwzK2ImI3hBO3ZtUHlmY0pCemErMFVuOTlwOHJINFI0d3NhOEc5dWg4TytXWThoaHlkRDJ2MkJoMWd2NmN2ODRmcDcvdmZWUGx6ekhwSG1MU0lOVjAmI3hBO3FjVDJrNDJQUmtZZmFSMS9aWmU0ell3bUpDdytVNnpSNU5Qa09QSUtrUHhZOG55Yi93QTVhNnVML3dETXkxMHlHcm5UYkNHSjBGU2YmI3hBO1duZDVhQWU2T21UY2NQU3YrY2ttL1FYNUhhUm9idCsrYVd4c1NvSXFSYlFNN0gzQU1ReFE4Ky81eFZMMk54NTA4d1ZLeDZYcE5XZnMmI3hBO0N4YVlkUVIveDduRlM4SHhTN0ZYWXFpTlAwKzkxRyt0N0N4aGE0dkx1UlliZUJCVm5rYzhWVUQzSnhWOTRmazUrV05uK1gvbEtMVHgmI3hBO3hrMWE3NHo2dmRMKzNOVFpGUDhBSkVEeFg2VDN4UXp2RlhZcTdGWHpUL3psTCtVUE5IOC9hSkQ4YUFMcjF1ZzZyOWxMb0FlR3l5ZlEmI3hBOzM4eHhWOHhZcGRpcnNWZTgvbUtQOFdmODQ2K1RQTTBaOVM1OHVQOEFvdSs4VVNndCtUSDNNTUovMldLRXkvNXc5ODJKYjZ2clBsYWQmI3hBO3dCZlJyZldTbnZKRDhFcWozWkdVL0pjVkxDL00wTjUrVXY1OHRlMjhUQzB0YjBYdHJHdTNxMk4xWG5Hdit3ZDR2bU1Vc2cvTjd6N2UmI3hBO2ViUE5NdytPTFM5T2Q3ZXh0WEJVamlhUEk2bm83a2ZRS0R0bXJ5ejRwVyt1K3p2WmtOTnB3ZWM1Z1NKKzRmQmcyVnUvZGlyc1ZkaXImI3hBO3NWZGlyUHZ5ZC9NSzc4cCtaRWhrRWsrazZpeXhYZHJHQzdCanNrc2FEcXluc09vK2pMY016R1E4M25QYWJzeUdvMHhueW5qQmtENUQmI3hBO21QeDFZNytYRmxlL21oK2V5NnRlUjF0MnZHMWUvVTFaVXQ3ZGdZb2p2OW12cHhkZW1iTjhtWlAvQU01ZmViSTczelJwZmxxQnFycEUmI3hBO0RYRjJCL3Y2NjRsVlArckVpbi9aWW9DaDVWRGVVZjhBbkdMekRyRWhNZDU1dXV2cU5uMjVRbjl5dy80QmJnNHE4RnhTN0ZYWXErcWYmI3hBOytjWFB5aE5qYXA1NzF1Q2w1ZElSb2NEamVPRmhScmdnL3RTRFpQOEFKMy9hR0tIMFZpcnNWZGlyc1ZXWEZ2QmN3U1c5eEdzc0V5TkgmI3hBO0xFNERLeU1LTXJBN0VFR2h4VjhNZm5wK1ZNM2tIelV5MnFzM2wvVWkwMmxUR3A0Q3RYdDJQODBaTzNpdEQxcmlsNXRpcnNWZTQvOEEmI3hBO09PT3NXR3NXWG1MOHNOWWs0MlhtUzNlWFQyWTdKZElsSDRpb3F4VlZrSC9HUEZCZWFhZGVhLzhBbDM1L2p1Q25wYXY1ZnZDc3NSSkMmI3hBO3Y2WktTSlgrU1ZDUlh1cHhTK3BmekJrL0xYelZaZVF2ekN2cHFXY2QvRDZiaFE1ZUpnMGp3enFEMGhtaUhQclQ0aCsxbFdYS0lWYm4mI3hBO2RuOW5aZFhLVWNmT01UTDludktUL256K1Y1ZHBQT21oSUpZSmdKTlZoaStMcVA4QWVsT1BWU1B0L3dEQmVPWXVmRlhxSEl2WmV5M2ImI3hBO2RWcGN1eEgway83bjlYeWVGWmpQZU94VjJLdXhWMkt1eFY3NytSWDVZZm8rTWVkZk1LQ0FSeHRKcHNNM3crbWxEeXVaT1ZPUHcxNFYmI3hBOzdmRjRaazRNZjhaNUQ4VytmKzFIYmZpSDhyaDMzOVJIWCtpUDAvTHZSZjVmWFg1Y2VSL0tYbkh6NXB4SnM1OVJ1U29ZQkc0STFiYTAmI3hBO2g2bWptUUZhL3dBd3Iwekx4WlJNV0hrZTBlejhta3lDR1Q2akVINS9xNVBsNktQekQrWWZuMEtQMzJzK1lMd2xxRDRWTWhxeDlraVQmI3hBO2YyVVpZNEwwZi9uSmJYOU90cnpSUHk4MFZ2OEFjWDVVdFVqbXBUNHJsMFVBTVJzV1NNQW4vS1pzVUI0bmlsMkt2VS95Qy9LV1R6MzUmI3hBO24rczM4Wi93M3BUTEpxREdvRXo5VXRsUCtWMWZ3WDNJeFY5dlJ4eHhSckhHb1NOQUZSRkFDcW9GQUFCMEF4UXV4VjJLdXhWMkt1eFYmI3hBO2pYNWllUk5KODhlVmJ2UWRSSEgxUnp0TGtDclFYQ2crbkt2eUpvUjNGUjN4VjhDZVpmTG1xK1c5ZHZORTFhRXdYOWpJWTVVN0dtNnUmI3hBO3A3cTYwWlQzR0tVc3hWRjZScXQvcEdxV21xYWZLWUwyeWxTZTNsSDdMeHNHSDBiYmpGWHUzNXI2SFkvbWQ1SnRmelU4c1FnNnJheEwmI3hBO2IrYXRPajNkV2lVQXljZHlmVEhmdkhRL3NuRkRFZnlvOHQrWmZOM2xuWHRMMDY0ZVpORmFIVUxiU3p1SGVZUEhONmZnNVZGMjcwcDEmI3hBO3pHMU9NeUZqbzlKN005cHcwdW9QaWJRbUt2dTd2ZzlOL0tYODU1UEx2RHkxNW9ESFNZeVlvYmxsSmt0VFdoamtXbFRHRFh0VmZsMHgmI3hBOzhPYmgyUDB2VDl2ZXpnMUg3L0IvZWN5T2t2TWVmM3NsODlma1BwSG1DTTY5NUt1WUludVI2djFRTURhUzEzNVF1dGVCSjdmWi93QlgmI3hBO0p6MDRJdUhKMW5aZnRUazA1OEhWQW5oMnYrSWU4ZGZ2OTd3N1gvS2ZtVHk5Y0dEV2RQbXNuclJXa1UrbTMrcElLbzNUc2N4aUNEUmUmI3hBOzYwbXZ3YWdYaWtKZmY4dWFVNEhMZGlxY2VYdkovbWJ6RmNDRFJ0T211eVRScEZXa1M5dmprYWlMOUp3Z0VtaHU0V3I3UXdhY1hsbUkmI3hBOy9mOEFMbTl6OGova2JvWGxhSC9FUG5TNmdubXRSNnZvTWFXa0ZOK1VqTlQxR0h5NCt4MnpLaGdFUmMzaGUwL2FmTHFqNE9sQkFsdGYmI3hBOzhSOTNkOS91WWorYkg1dzNmbTJmL0RubHBaUDBSSTZvenFyQ2E4ZXRGVUtQaUVkYVVXbFQzOE1xelp1UGJvN2ZzSDJlanBCNCtldkUmI3hBOyt5SDdmUG84MC9OL3k1NWs4bzZSb09oYWpka1JhZ3NtcXphYXV5UlRta0s4elg0blZGcDdWSUdaV254bU1kK3J5WHRIMm5EVjZqaWgmI3hBOzlFUndnOSs1M1pyK1crazJuNVMvbDlkZm1UNWdpWC9FbXJSRzM4c2FiS1BqVVNDb2RnZHh6SHh0NElLZFdwbVE4KzhDMURVTHpVYismI3hBOzR2NzJWcDd5N2tlYTRtYzFaNUpHTE14UHVUaWxENHFuSGxIeXJxM21yekZaYURwTWZxWGw2L0JTYThVVWJ2STVIUlVVRW5GWDM1NUYmI3hBOzhsNlI1TThzV2VnYVd2N2kyV3NzeEFEelROL2VTdlQ5cGo5d29PZ3hRbitLdXhWMkt1eFYyS3V4VjJLdkZmOEFuSkw4b1I1cjBML0UmI3hBO2Vqd2N2TU9reGt5Um9QaXViVmZpYVAzZVBkaytrZHhpcjQyeFM3RldiZmxSK2FHcStRUE1JdllBYm5TcnVrV3JhY2QxbWhyMUFPd2smI3hBO1NwNEg2T2hPS3ZwUHlEL3lySHl2cnNubTN5N2ZwRjVZODZCWUk0NmNZck85Z0pjeFBYKzZEaVEvQ3crRWorVWlsZVRLSUVYMWN6U2EmI3hBO0RMcUJJNHh4R0FzanJYbDdtUS9tVCtTK2grYjFiVXRQWk5QMXhoeSt0S0t3ejdiZXNxOS84dGQvR3VWWmRPSmJ4NXU0N0c5bzh1ajkmI3hBO0UvWGk3dW85MzZ2dWVLeFhuNXFmbFZxSHBNSmJXMVovN3FRZXRZeis2bjdOVC9rbFc4Y3d3WlFQYzl0TEhvTzFZWHRLWHltUHg4UTkmI3hBO0UwWC9BSnlXMEM4ZytyZVpOSGtoNWpqSzl2eHVJVzl6SEp3WUQyK0xMeHFiRlNGL2p1L2E4N3FmWXpOQThXRElENzlqOHgreEhuelAmI3hBOy93QTQ0YXFwbG5nc0lwRFF1cldVa0RWcWVwU05RVDhpY0psaEkzRmZQOURqL2t1MnNXd015UDY0UDNseSthLytjY3RJQW10b0xDV1UmI3hBO1ZLQkxLU1ovb1o0eUFmbVJnRXNJR3d2NS9wVTZIdHJOdEl6QS9yZ2ZjVXQxei9uSmZScldBMjNsblIza0tqakZKZGNZWVYrVVVaWmkmI3hBO1BhcTRuVTBLaUsvSDQ2dVRwZll6TE04V2ZKWHUzUHpQN1hueGI4MVB6VjFBQ2t0emFxMjIzbzJFSC9HdGZ2YktQVk05NWVoclFkbFEmI3hBOzZSbDg1bjhmQVBiL0FNdC95ZDBIeVpIK2tMdDB2OWFDa3ZmU0RqSEFLZkVJVlAyZmR6djhodG1aaXdDTzU1dkQ5c2UwT2JXbmdqNmMmI3hBO1g4M3FmZjhBcTVNVTg5VGZsaHIydWY4QUt3Zk1GNHQxNWM4cEo5UnRyVUtDdDdxSlByY0VxZjNxcXJMUmVoTlNUd0c5dVBLSlhUcU4mI3hBO1pvTXVtNFJrRlNrTHJxQjV2bXY4MFB6TDFyOHdQTWo2dGY4QTdtMWlCajA2d1ZpeVFRMTZiOVhicTdkejdVR1dPSXcvRld3Q1NBQlUmI3hBO25ZQVlxKzAvK2NkZnlqSGt6eTcrbU5WaDQrWmRYUldtVmg4VnRibWpKQjdNZnRTZTlCK3ppaDYvaXJzVmRpcnNWZGlyc1ZkaXJzVmQmI3hBO2lyNCsvd0NjbVB5aS93QU5hMGZOV2p3Y2RDMVdRL1dva0h3MjEyMVNSUWRJNWVxK0JxUERGTHczRlhZcXlUeU5xTUs2MWE2VHFWN0omI3hBO2E2RnFGeEdsNlZJS1J1UVk0N2dxMjM3b3ZVOStOUlhmSzhtUGpGT3c3TTdSbm84d3l3MzZFZDQ3dngxZlJsdHJuNXBmbEpJdG5xOXYmI3hBOyttL0t5dHhobUJZb2lrN0NPV2hhSTdmWWNVOFBITUlTbmkyNmZaK1B4VDJVOU5vTzFoeFl6NFdmcVAxanI3eHYzdlN2THY1ci9sNTUmI3hBO3R0ZnFyWGNVTTB3cExwdW9oVUo3OGZqckhKL3NTY3lSbmhJVWZ0ZVoxbllXczBrdUxoSkEvaWoremNJZlcveUovTGZWV2FSYkJ0UGwmI3hBO2NmM2xqSVlodjNFYmM0aDlDNG5UUVBMWnMwM3RScmNXM0Z4aitrTCszWS9heFc1LzV4ZjBGaWZxMnQzVVk3Q1NPT1QvQUlqNmVWSFMmI3hBO0hvZnMvYTdXSHR0bS9peHhQeEkvVzNiZjg0ditYMUkrdGExZHlqOW9SUnh4ay9MbDZtSTBoNm43UDJyUDIyemZ3NDRqM2tuOVRLOUYmI3hBOy9JMzh0OUlZVEhUemZTcHVKTDZReWdVOFUrR0w3MXl5T21nT2U3cWRUN1RhM050eGNJL29pdnQ1L2FxZVpmemQvTDd5cGJtMlM2anUmI3hBO3JpRmVNV25hZUZmaVIreVN0STQvcE5mYkdXZUVSUTM5ekhSZGdhelZuaTRURUgrS1g0c3ZOYmpVUHpSL051UXcyc1g2Qzhva24xSmkmI3hBO1dFYklEdnpjOFduSS9sV2krTk91WTVNOHA4dnNlbGppMEhaQXVSOFhVZmFQK0orTzc1djg0NnRGZGF0UFphZmRTM0doV00waWFZSkQmI3hBO1FNbGVKbTREWU5OeDVINkIyR1p1UEdJQ25pKzBkZlBWNWpsbnpQVHVIY2tPV09DN0ZYdm4vT01QNVFqWE5VWHpuclVITFNOT2twcGsmI3hBO0xqNFo3cEQvQUhsRDFTRS9lL3lJeFErdDhWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXFYK1lOQjB2WDlGdk5HMVNFVDZmZlJtS2VNK0ImI3hBOzZFSHN5bWpLZXgzeFY4RGZtWCtYK3FlUlBOZDFvZDhDOFMvdmJDN3BSWjdkaWVFZzk5cU1PekE0cFlyaXJzVmZaSC9PT1g1c1dubTcmI3hBO3kwdmxiV3BGZlh0TWg5SUpMUS9XN1JSeFYvaSsweUQ0WkI4bTdtZ0l2bW9KQnNNbDh6L2tMNUMxdDVKN2VCOUp1M3FUSlprTEdXUGMmI3hBO3dzQ24vQThjeDU2V0o1YlBSNkwycDFlQUFFK0pIK2x6K2ZQNTJ4QmZ5WC9OUFFLanl2NXNyYnJzdHU4azF1S2R2M1k5YUtveW44dE8mI3hBO1BJL0xiOGZOMjU5bzlCcVA4WXdiOTlBL2JzVlFRLzhBT1VGbWhWWkliMENnV3BzSy9PckNNbjZjUU0zbjlqRXk3Q21lUmovcC93QnImI3hBO2piLzg1UDNpaFhtaHNnYWhnRFlBL2Vna1AzSEVqTnkzK3hSUHNLSFF5LzAvN0ZoL0pQOEFNelhpditLdk5wOUEvYWdqZWE0Rk80NE4mI3hBOzZNWUp4L0xUbHpQNmZ4ODJYK2lUUTZmL0FCZkJ2MzBJL2J1V1krVi95SjhnNkU2VHkyemFyZUpRaWE5SWRBUnY4TVFDeC84QUJBNWQmI3hBO0RTeEhQZDAydTlxTlhuMkI4T1BkSDlmTmhuL09TLzVzMjNsenkrL2t6UnBGR3M2bkQ2ZDM2VzMxV3pZVUkyNlBLdndxT3kxTzN3NWsmI3hBO2dVODhTU2JMNUN4VjJLc3gvS3I4dWRSOC9lYmJmUjdibEZaSlNiVTd3Q29odDFQeEh3NXQ5bEI0KzFjVmZlMmo2UnAyamFWYTZWcHMmI3hBO0MyOWhaUkxEYndyMFZFRkI4ejRrOVR2aWhHWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxODgvTzM4ckxiOHdQS2oyOEtxbXUySEsmI3hBO2JTTGhxRDQ2ZkZDNS9rbHBUMk5EMnhWOEtYZHBjMmQxTmFYVVRRWE51N1JUd3lBcTZPaDRzckE5Q0NNVXFXS29yU3RWMUhTZFJ0OVMmI3hBOzAyNGUwdjdSeExiM0VSb3lNTzQvaU8rS3ZycjhwdjhBbkpueTk1amhnMHZ6VkpIbyt2YklMbGp3dExocTBCVmovZE9mNVdOUEE5c1UmI3hBO1BiMVlNQXlrRlNLZ2pvUmlyc1ZkaXJVa2lSbzBrakJJMEJaM1kwQUEzSkpPS3ZDZnphLzV5ZDBQUW9adEo4blNSNnJyUnFqMzYvSGEmI3hBO1c1OFFla3plSEg0ZkVuN09Ldmt2VU5RdnRTdnA3Ky9uZTZ2YnAybHVMaVZpenU3R3BaaWNVb2ZGVVJwK24zdW8zMXZZV01MWEY1ZHkmI3hBO0xEYndJS3M4am5pcWdlNU9LdnZEOG5QeXhzL3kvd0RLVVduampKcTEzeG4xZTZYOXVhbXlLZjVJZ2VLL1NlK0tHZDRxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXErYWYrY3BmeWg1by9uN1JJZmpRQmRldDBIVmZzcGRBRHcyV1Q2Ry9tT0t2bUxGTHNWZGlyTHYmI3hBO0tYNXMvbUg1VFZZdEUxdWVDMVhwWnljWjdjRDJpbERvdit4QU9LdlJySC9uTDc4eG9ZdUYxcDJsM1RDbEpUSE5HeDhlWEdYajl3R0smI3hBOzAxZi9BUE9YdjVqenhjTFhUOUx0R05heWlLYVJoOHVjdkg3MU9LMDgzODIvbW4rWUhtME5IcjJ0VDNOc3hxYk5Dc052dDAvY3hCRU4mI3hBO1BFaXVLc1V4VjJLdXhWOVUvd0RPTG41UW14dFU4OTYzQlM4dWtJME9CeHZIQ3dvMXdRZjJwQnNuK1R2KzBNVVBvckZYWXE3RlhZcTcmI3hBO0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcXN1TGVDNWdrdDdpTlpZSmthT1dKd0dWa1lVWldCMklJTkRpcjRZL1BUOHFadklQbXBsdFYmI3hBO1p2TCtwRnB0S21OVHdGYXZic2Y1b3lkdkZhSHJYRkx6YkZYWXE3RlhZcTdGWFlxN0ZYWXE5VC9JTDhwWlBQZm1mNnpmeG4vRGVsTXMmI3hBO21vTWFnVFAxUzJVLzVYVi9CZmNqRlgyOUhISEZHc2NhaEkwQVZFVUFLcWdVQUFIUURGQzdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZYWXE3RldOZm1KNUUwbnp4NVZ1OUIxRWNmVkhPMHVRS3RCY0tENmNxL0ltaEhjVkhmRlh3SjVsOHVhcjViMTI4MFRWb1QmI3hBO0JmMk1oamxUc2FicTZudXJyUmxQY1lwU3pGWFlxN0ZYWXE3RlhZcW5IbEh5cnEzbXJ6RlphRHBNZnFYbDYvQlNhOFVVYnZJNUhSVVUmI3hBO0VuRlgzNTVGOGw2UjVNOHNXZWdhV3Y3aTJXc3N4QUR6VE4vZVN2VDlwajl3b09neFFuK0t1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjImI3hBO0t1eFYyS3V4VjJLdXhWMkt2RmYrY2t2eWhIbXZRdjhBRWVqd2N2TU9reGt5Um9QaXViVmZpYVAzZVBkaytrZHhpcjQyeFM3RlhZcTcmI3hBO0ZYWXEyQVNRQUtrN0FERlgybi96anIrVVk4bWVYZjB4cXNQSHpMcTZLMHlzUGl0cmMwWklQWmo5cVQzb1AyY1VQWDhWZGlyc1ZkaXImI3hBO3NWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmSDMvT1RINVJmNGExbythdEhnNDZGcXNoK3RSSVBodHJ0cWtpZzYmI3hBO1J5OVY4RFVlR0tYaHVLdXhWMkt1eFY3NS93QTR3L2xDTmMxUmZPZXRRY3RJMDZTbW1RdVBobnVrUDk1UTlVaFAzdjhBSWpGRDYzeFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLcGY1ZzBIUzlmMFc4MGJWSVJQcDk5R1lwNHo0SG8mI3hBO1FlekthTXA3SGZGWHdOK1pmNWY2cDVFODEzV2gzd0x4TCs5c0x1bEZudDJKNFNEMzJvdzdNRGlsaXVLdXhWbVA1VmZsenFQbjd6YmImI3hBOzZQYmNvckpLVGFuZUFWRU51cCtJK0hOdnNvUEgycmlyNzIwZlNOTzBiU3JYU3ROZ1czc0xLSlliZUZlaW9nb1BtZkVucWQ4VUl6RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYbm41Mi9sWmJmbUI1VWUzaFZVMTJ3NVRhUmMmI3hBO05RZkhUNG9YUDhrdEtleG9lMkt2aFM3dExtenVwclM2aWFDNXQzYUtlR1FGWFIwUEZsWUhvUVJpbGZwK24zdW8zMXZZV01MWEY1ZHkmI3hBO0xEYndJS3M4am5pcWdlNU9LdnZEOG5QeXhzL3kvd0RLVVduampKcTEzeG4xZTZYOXVhbXlLZjVJZ2VLL1NlK0tHZDRxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxK2FmOEFuS1g4b2VhUDUrMFNINDBBWFhyZEIxWDcmI3hBO0tYUUE4TmxrK2h2NWppcU0vd0NjWFB5aE5qYXA1NzF1Q2w1ZElSb2NEamVPRmhScmdnL3RTRFpQOG5mOW9ZcStpc1ZkaXJzVmRpcnMmI3hBO1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXF5ZUNDNGdrZ25qV2FDWlRITEZJQXlPakNqS3kmI3hBO25ZZ2pZZzRxM0hISEZHc2NhaEkwQVZFVUFLcWdVQUFIUURGVjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWRDZpSmpwOTBJZVgmI3hBO3Jlay9wY0s4dVhFOGFVNzF4VjgwZmtiWi9ubEYrWStudjVzYnpBZEVFZHg2NDFHVzdlMjVlaTNwOGhLeFN2T2xLOThWUStoMmY1N2omI3hBOzg0cmVTN2J6Ri9ocjlOa3lDU1c3Tm45VCtzR2xWTGVuNlhEdFNsTVZmVStLdXhWMkt1eFYyS3ZIZitja1lQekdtMGJSaDVJT3FDNkYmI3hBO3hLYno5RXZPaitud0hIMVBSS21sZWxjVlIvOEF6anBENTdpOGszcStkVHFKMVU2bEtZZjBxOHp6L1YvUWc0OFRNV2JoejUwN1ZyaXImI3hBOzFQRlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3Rlh5RCtjdjV5L21ib2Y1bTY5cE9rNjlOYTZmYXpJdHZicWtKQ0F3b3hBTEkmI3hBO1QxSjc0cXd6L29ZRDg0ZitwbW4vQU9SY0gvVlBGTlByejhtTmMxWFhmeXgwTFZ0V3VHdTlSdW9wR3VMaGdvTEZaNUZGUW9VZlpVRHAmI3hBO2loTC9BTS92TXV1ZVcveXl2OVcwUzdheTFDS2EyV080UUt4QWVaVllVY01Od2ZERlhuZi9BRGpGK1pQbmZ6WjVnMXEyOHhhckpxRUYmI3hBO3RhUnlRSklzYWhYTW5Fa2NGWHRpckUvejAvT0Q4eWZMMzVxYTNvK2phNU5aNmJhL1ZmUXRrU0VxdnFXY01qVUxJeDNkeWV1S1gwOTUmI3hBO1B2TG05OHBhSmUzVWhsdXJtd3RacDVUUUZwSklWWm1OS0RjbkZERWZ6Kzh5NjU1Yi9MSy8xYlJMdHJMVUlwclpZN2hBckVCNWxWaFImI3hBO3d3M0I4TVZmTEZ0L3prUitjbHZKNmkrWTVIN0ZaSUxXUlNLMTZORWZ3eFRUMkw4blArY25yclhOWnRmTG5uQ0NHTzV2WEVObHF0dVAmI3hBO1RScG1ORVNhTWtnRnpzR1dnclFVNzRvZlJXS3ZGUDhBbko3eno1cjhwYUpvbHg1ZDFGOVBtdXJtV09kNDFSaXlyR0NBZWF0M3hWRWYmI3hBOzg0eWVkZk5IbXp5cnExNTVodjMxQzV0NzcwWVpKRlJTcWVpamNmZ1ZSMUp4VjZaNXd2TG15OHBhM2Uyc2hpdXJhd3Vwb0pSUWxaSTQmI3hBO1daV0ZhallqRlh4TC93QkRBZm5EL3dCVE5QOEE4aTRQK3FlS2FSMmhmbngrYmx4cmVuMjgzbU9kNFpybUdPUkRIQlFxMGdCRzBmY0gmI3hBO0ZEN2p4VlR1YmlHMnRwYm1kZ2tNQ05KSzU2QlVGV1AwQVlxK0Zyci9BSnlFL04yUzVsa2k4eFR4Uk83TkhFSTRLS3BOUW9yR2VneFQmI3hBO1Q3ZjBEVkUxYlF0TzFXT25EVUxXRzZUajBwTkdzZ3Avd1dLRWRpcjVSL1AzODNQekc4dWZtZHFPazZKcmN0bHAwTVZzMFZ1aVJNQVgmI3hBO2dSbTNkR083R3ZYRldiL21qK2F1ditYdnlQOEFLbW9XZDgwZm1mekJhV0RtOEFReWY3ekpQY3loU0N2eE1RcDIvYXhWS2Y4QW5HbnomI3hBO2grWnZuTHpGcUY3cnV0ejNlaWFYQUZhQmtpVlpMaWMwakJLb3BvcXF6YkhyVEZYMGJpcnNWZWZmbnJZMlgvS3F2TTl4OVhqOWY2b1QmI3hBOzYzQmVkZWFqN1ZLNHErY2YrY1VyZUNmODBYU2VOWlUvUnR3ZUxxR0ZlY2ZZNHFYMmJGRkZGR0k0a1dPTmZzb29DZ2ZJREZYbFAvT1UmI3hBO1Ava250VC80ejJuL0FDZlhGWGxQL09HLy9LVStZZjhBbUJpLzVQWXFXRC84NUtmK1RxOHgvd0RSbC8xQVFZcGZaUGtML2xCdkx2OEEmI3hBOzJ6TEwvcUhURkRCUCtjb2YvSlBhbi94bnRQOEFrK3VLdklQK2NSdE4wN1VmTUhtTzIxQzFpdTdaN0NNUERPaXlJUVphR3FzQ01WTHkmI3hBO3pYTk50TFA4enI3VGRDSmUxZzFtUzMwMzB5U2VLM0pXSUl3TzlOZ0QzNjRwZm9WaWg4Ny9BUE9aUC9LT2VYUCtZeWIvQUpOREZVVi8mI3hBO3poei9BTW9Wcm4vYlMvNWtSNHE5OVpWZFNyQU1yQ2pLZHdRZXh4Vjh3LzhBT1pObmFXLytFUHE4RWNQTDlJOHZUVlZyVDZyU3RBUEgmI3hBO0ZReS8vbkU2eHNwdnl3bGxtdDQ1SkJxZHdBN29yTUtSeEVia1lxOXd4VmhuNXk2eWRHL0szek5mS3dWL3FNbHZHeDdQZFV0MUk5K1UmI3hBO29wNzRxK0FRamxDNEI0S1FDM1lFMUlINEhGTDdyLzV4NTFuOUsvbERvRWpOeWx0STVMS1FmeS9WNVdqUWY4aXdweFE5R3hWOFJmOEEmI3hBO09UMy9BSk9QVnY4QWpEYWY5UXlZcENVL20xNXRHc3grVWRKaGs1Mm1nZVh0TnRxQTFIMWlXMWpsbVB6RlVRKzY0cStyZnlBOGwvNFUmI3hBOy9MUFRZSm8rR29ha1AwamZWSHhCNXdDaW4zU0lJcEhqWEZEMGJGWFlxd1Q4OVA4QXlVZm1mL21EUC9FMXhWODMvd0RPSmY4QTVOUi8mI3hBOysyYmMvd0RFNHNVbDlsNG9lVC84NVEvK1NlMVAvalBhZjhuMXhWNVQvd0E0Yi84QUtVK1lmK1lHTC9rOWlwWVAvd0E1S2Y4QWs2dk0mI3hBO2YvUmwvd0JRRUdLWDJUNUMvd0NVRzh1LzlzeXkvd0NvZE1VTUUvNXloLzhBSlBhbi93QVo3VC9rK3VLdmp6UVBNUG1qUlk3NTlDdmImI3hBO214VzRpOUsrbHRTeUV4RTdCblhkUlgzeFM5TS81eGtYOHZUNTZoZnpGTElOZkRqOUFSeUtQcXBuUFFsd2ErdFgrN0REajc4cVlxK3omI3hBOzhVUG5mL25Nbi9sSFBMbi9BREdUZjhtaGlxSy81dzUvNVFyWFArMmwvd0F5SThWZS9ZcStadjhBbk5IL0FLWTcvdDVmOWl1S1F5Ly8mI3hBO0FKeEovd0RKV1RmOXRPNC81Tnc0b2UxWXE4Uy81eTMxbjZuK1d0dnA2bjk1cWQvRkd5K01jS3RLeCtoMVRGWHoxQjVWRGZrUmRlWkEmI3hBO0tTcjVoanQvK2VLMmhxZitSa294Uzl5LzV3NzFreitVTmMwaGlDYkMrUzRYeEMzVVFVRDVjcmRzVVBvREZYeEYvd0E1UGY4QWs0OVcmI3hBOy93Q01OcC8xREppa1BMWUp6RmNSVEZSSVkyVnVEN3FlSkZGSThOcVlxL1NIUWRXdGRZMFRUOVd0UDk1ZFF0b3JtRWRhSk1nZFI5QU8mI3hBO0tFZGlyc1ZZSitlbi9rby9NLzhBekJuL0FJbXVLdm0vL25Fdi93QW1vLzhBMnpibi9pY1dLUyt5OFVQS2YrY24wZHZ5ZDFVcXBJU2UmI3hBOzBMa0N0QjlZUVZQMGtERlhrMy9PRzdML0FJcjh3TFVjallSa0wzSUV3cWZ4eFVzRi93Q2NqNVk1ZnpvOHh0RzNKUTFxaEkvbVN5Z1YmI3hBO2g5REFqRkw3TzhqeHZGNUs4dnh1S09tbTJhc090Q0lFQjZZb1lGL3psRC81SjdVLytNOXAvd0FuMXhWNVAvemg1RkZMNWs4eHhTb3MmI3hBO2tVbGhHc2tiQU1ySzB0Q0NEc1FSaXBlUy9tUEZwZW0vbVBycWVYMldPd3RkUWxOazBCK0JPTDFwR1IyUnRscGlsK2dkaExMTFkyOHMmI3hBO3Uwc2tTTklLVStKbEJPM3p4UStmditjeWYrVWM4dWY4eGszL0FDYUdLb3IvQUp3NS93Q1VLMXovQUxhWC9NaVBGWHYyS3ZtYi9uTkgmI3hBOy9wanYrM2wvMks0cERMLytjU2YvQUNWazMvYlR1UDhBazNEaWg3VmlyNVkvNXpLMWt5YTE1YzBVR2d0cmFlOGNkejlZa0VTMStYMWQmI3hBO3FZcUhpYWVmZk5hZVQzOG5MZWdlWEpKZlhleDlHRGVRT0pPWHE4UFYrMG8vYjl1bUtYckgvT0lHc2kyOCthbnBidFJOUjA4dWc4WkwmI3hBO2VSU0Ivd0FBNzRxWDEzaWg4UmY4NVBmK1RqMWIvakRhZjlReVlwREh2ekIvTDkvSzJpZVQ5U0RGNC9NV2xKZlBKdlQxbll5RlIvcXcmI3hBO3pRZysrS3ZwNy9uRm56UCtsL3l2aXNKSDVYT2lYRWxtd1AydlNZK3RFVDdVa0tEL0FGY1VQWU1WZGlyQnZ6eGplVDhwdk15UnFYZHImI3hBO1FoVlVWSitOZWdHS3ZuUC9BSnhSc3J5SDgwbmVhQ1NOUDBiY0RrNk1vcnpqN2tZcVgyTGlxUmVlZksxdjVyOG82cjVlbmYwMTFHQm8mI3hBO2tscFhoSUtQRTlPL0dSVk5NVmZEVnhhZm1OK1ZubWVRajZ4b21xeGg0VnUwWDkxTkVUdVkzWUZKRWJpRC9hTVVwbitXL3dDV3ZtMzgmI3hBO3kvTnFYRnlseEpwMDAvcjYxclUzTGlWTGNwYVNOOXVWK2lnZk03WXErN1k0NDRvMWpqVUpHZ0NvbzJBQUZBQmloNVovems1RkxMK1UmI3hBO09wSkVqU09aN1NpcUN4Mm5Yc01WZkgyaHllZHJBM01HaC9wRzJlOWpFVjBsbUprYVdPdjJHOVBjclh0aWw2bitUdjhBempsNXAxalcmI3hBOzdUVmZOTmpKcFdnV3NpelBiWFNtTzR1U2hEQ0lRbWpvaC9hWmdOdW5zb2ZZZUt2bnYvbk1PM3VKL0x2bDBReFBLUmR6RWhGTFUvZEQmI3hBO3d4VkZmODRmMjg4SGt2VzFtamVKanFWUUhVcVNQUWo4Y1ZlOVlxK2F2K2N5N1c1bi93QUllaEU4dkg5STh1Q2xxVitxMHJURldYZjgmI3hBOzRuUXpRL2xmTWswYlJ2OEFwTzRQRndWTlBUaTdIRlhzK0t2aVgvbkpPNXZ0Vy9OelZmUmdsbHQ3R09DemlkVVlqNElnejBvTzBqdGkmI3hBO3I2bjAzeVBwNS9MRzI4dkd6aDlkdEZTd1pqR25JeU5haUptSnAxTEdwT0t2a2I4aVo5UzBYODJ2THR5OXRMSEhMY216bDVveWlsMGomI3hBO1FiMUhabkJ4Uys3TVVQaW4vbkpxeHZaZnpnMVY0cmVTUkREYVVaVVpoL3ZPbmNERlhwWDV2ZVZKdFYvNXh2OEFLR29SUXM5NW9kanAmI3hBO2NyS0FTNGltdFk0SkY0OWZ0c2hQeXhWaS93RHppVHJGL3BublhVTkV1SVpZN1hWN1htaFpXQyt2YW5rdlVkNDNreFY5YVlxLy85az08L3hhcEdJbWc6aW1hZ2U+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpBbHQ+CiAgICAgICAgIDwveGFwOlRodW1ibmFpbHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAgICAgIDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6OEI4MThEMEZDNTM3REQxMUJEQjJGMThGM0JGREVDOUY8L3hhcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6OEM4MThEMEZDNTM3REQxMUJEQjJGMThGM0JGREVDOUY8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4YXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwVFBnPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvdC9wZy8iCiAgICAgICAgICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGltZW5zaW9ucyMiCiAgICAgICAgICAgIHhtbG5zOnhhcEc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nLyI+CiAgICAgICAgIDx4YXBUUGc6TWF4UGFnZVNpemUgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3REaW06dz4yMDkuOTk5OTk0PC9zdERpbTp3PgogICAgICAgICAgICA8c3REaW06aD4yOTcuMDAwMDI0PC9zdERpbTpoPgogICAgICAgICAgICA8c3REaW06dW5pdD5NaWxsaW1ldGVyczwvc3REaW06dW5pdD4KICAgICAgICAgPC94YXBUUGc6TWF4UGFnZVNpemU+CiAgICAgICAgIDx4YXBUUGc6TlBhZ2VzPjE8L3hhcFRQZzpOUGFnZXM+CiAgICAgICAgIDx4YXBUUGc6SGFzVmlzaWJsZVRyYW5zcGFyZW5jeT5GYWxzZTwveGFwVFBnOkhhc1Zpc2libGVUcmFuc3BhcmVuY3k+CiAgICAgICAgIDx4YXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD5GYWxzZTwveGFwVFBnOkhhc1Zpc2libGVPdmVycHJpbnQ+CiAgICAgICAgIDx4YXBUUGc6UGxhdGVOYW1lcz4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+TWFnZW50YTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPlllbGxvdzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPkJsYWNrPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94YXBUUGc6UGxhdGVOYW1lcz4KICAgICAgICAgPHhhcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHhhcEc6Z3JvdXBOYW1lPkRlZmF1bHQgU3dhdGNoIEdyb3VwPC94YXBHOmdyb3VwTmFtZT4KICAgICAgICAgICAgICAgICAgPHhhcEc6Z3JvdXBUeXBlPjA8L3hhcEc6Z3JvdXBUeXBlPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3hhcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCg1lbmRzdHJlYW0NZW5kb2JqDTUzIDAgb2JqDTw8L01ldGFkYXRhIDUyIDAgUj4+DWVuZG9iag0xIDAgb2JqDTw8L0Nyb3BCb3hbMCAwIDU5NSA4NDJdL1BhcmVudCAyMSAwIFIvQ29udGVudHMgMyAwIFIvUm90YXRlIDAvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL1Jlc291cmNlcyAyIDAgUi9UeXBlL1BhZ2U+Pg1lbmRvYmoNMiAwIG9iag08PC9Gb250PDwvRjEgMjggMCBSL0YyIDM4IDAgUi9GMyA0NyAwIFIvRjQg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L01UOTcvTVQxMTYvTVQxMjEvTVQ2NS9NVDc4L01UNzkvTVQ3Ni9NVDExOCk+Pg1lbmRvYmoNMTIgMCBvYmoNPDwvRGlmZmVyZW5jZXNbMi9NVDUxL01UNDgvTVQ1MC9NVDUzL01UNDkvTVQ4NS9NVDQ3L01UMTA5L01UMTA4L01UNjYvTVQxMDEvTVQxMDIvTVQxMTEvTVQxMTQvTVQzMi9NVDY5L01UMTIwL01UOTkvTVQxMDUvTVQxMTUvTVQ3My9NVDEwMC9NVDk3L01UMTE2L01UMTIxL01UNjUvTVQ3OC9NVDc5L01UNzYvTVQxMThdL1R5cGUvRW5jb2Rpbmc+Pg1lbmRvYmoNMTMgMCBvYmoNPDwvT1BNIDEvT1AgZmFsc2Uvb3AgZmFsc2UvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9TTSAwLjAwMj4+DWVuZG9iag0xNCAwIG9iag08PC9PUE0gMS9PUCB0cnVlL29wIHRydWUvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9TTSAwLjAwMj4+DWVuZG9iag0xNSAwIG9iag08PC9Dcm9wQm94WzAgMCA1OTUgODQyXS9QYXJlbnQgMjEgMCBSL0NvbnRlbnRzIDE3IDAgUi9Sb3RhdGUgMC9NZWRpYUJveFswIDAgNTk1IDg0Ml0vUmVzb3VyY2VzIDE2IDAgUi9UeXBlL1BhZ2U+Pg1lbmRvYmoNMTYgMCBvYmoNPDwvRm9udDw8L0YxIDI4IDAgUi9GNCAyOSAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dF0vRXh0R1N0YXRlPDwvR1MyIDM1IDAgUi9HUzMgMzYgMCBSPj4+Pg1lbmRvYmoNMTcgMCBvYmoNPDwvTGVuZ3RoIDM0MjIvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0NCmjejFnJdiJHFj3HVd7oK94S9YHojJxTWqF5LrWgXC5bXoSSEESRA52DbPQTvefDvOq9/8ArLfpGDoDUIPvUOUUKksh49713373Bv3c4KdrhJvlmQI7jsACvPc+xmOXYlMkdM/CY7ZNtcmb4FO98oWTHIN82mWGTE9gscKnX/Inb64/rf9Odf54OLBrnO7bFHJM8x2OG45Dtc+YHxC1meIH+0qO+0dQ3Hgx3/nnCidPwcYfzahW82DZzeBCQ53LGrYCG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ZXMvS2lkc1syNiAwIFIgMSAwIFIgNCAwIFIgNyAwIFIgMTUgMCBSXT4+DWVuZG9iag0yMiAwIG9iag08PC9TdWJ0eXBlL1hNTC9MZW5ndGggMzU4MS9UeXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMC1jMzE2IDQ0LjI1MzkyMSwgU3VuIE9jdCAwMSAyMDA2IDE3OjA4OjIzIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA4LjEuMCAoTWFjaW50b3NoKTwvcGRmOlByb2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpPnR1Yml0YWs8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+c2FnLTM5LTMtNC0wOTAyLTIxOnNhZy0wPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDA5LTA2LTI2VDA5OjQ1OjA0KzAzOjAwPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5RdWFya1hQcmVzcyA3LjMxPC94YXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDA5LTA2LTI2VDA5OjQ1OjA0KzAzOjAwPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIj4KICAgICAgICAgPHhhcE1NOkRvY3VtZW50SUQ+dXVpZDozOGViMGFhMC02M2M5LTBjNGYtYTIzZi1mNTE4NzQ1MzQwODI8L3hhcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6MGZmZjg5YzUtY2JjMy0wYjQyLTlhODItNmE2MGE2M2UyNzA4PC94YXBNTTpJbnN0YW5jZUlEPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+DWVuZHN0cmVhbQ1lbmRvYmoNMjMgMCBvYmoNPDwvQ3JlYXRpb25EYXRlKEQ6MjAwOTA2MjYwOTQ1MDQrMDMnMDAnKS9BdXRob3IodHViaXRhaykvQ3JlYXRvcihRdWFya1hQcmVzcyA3LjMxKS9Qcm9kdWNlcihBY3JvYmF0IERpc3RpbGxlciA4LjEuMCBcKE1hY2ludG9zaFwpKS9Nb2REYXRlKEQ6MjAwOTA2MjYwOTQ1MDQrMDMnMDAnKS9UaXRsZShzYWctMzktMy00LTA5MDItMjE6c2FnLTApPj4NZW5kb2JqDXhyZWYNMCAyNA0wMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwNTc0MjIgMDAwMDAgbg0KMDAwMDA1NzU0OSAwMDAwMCBuDQowMDAwMDU3NjczIDAwMDAwIG4NCjAwMDAwNjA2NjIgMDAwMDAgbg0KMDAwMDA2MDc4OSAwMDAwMCBuDQowMDAwMDYwOTEzIDAwMDAwIG4NCjAwMDAwNjM4MDMgMDAwMDAgbg0KMDAwMDA2MzkzMCAwMDAwMCBuDQowMDAwMDY0MDY2IDAwMDAwIG4NCjAwMDAwNjcyMTUgMDAwMDAgbg0KMDAwMDA3MTcxMiAwMDAwMCBuDQowMDAwMDcyMDU0IDAwMDAwIG4NCjAwMDAwNzIyNjcgMDAwMDAgbg0KMDAwMDA3MjM0NCAwMDAwMCBuDQowMDAwMDcyNDE5IDAwMDAwIG4NCjAwMDAwNzI1NDkgMDAwMDAgbg0KMDAwMDA3MjY1NCAwMDAwMCBuDQowMDAwMDc2MTQ2IDAwMDAwIG4NCjAwMDAwNzY0MDQgMDAwMDAgbg0KMDAwMDA3NjQ0MCAwMDAwMCBuDQowMDAwMDc2NDcyIDAwMDAwIG4NCjAwMDAwNzY1NTAgMDAwMDAgbg0KMDAwMDA4MDIwOCAwMDAwMCBuDQp0cmFpbGVyDTw8L1NpemUgMjQ+Pg1zdGFydHhyZWYNMTE2DSUlRU9GDQ==", - "directory": "/tmp", - "fileName": "04-valid.pdf", - "fileSize": "81 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read PDF": [ - { - "hints": [], - "startTime": 1738078143109, - "executionTime": 291, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "binary": { - "data": { - "mimeType": "application/pdf", - "fileType": "pdf", - "fileExtension": "pdf", - "data": "JVBERi0xLjcNJeLjz9MNCjI0IDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDgwOTUzL08gMjYvRSA1NzQyMi9OIDUvVCA4MDQzMS9IIFsgOTE2IDI5NF0+Pg1lbmRvYmoNICAgICAgICAgICAgICAgICAgIA14cmVmDTI0IDMxDTAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMTIxMCAwMDAwMCBuDQowMDAwMDAxMjkxIDAwMDAwIG4NCjAwMDAwMDE0NzEgMDAwMDAgbg0KMDAwMDAwMTYyMiAwMDAwMCBuDQowMDAwMDAyMzE5IDAwMDAwIG4NCjAwMDAwMDM0OTAgMDAwMDAgbg0KMDAwMDAwMzg2MiAwMDAwMCBuDQowMDAwMDEyODc2IDAwMDAwIG4NCjAwMDAwMTM1NjcgMDAwMDAgbg0KMDAwMDAxNDAyMSAwMDAwMCBuDQowMDAwMDE0NjE1IDAwMDAwIG4NCjAwMDAwMTQ2OTEgMDAwMDAgbg0KMDAwMDAxNDc2OSAwMDAwMCBuDQowMDAwMDE1NjczIDAwMDAwIG4NCjAwMDAwMTYzNTAgMDAwMDAgbg0KMDAwMDAxNjY1OCAwMDAwMCBuDQowMDAwMDE3NDMzIDAwMDAwIG4NCjAwMDAwMTgzMDkgMDAwMDAgbg0KMDAwMDAxOTE3MyAwMDAwMCBuDQowMDAwMDE5ODc0IDAwMDAwIG4NCjAwMDAwMjA1MTkgMDAwMDAgbg0KMDAwMDAyMTEzMiAwMDAwMCBuDQowMDAwMDIxODE0IDAwMDAwIG4NCjAwMDAwMjIxNjUgMDAwMDAgbg0KMDAwMDAyNzIxMyAwMDAwMCBuDQowMDAwMDMxMTk2IDAwMDAwIG4NCjAwMDAwMzI5MTQgMDAwMDAgbg0KMDAwMDAzMzE1NiAwMDAwMCBuDQowMDAwMDU3Mzg1IDAwMDAwIG4NCjAwMDAwMDA5MTYgMDAwMDAgbg0KdHJhaWxlcg08PC9TaXplIDU1L1ByZXYgODA0MjIvUm9vdCAyNSAwIFIvSW5mbyAyMyAwIFIvSURbPDYwOUQyNzU5RTI2NkQ5NzIyQjI5RjE5QzBEQzdGM0FGPjxGNDUxQzNGNjQ2QjI0MEQ5QjQyNTFGMjgwNUVFNjU5Rj5dPj4Nc3RhcnR4cmVmDTANJSVFT0YNICAgICAgICAgICAgICAgICAgICAgDTU0IDAgb2JqDTw8L0xlbmd0aCAyMDcvRmlsdGVyL0ZsYXRlRGVjb2RlL0kgMjQyL0wgMjI2L1MgMTQzPj5zdHJlYW0NCnjaYmBgYAaipwysDAw8rgwCDAggABRjZWBh4DjBEMBw7h9DMgODaDKTV4vCViRFCl3JCzKzjUOjfmj2NS5dc9ZDNeoHWCxcx1HkuMOl1WBVjBIdHSDaOC0DRCspuUSA+WwNILIBYTiQJ8TAqOEDpGWAWBasW5WBn1GO8YTIArcHmi+OOLozLmSJYpjD6GFmEMDgfLCQ2Z2tjCtBmEGFIWCBX+fJ/ixeJWazL0B90gugjhRmYNT0A9JMQOwCxOIMjBZaIGcB8TWAAAMAI5wxHQ1lbmRzdHJlYW0NZW5kb2JqDTI1IDAgb2JqDTw8L01ldGFkYXRhIDIyIDAgUi9QYWdlcyAyMSAwIFIvVHlwZS9DYXRhbG9nL1BhZ2VMYWJlbHMgMTkgMCBSPj4NZW5kb2JqDTI2IDAgb2JqDTw8L0Nyb3BCb3hbMCAwIDU5NSA4NDJdL1BhcmVudCAyMSAwIFIvQ29udGVudHNbMzcgMCBSIDQwIDAgUiA0MSAwIFIgNDIgMCBSIDQzIDAgUiA0NCAwIFIgNDUgMCBSIDQ2IDAgUl0vUm90YXRlIDAvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL1Jlc291cmNlcyAyNyAwIFIvVHlwZS9QYWdlPj4NZW5kb2JqDTI3IDAgb2JqDTw8L0ZvbnQ8PC9GMSAyOCAwIFIvRjIgMzggMCBSL0YzIDQ3IDAgUi9GNCAyOSAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dF0vUHJvcGVydGllczw8L01DMSA1MyAwIFI+Pi9FeHRHU3RhdGU8PC9HUzIgMzUgMCBSL0dTMyAzNiAwIFI+Pj4+DWVuZG9iag0yOCAwIG9iag08PC9TdWJ0eXBlL1R5cGUxL0ZvbnREZXNjcmlwdG9yIDMwIDAgUi9MYXN0Q2hhciAyNTIvV2lkdGhzWzIxNyAwIDAgMCAwIDAgMCAwIDM1MiAzNTIgMCAwIDAgMzQyIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDI1NCAwIDAgMCAwIDAgMCA3MDYgNjM3IDY3NiA3NjEgNTgxIDU1NCA3MjcgMCAzNzggMCAwIDU1MSA4ODggNzQwIDc2NiAwIDAgNjU5IDUwNSA2NDEgMCAwIDAgMCA2NTUgMCAwIDAgMCAwIDAgMCA0NjYgNTM0IDQyMiA1NDcgNDM3IDMzMSA0OTIgNTUwIDI5NSAwIDUxMyAyNzggODQzIDU2NiA1MjUgNTQ3IDAgNDA0IDM4MyAzMzkgNTU1IDQ2NSAwIDQ4MiA0NjUgNDQ1IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjE3IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDM0MiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA0MjIgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUyNSAwIDAgMCAwIDAgNTU1XS9CYXNlRm9udC9ETUZKQ0grTWluaW9uUHJvLUJvbGQvRmlyc3RDaGFyIDMyL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9UeXBlL0ZvbnQ+Pg1lbmRvYmoNMjkgMCBvYmoNPDwvU3VidHlwZS9UeXBlMS9Gb250RGVzY3JpcHRvciAzMiAwIFIvTGFzdENoYXIgMjUyL1dpZHRoc1szNDEgMzY2IDQ2OCA0NzcgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyMjcgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDM0NiAzNDYgNTAwIDU4MCAyMjggMzU2IDIyOCAzMzEgNDgwIDQ4MCA0ODAgNDgwIDQ4MCA0ODAgNDgwIDQ4MCA0ODAgNDgwIDIyOCAyMjggNTAwIDU4MCA1MDAgNTAwIDc1MyA2OTEgNTg4IDY2NSA3MzUgNTY4IDUyOSA3MTUgNzY2IDM0MSAzMjkgNjczIDUzOCA4OTEgNzQzIDc0NyA1NjMgNTAwIDYyMSA0NzQgNjE3IDczNiA3MDMgOTcxIDY1NCA2MzQgNjAzIDM0NSA1MDAgMzQ1IDUwMCA1MDAgNTAwIDQzOSA1MDggNDIzIDUyOCA0MjUgMjk2IDQ2OCA1MzQgMjY4IDI1NiA0OTYgMjUzIDgxOSA1NDcgNTEwIDUyNCA1MTEgMzcxIDM2NyAzMDUgNTMxIDQ2MyA2ODUgNDcyIDQ1OSA0MjAgNTAwIDUwMCA1MDAgNTgwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUyMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgMzk4IDQwMSAyMjQgMjIzIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI2OCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDcwMiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAzNDMgNTgwIDUwMCA1MDAgNTAwIDUxMiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDY2MSA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDc0NyA1ODAgNTAwIDUwMCA1MDAgNTAwIDczNiA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNDIxIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTEwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTMxXS9CYXNlRm9udC9ETUZKQ0srTWluaW9uUHJvLVJlZ3VsYXIvRmlyc3RDaGFyIDIvVG9Vbmljb2RlIDMzIDAgUi9FbmNvZGluZyAzNCAwIFIvVHlwZS9Gb250Pj4NZW5kb2JqDTMwIDAgb2JqDTw8L1N0ZW1WIDEyOC9Gb250TmFtZS9ETUZKQ0grTWluaW9uUHJvLUJvbGQvRm9udEZpbGUzIDQ4IDAgUi9GbGFncyAyNjIxNzgvRGVzY2VudCAtMjQzL0ZvbnRCQm94Wy0zMTgg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MeuuSh3asP/Ko2WuPsAGI8qYQcHKxtXfFVaWIY0bvDg6JEcOTv9UFw1vyS2Il47PXba/RT6XTXl/1tHj+9d8luNzrV+z7uLcIw0npkLb87dEOxfXI9rzev7+bo5n048Vyu8vXl4YLxWXUZzhF3v8XKVcQRtr2hSviVVy1XP3lO+RnjCxu2eCfE5yRcnEmiUlsBK1orI8pXJqgcTZBds2ACOjeW4+MGvO7pg0Y+6cxRInZu3ddlnqQsQGh9VywE7Akm1Sm5Yu37R7fbI/sBNQuvCn3PzftQu/W8w5Pvv3hIVsv2cuZJdb4NzPwzmBh2s11y3uHyUiPzxEAQIMALQ6CUwKDWVuZHN0cmVhbQ1lbmRvYmoNMzIgMCBvYmoNPDwvU3RlbVYgNzkvRm9udE5hbWUvRE1GSkNLK01pbmlvblByby1SZWd1bGFyL0ZvbnRGaWxlMyAzMSAwIFIvRmxhZ3MgNi9EZXNjZW50IC0yNTYvRm9udEJCb3hbLTI5MCAtMzYwIDE2ODQgOTg5XS9Bc2NlbnQgNzExL0NhcEhlaWdodCA2NzQvWEhlaWdodCA0MzYvVHlwZS9Gb250RGVzY3JpcHRvci9JdGFsaWNBbmdsZSAwL1N0ZW1IIDMyL0NoYXJTZXQoL3NwYWNlL2h5cGhlbi9UL3Uvci9rL0ovTS9lL2QvUy9jL2kvdHdvL3plcm8vbmluZS9zZW1pY29sb24vdGhyZWUvcGFyZW5sZWZ0L3BhcmVucmlnaHQvY29sb24vc2l4L29uZS9maXZlL2NvcHlyaWdodC9VZGllcmVzaXMvQi9JZG90YWNjZW50L0EvSy9FL20vYS9sL3MvYXQvdC9iL3BlcmlvZC9nL28vdi9zbGFzaC94L24vZi9oL3cveS9wL2NvbW1hL04vTy9xdW90ZWRibGxlZnQvcXVvdGVkYmxyaWdodC9laWdodC9lbmRhc2gvai9GL2ZvdXIvcGx1XA1zbWludXMvc2V2ZW4vRC9QL2VxdWFsL3ovZG90bGVzc2kvc2NlZGlsbGEvdWRpZXJlc2lzL2dicmV2ZS9jY2VkaWxsYS9vZGllcmVzaXMvQ2NlZGlsbGEvcXVvdGVyaWdodC9PZGllcmVzaXMvWS9HL0kvVS9SL3EvVy9IL0MvZGVncmVlL211bHRpcGx5L211L0wvVi9hc2NpaXRp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ZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc3MDkyLCBGcmkgRmViIDIzIDIwMDcgMTQ6MTY6MTggICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vcG9zdHNjcmlwdDwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4YXBHSW1nPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy9pbWcvIj4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBJbGx1c3RyYXRvciBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDgtMDYtMDlUMTY6MjQ6MzUrMDM6MDA8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOC0wNi0wOVQxNjoyNDozNSswMzowMDwveGFwOk1vZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDgtMDYtMDlUMTY6MjQ6MzUrMDM6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4YXA6VGh1bWJuYWlscz4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eGFwR0ltZzp3aWR0aD4yMDg8L3hhcEdJbWc6d2lkdGg+CiAgICAgICAgICAgICAgICAgIDx4YXBHSW1nOmhlaWdodD4yNTY8L3hhcEdJbWc6aGVpZ2h0PgogICAgICAgICAgICAgICAgICA8eGFwR0ltZzpmb3JtYXQ+SlBFRzwveGFwR0ltZzpmb3JtYXQ+CiAgICAgICAgICAgICAgICAgIDx4YXBHSW1nOmltYWdlPi85ai80QUFRU2taSlJnQUJBZ0VBU0FCSUFBRC83UUFzVUdodmRHOXphRzl3SURNdU1BQTRRa2xOQSswQUFBQUFBQkFBU0FBQUFBRUEmI3hBO0FRQklBQUFBQVFBQi8rNEFEa0ZrYjJKbEFHVEFBQUFBQWYvYkFJUUFCZ1FFQkFVRUJnVUZCZ2tHQlFZSkN3Z0dCZ2dMREFvS0N3b0smI3hBO0RCQU1EQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGYmI3hBO0h4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zi84QUFFUWdCQUFEUUF3RVImI3hBO0FBSVJBUU1SQWYvRUFhSUFBQUFIQVFFQkFRRUFBQUFBQUFBQUFBUUZBd0lHQVFBSENBa0tDd0VBQWdJREFRRUJBUUVBQUFBQUFBQUEmI3hBO0FRQUNBd1FGQmdjSUNRb0xFQUFDQVFNREFnUUNCZ2NEQkFJR0FuTUJBZ01SQkFBRklSSXhRVkVHRTJFaWNZRVVNcEdoQnhXeFFpUEImI3hBO1V0SGhNeFppOENSeWd2RWxRelJUa3FLeVkzUENOVVFuazZPek5oZFVaSFREMHVJSUpvTUpDaGdaaEpSRlJxUzBWdE5WS0JyeTQvUEUmI3hBOzFPVDBaWFdGbGFXMXhkWGw5V1oyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8rQ2s1U1ZscGVZbVomI3hBO3FibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2b1JBQUlDQVFJREJRVUVCUVlFQ0FNRGJRRUFBaEVEQkNFU01VRUZVUk5oSWdaeGdaRXkmI3hBO29iSHdGTUhSNFNOQ0ZWSmljdkV6SkRSRGdoYVNVeVdpWTdMQ0IzUFNOZUpFZ3hkVWt3Z0pDaGdaSmpaRkdpZGtkRlUzOHFPend5Z3AmI3hBOzArUHpoSlNrdE1UVTVQUmxkWVdWcGJYRjFlWDFSbFptZG9hV3ByYkcxdWIyUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8mI3hBOytEbEpXV2w1aVptcHVjblo2ZmtxT2twYWFucUttcXE2eXRycSt2L2FBQXdEQVFBQ0VRTVJBRDhBOVU0cTdGWFlxN0ZYWXE3RlhZcTcmI3hBO0ZYWXE3RlZrOXhCYnd0TmNTTERDZ3E4c2pCVlVlSlkwQXdFZ0N5eWpBeU5BV1dHNnYrYzM1YmFZV1dYV29yaVJkdUZvcjNGVDdOR0cmI3hBO1QvaHNwbHFZRHpkenAvWjNXNWVXTWdmMHZUOSs3SGJqL25KVDh2NG1vbHZxTTQzK0tPR0lEYi9YbFRya0JxNDl4L0h4ZGpEMk4xaDUmI3hBO21BK0ovUkV0Mi84QXprbitYMHBvOEdvd0R4a2hpSS80U1Y4VHE0OXgvSHhXZnNickJ5TUQ4VCttSVpIby93Q2NmNWI2cXlwQnJVVU0mI3hBO3JtbnAzUWUzSVBoeWxDcDl6Wk1hbUI2MDYzVWV6MnR4Ym5HU1A2UHErN2RtRU0wTThTeXd5TExFNHFraUVNcEhpQ05qbHdJTzRkUEsmI3hBO0ppYUlvcjhMRjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3FkeGMyOXRCSmNYRWl3d1JLV2tsa0lWVlUmI3hBO2RTU2RnTUJJQXNzb1FNaUJFV1M4ZDgwL241TmMzLzZFOGhhZStyYWhJU2kzakl6Sld0S3hSRDRuQS9tYWc5aU13OG1xSjJqK1BoK1AmI3hBO2M5bG9mWlVSaDR1cmw0Y082L3ZQVDNEZExyWDhsdnpBODJ5cmYrZk5la2hWdmlXeFFpWjFyMkNxVmdpLzJJYklqVHpsdkw5Yms1UGEmI3hBO1BSNlFjR2t4Zy8wdVgvSGo4YVp2by81RS9scnBxcVcwMXIrVmY5MjNranlFL05GS1IvOEFDNWVOTERyditQSjBXbzlxTmJrL2o0Ui8mI3hBO1JGZnQrMU5QMForVlducUlUYTZIYWdiY1dTMFFrZ2Q2aXBPQStEMTRmc2NYeDlmazN2TkwvVE4vb244cTlTSG9MYWFKZDEyQ0lsbzcmI3hBO1ZJN2NSVUg1WWdZZW5EOWkrUHI4Vy9GbWovcGtvMW44aHZ5MjFKU1k3QjlQbElJOVd6bFpQK0VmMUkvK0Z4T2xqMDIvSG01bW05cWQmI3hBO2JpNXk0eC9TSDZkajlyQ0xyOG5mekk4blN0ZmVSZGNlNWhVOGpZc3dpZHFiME1ia3dTL1RUNVpRZFBPRzhmc2QzRDJoMFdzSEJxOFkmI3hBO2lmNTNQN2ZxQ2IrVWZ6OVZiNGFMNTVzbTBiVWtQcHRkOEdTTGwwL2V4dDhVZGZIZGZrTW5qMVhTWDQ5NC9IdWNUWCt5dnA4WFNTOFMmI3hBO0hkMStCNi9mNzNyOE0wTThTVFF1c3NNaWhvNUVJWldVaW9JSTJJT1pnSU80ZU9sRXhOSFloZmhRN0ZYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZYWXE3RlhZcWd0YTFuVGRGMHk0MVBVNTF0N0syWG5MSzMzQUFkU1NkZ0IxT1JuTVJGbHYwMm1ubW1NY0JjcFBCTG05ODUmI3hBOy9uVHJiV2RsejByeWRaeVZrZGdTcG9kaTlLZXBNUnVFcnhYOFRnRXl5bnkrNTc2R0xUZGk0dUtYN3pVeUg0cnVqNTh5OWEwalFmSW4mI3hBOzViYUE4b2FLd3QxQUYxcUZ3YXpUTjI1TlRreDhFVWZJWmxSakRFTEx5V28xV3I3U3pWdk05SWprUHgzbjV2Sy9PUDhBemtyZVNTU1cmI3hBOzNsUzBXR0ViRFVMc2NwRDdwRDlsZmJrVDhobVBQVXlQTFo2cnM3Mk1pQUphaVZuK2JIbDhUK3F2ZXhTTHl2OEFuVjU1cFBjcmZUMnMmI3hBO2dxSkx5WDZ2QnhKNnBHNVJTUDhBVVhLUkNVOTZKL0htN2FXdDdMME8wZUFTSDgwY1IrZS8ybE9MWC9uR1R6bElnYTUxR3dnSk82cTAmI3hBOzBoQS81RnFLNVorV241T0hrOXROTUQ2WVRQeUg2V3J2L25HWHpuR2hhMjFDd25JT3lGcFl5UjdWakkvSEg4dFB5WEg3YWFZbjFSbVAmI3hBO2tmMHBQSm9INTErUTZ6d0MvdHJTS2xaTGFUNnpiVUhRc2ltUkFQOEFYWEsrR1VOOXc1ZzFYWmV2MlBBWkh2SERMNTdINUZtSGszL24mI3hBO0pXWVBIYStiTFFOR2RqcU5vS01QZVNIb2Zjb1IvcTVkRFVrZlZ1NmZ0SDJNRkdXbmwvbXkvUWYxL042ZHIzbGJ5TitZK2hSM0RHSzcmI3hBO2prVS9VOVV0aVBXaVArUzNzZXFNUG96SWxDR1FXSGw5THJ0VjJkbEkzaWVzVHlQNDd3OG8wN1dmT1A1TmE1SHBXczg5VDhwWGJINnYmI3hBO0tsYUtLN3ZEeXJ3ZGVyUlZvZnh6RmpLV0kwZVg0L0g0dDZ6TnA5TjJ6aU9URjZOUkhuKzN2SGRMK3g3N3BlcVdHcTZmYjZqcDh5M0YmI3hBO25kSUpJSms2TXAvVjRFZHN6NHlFaFllQXo0SjRwbUV4VW84d2lzazFPeFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1SkFCSk4mI3hBO0FOeVRpcjU4OHk2bHFuNXUrZTE4dDZSTTBYbGJTMkwzRnl2MldDbmkwNThTMzJZZ2ZuNDVycHlPV1ZEbCtOMzBQUlljZlpHazhmSUwmI3hBO3p6NUQ5SDZaZko2cnJXcytWUHl6OG5SMGpFTm5hcjZOalpJZjNrOHBGYVZQVXNmaWRqODh5cFNqaWk4cHB0UHFPMDlTZDdsTGVSNkEmI3hBO2Zqa0h6eVc4L2ZtOTVvSUc4VVo2ZkV0cFp4SHg2N21udXpaZytxY3U4dm9sYVRzakI1LzdLWi9Id0QxM1QvS241WGZsVHAwV29hek0mI3hBO2x6cTFLcGN6cUpKM2NmOEFMTkFPWEFlL2J1MlpQQkRIdkxjdkg1ZGZyKzFabUdJY09QdUd3L3pwZGZ4UVliNWsvd0NjbXRabmQ0dkwmI3hBOzJuUldjTmFMY1hmNzJVang0S1ZSVC93V1FscVpIbHM3clIreGVPSXZOTXlQZEhZZlBuOXpDTHo4NS96TnVwQzc2N0xIdlVMQ2tVU2omI3hBOzJvaUwrT1VuSkk5Uzd6SDdPYUdBb1l4OGJQM2x1ei9Pajh6YlIrU2E1TElPNnpKRktEL3dhSDhNUmtrT1JLTW5zNW9aamZHQjdpUjkmI3hBO3haejVaLzV5YTFPSjBpOHg2YkhjdzlHdWJPc2NvOXpHNUtOOUJYTG82cVE1N3VpMXZzWEFpOEV5RDNTM0h6NS9leTNVL0pQNVkvbWwmI3hBO3BzbXFhQlBIYWFwVDQ3bTNVSklybnRkVy93QVBML1cySjdOVEorSERKdkhZdW93ZHBhN3N1WXg1Z1pZKzQ4djgyWDQ5enlXMHZ2UHYmI3hBOzVRK2FHZ2xRaUdRMWtnSkp0THVJYmMwYnhIaVBpWG9mRE1jR1dPWGNYcnNtTFNkcjRMSFB2L2lpZng4QytoYkc4OG8vbWQ1TUplTVgmI3hBO0ZoZERqUGJzUUpyZWRmY1Y0dW5WVDNIc2N6UVk1WS9qWjg3eTQ5UjJacWVkVGp5UFNRL1NDOHM4bDZ6cW41VitlWmZKK3ZTdEo1ZTEmI3hBO0J3MWxka1VSVEllS1RyNEszMlpCMk8vYmZHeHpPS1ZIbCtOL3graDZydExUNCsxZEtOVGhGWm9mVVBkekg2WXZvSE5nK2ZPeFYyS3UmI3hBO3hWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3ZNdno3ODZTYUQ1VEdtV2I4ZFMxc3RicHhQeExBQisrWVUzcWFoQjg4eGRWa29WMy9jOVAmI3hBOzdLOW1qUHFPT1gwWTkvajAvWDhFei9LM3lmYWVTUEpLdGU4WWJ5YVA2N3E4NzdjQ0U1Y0NmQ0pOdm5VOThsZ2h3UnN1TDI1MmhMWGEmI3hBO3IwN3hCNFlEOGQ1L1E4STh3NnJybjVzZm1IRmFXTlZ0V1l3NmZHMWVFRnNwcTh6Z2R5UGliNkI0Wmh5a1p5OTczdWt3WXV5ZEdaVCsmI3hBO3JuTHpsM0Q3aDgzcnZtYnpCNWMvSi95ZmI2Um84S3phdGNLVEFqVTVTU1VvOTFjVTNwWG9QOWlLQWJaTXBERUtIMVBJYUxTWnUyTlMmI3hBO2NtUTFqSFB5SDgyUDQ4M3pacmV1YXJybXBUYWxxdHk5MWVUbXJ5dWUzWlZIUlZIWURZWmhrM3pmU3ROcGNlQ0FoakhERUlIQTVEc1YmI3hBO2RpcnNWVEhRUE1Pc2VYOVRpMVBTYmxyVzdoT3pLZG1IZFhYb3ludURoQkkzRGphdlNZOVJqTU1nNG9uOGJQcEhSdFc4c2ZuSjVLbTAmI3hBOy9VWTF0OVl0Z0RNaTd2Qk5TaXp3azdsRzdqL1luc2N6SWtaWTBmcUg0L0g5ajVycWRQbjdHMVFuQTNqUEx1a1A1cDgvN1hrbms3ekImI3hBO3JmNVdlZjV0TzFRTXRrWkJCcWtJcVZlSTdwUEdPNVVIa3ZpS2p2bU5DWmhMNy94OXoxL2FPa3hkcTZRVHgvVlZ4UG4xaWZ1KzE3ZCsmI3hBO2NQa21Eemg1TmU0c2xXWFVyRkRkNmJLbnhHUmVQSjRsSTZpUmVudlRNdlVRNG84UTZmYzhQN1BkcEhSNm1wYlFsNlplWG44UHV0VC8mI3hBO0FDTjg2TjVrOG1Sd1hMbDlTMGdyYTNMSGNzbFAzTWgrYWloOTFPT21uY2E3bVh0UDJiK1cxSk1mb3llb2ZwSDQ3M29tWkx6anNWZGkmI3hBO3JzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZURYa2YrTnYrY2hGdHBBWk5NOHVBRjBPNi93Q2kwWTFIVGU1a0NuMnpYbjE1Zkw5WDdmdmUmI3hBOzl4bjhsMlB4RDY4MysrLzQ2RS8vQU9jalBOYjZYNVRoMGEzZmpjNnpJVmxwMUZ2RFJwUCtDWXFQbFhMZFZQWUJ3UFpEUURMcURsUDAmI3hBOzR4L3NqeS9TZ2Z5SzBDeDhzZVI3L3dBNmFwUkh1NDNsRG1sVXRJSzdDdmVSMUo5L2h5R0FDTVRNdC90UnFwYXJWUjB1UCtFZ2Y1eC8mI3hBO1VQMHZDdk4zbWUvOHplWWJ6V2IwbjFMbHlZNDZraU9JYkpHdGV5ci9BRnpHSkpObDd2cy9SUTB1R09LUEtQMm5xVW53T2E3RlhZcTcmI3hBO0ZYWXE3RlUrOGorYmIzeXA1bHROWnRTU0ltNDNNSTZTd04vZVJtdmlPbmdhSEpSa1ltdzRIYWVnanE4RXNVdXZMeVBRdmF2K2NndkwmI3hBO2RscmZsYXc4NjZaU1UyNlIrck1vL3ZMTzRvWTJQK283aW4rc2N5ZFJHd0poNG4yVDFrc0dvbHBjbTEzdDNTanorWSs1UFA4QW5IcnomI3hBO1Urc2VTdjBiTzVlNjBSeGIxUFV3UFZvZnVveUQyWEo2V2RnanVjRDJ0MFBnNnJqSDA1QmZ4Ni9yK0xGdkxLRHlUK2Z0N295ZnV0TTEmI3hBO3dONkNEN0lFdzlhS2xmNVpGYU1aVEQwWks2Y3ZueS9RN1hXbjg3MlJITHpuaTUvRFkvWlJlOVpzSGdYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZWc3NpUlJ2STVvaUFzeDYwQUZUMHdFMExURUVtZzhRLzV4dmhOL3FIbWp6RlB2UGRUSWdKMzNrWjVwTi9jbGN3ZElOeVQmI3hBO3pBL0gzUGMrMk12RGhod2psRWZkUUg2V0lmOEFPUWQ5UHFuNWxKcGNacWJPQzN0WTA3ZXBQKzlyOVBxcmxlcGw2ejVPMzlrOFF4YUUmI3hBOzVEL0VaSDREYjlEUC93QStidUx5NytXV25lWGJOaXFYTHcyWUErR3R2YXB5YnA0c3FaZHFQVEFSL0d6ei9zdGpPbzEwczB1bHkrTWomI3hBOy9hK2E4eEgweDJLdXhWMkt1eFYyS3V4VjJLdnBmOG01bDgxL2xCZStYN284Mmcrc2FlT1haSkU5U0p2OWlaS0QvVnpMd2ppeG1QNC8mI3hBO0Z2bVh0Rkg4cDJqSE5Icnd6K1d4Kzc3V0IvOEFPTjJweTJYbnU2MDE2cXQ5YVNLeUhiOTdBd2NiZXk4eGxXbWw2eDUvMnUrOXNjSW4mI3hBO3BJekg4TWg4aitBeWYvbklGVHBQbS95ajVsaitHU0dRbzhuZ0xXWkpsQjl2M2paUFY3U0I4dnVkWjdKbnhkUG53SHFQOTBDUDBCN24mI3hBO21lOEk3RlhZcTdGWFlxN0ZYWXE4Mzg5Zm4xNU84a2E2MmphN1o2akhjK21zMFVzVUVieFN4djBlTmpLdFJVRlR0MUdLc2QvNkcyL0smI3hBO3ovZk9wLzhBU1BIL0FOVnNWZC8wTnQrVm4rK2RULzZSNC84QXF0aXJ2K2h0dnlzLzN6cWYvU1BIL3dCVnNWVUwvd0Q1eW4vTFBVYkcmI3hBOzQwK0NMVWhQZVJQYnhGN2VNTHpsVW92SWlVN1ZPUXlSNG9rZDRiY0V4REpHUjVBZ3BSNVMvTURRZnlYZ3UvTEhuR0s1L1RGMUtMNVImI3hBO1pLazhRZ2RGalNyRjQvaTVSdlVmTEt0UGpNUnZ6ZDc3U2RwNDlabmpMSGZER05iN2IyZjJKWHFPbDNubUhXVy9PQzJpSjhscmNwcU0mI3hBO2hkbFc3K3JXRWl4emdSVlB4VmdZS09YaGxFc01qUGx0YnQ5SjdRYWZGMmQ0Ry9pY0VoeTJzM1gzcGo1czErSDg4WkxPMzhqeFRjdEMmI3hBO0VzbW9KZjhBQzNCRjBVRVJTalNjcWVpOWZETGRUak1xb1c0SHN4MnRnMFp5ZUxmcTRhb1h5dS92Q1EvOUM3L21UL3ZpMS82U0YvcG0mI3hBO040TSs3N3YxdldmNkx0RjN5LzBxMlgvbkh6OHhZbzJsbGp0STQwQlozYTVRS0FPcEpQVEFjTXh6SDNmclRIMnMwWk5BeXY4QXFzQzEmI3hBO2JTLzBiZEcyTjNiWGNpMUR0YXllcWdJL3l3QXJmN0VuS2dYZjZmUDRrZUxobEgrc0srem44MEZoYjNZcWo5RzBnNnBkQzFTN3RyU1YmI3hBO2lBaHU1UFJRay84QUZoSEFmN0lqQVM0K3AxSGhSNGpHVWgvUkYvWnpaMm4vQURqMytZMGlLNlJXam80REt5M0NrRUhjRUVETFJobWUmI3hBO24zZnJkQ2ZhM1JBMFRML1NydjhBb1hmOHlmOEFmRnIvQU5KQy93Qk1QZ3o3dnUvV2ovUmRvdStYK2xaQjVVODFXZjVJQzYwenp2Rk4mI3hBOzYrc2NMbXlXd0NYQ2hJdVNPWEphT2hKSXpKMDJPVWJKMmVROXB1MWNPc25BNHI5SU4yS1N6UXRNdmZKT3JXbjVxNm5HdzhuVEY3cUwmI3hBOzBXVjdsb05TaVlXd01OVkZmM3lGaFhiSzhPR1VaQ3hzSFpkcCswR216NkR3UmZpVkRwMUJGL2NVeTgxK2N0Sy9PMDJ1aCtTb2JqOUkmI3hBOzZaNmw5Y0MrUklJL1JQR0kwY08veGNuWGFuNnNzMU9NeW9oMWZzMTJyaTBlU1p5M1VvOU4rcWVXdi9PV1g1WVIyMFVja2VwdElpS3ImI3hBO3Q5WGpOU0JRbXBseklpS0FCZWRtUVpFaFUvNkcyL0t6L2ZPcC93RFNQSC8xV3lUQjMvUTIzNVdmNzUxUC9wSGovd0NxMkt1LzZHMi8mI3hBO0t6L2ZPcC85SThmL0FGV3hWazNrSDg4L0tQbnJXVzByUXJUVUdtamlhYWVlYUJFaGpRYkRtNGthbkk3QVV4VjZKaXJzVmVlZm5iK1YmI3hBO2x0K1lIbFI3ZUZWVFhiRGxOcEZ3MUI4ZFBpaGMvd0FrdEtleG9lMkt2aFM3dExtenVwclM2aWFDNXQzYUtlR1FGWFIwUEZsWUhvUVImI3hBO2lsU3hWMktyNFpYaG1TVlB0eHNIV3ZpcHFNVmU1ZjhBT1cwYVhIbTd5L3JVUUl0OVIwaVAwMnAxNFRTU2RmSGpNdUtBOUcvSThONWkmI3hBOy93Q2NiOVQwT01lcEpIRnFtbklnb1NIbVJwbDdkYTNBSXJpcnozL25FRFdZclh6M3FtbHlOeC9TTmdXaUg4MGx2SXJVL3dDQWR6OUcmI3hBO0tsOVMrWi9NK2orV2RIbTFiVnBoRmJSQ2lxTjNrYy9aampYOXBtL3oyeUdUSUlDeTVlaTBXVFU1Qmp4aTVIN1BNdmxUOHdmelg4eWUmI3hBO2NiaDQ1cERhYU9HckJwc1RIaFFkREtkdlViNTdEc00xczhobWQzMWZzbnNMQm94WUhGazZ5UDZPNWhXUWQyN0ZYWXE3RldkZmwzK2ImI3hBO3ZtUHlmY0pCemErMFVuOTlwOHJINFI0d3NhOEc5dWg4TytXWThoaHlkRDJ2MkJoMWd2NmN2ODRmcDcvdmZWUGx6ekhwSG1MU0lOVjAmI3hBO3FjVDJrNDJQUmtZZmFSMS9aWmU0ell3bUpDdytVNnpSNU5Qa09QSUtrUHhZOG55Yi93QTVhNnVML3dETXkxMHlHcm5UYkNHSjBGU2YmI3hBO1duZDVhQWU2T21UY2NQU3YrY2ttL1FYNUhhUm9idCsrYVd4c1NvSXFSYlFNN0gzQU1ReFE4Ky81eFZMMk54NTA4d1ZLeDZYcE5XZnMmI3hBO0N4YVlkUVIveDduRlM4SHhTN0ZYWXFpTlAwKzkxRyt0N0N4aGE0dkx1UlliZUJCVm5rYzhWVUQzSnhWOTRmazUrV05uK1gvbEtMVHgmI3hBO3hrMWE3NHo2dmRMKzNOVFpGUDhBSkVEeFg2VDN4UXp2RlhZcTdGWHpUL3psTCtVUE5IOC9hSkQ4YUFMcjF1ZzZyOWxMb0FlR3l5ZlEmI3hBOzM4eHhWOHhZcGRpcnNWZTgvbUtQOFdmODQ2K1RQTTBaOVM1OHVQOEFvdSs4VVNndCtUSDNNTUovMldLRXkvNXc5ODJKYjZ2clBsYWQmI3hBO3dCZlJyZldTbnZKRDhFcWozWkdVL0pjVkxDL00wTjUrVXY1OHRlMjhUQzB0YjBYdHJHdTNxMk4xWG5Hdit3ZDR2bU1Vc2cvTjd6N2UmI3hBO2ViUE5NdytPTFM5T2Q3ZXh0WEJVamlhUEk2bm83a2ZRS0R0bXJ5ejRwVyt1K3p2WmtOTnB3ZWM1Z1NKKzRmQmcyVnUvZGlyc1ZkaXImI3hBO3NWZGlyUHZ5ZC9NSzc4cCtaRWhrRWsrazZpeXhYZHJHQzdCanNrc2FEcXluc09vK2pMY016R1E4M25QYWJzeUdvMHhueW5qQmtENUQmI3hBO21QeDFZNytYRmxlL21oK2V5NnRlUjF0MnZHMWUvVTFaVXQ3ZGdZb2p2OW12cHhkZW1iTjhtWlAvQU01ZmViSTczelJwZmxxQnFycEUmI3hBO0RYRjJCL3Y2NjRsVlArckVpbi9aWW9DaDVWRGVVZjhBbkdMekRyRWhNZDU1dXV2cU5uMjVRbjl5dy80QmJnNHE4RnhTN0ZYWXErcWYmI3hBOytjWFB5aE5qYXA1NzF1Q2w1ZElSb2NEamVPRmhScmdnL3RTRFpQOEFKMy9hR0tIMFZpcnNWZGlyc1ZXWEZ2QmN3U1c5eEdzc0V5TkgmI3hBO0xFNERLeU1LTXJBN0VFR2h4VjhNZm5wK1ZNM2tIelV5MnFzM2wvVWkwMmxUR3A0Q3RYdDJQODBaTzNpdEQxcmlsNXRpcnNWZTQvOEEmI3hBO09PT3NXR3NXWG1MOHNOWWs0MlhtUzNlWFQyWTdKZElsSDRpb3F4VlZrSC9HUEZCZWFhZGVhLzhBbDM1L2p1Q25wYXY1ZnZDc3NSSkMmI3hBO3Y2WktTSlgrU1ZDUlh1cHhTK3BmekJrL0xYelZaZVF2ekN2cHFXY2QvRDZiaFE1ZUpnMGp3enFEMGhtaUhQclQ0aCsxbFdYS0lWYm4mI3hBO2RuOW5aZFhLVWNmT01UTDludktUL256K1Y1ZHBQT21oSUpZSmdKTlZoaStMcVA4QWVsT1BWU1B0L3dEQmVPWXVmRlhxSEl2WmV5M2ImI3hBO2RWcGN1eEgway83bjlYeWVGWmpQZU94VjJLdXhWMkt1eFY3NytSWDVZZm8rTWVkZk1LQ0FSeHRKcHNNM3crbWxEeXVaT1ZPUHcxNFYmI3hBOzdmRjRaazRNZjhaNUQ4VytmKzFIYmZpSDhyaDMzOVJIWCtpUDAvTHZSZjVmWFg1Y2VSL0tYbkh6NXB4SnM1OVJ1U29ZQkc0STFiYTAmI3hBO2g2bWptUUZhL3dBd3Iwekx4WlJNV0hrZTBlejhta3lDR1Q2akVINS9xNVBsNktQekQrWWZuMEtQMzJzK1lMd2xxRDRWTWhxeDlraVQmI3hBO2YyVVpZNEwwZi9uSmJYOU90cnpSUHk4MFZ2OEFjWDVVdFVqbXBUNHJsMFVBTVJzV1NNQW4vS1pzVUI0bmlsMkt2VS95Qy9LV1R6MzUmI3hBO24rczM4Wi93M3BUTEpxREdvRXo5VXRsUCtWMWZ3WDNJeFY5dlJ4eHhSckhHb1NOQUZSRkFDcW9GQUFCMEF4UXV4VjJLdXhWMkt1eFYmI3hBO2pYNWllUk5KODhlVmJ2UWRSSEgxUnp0TGtDclFYQ2crbkt2eUpvUjNGUjN4VjhDZVpmTG1xK1c5ZHZORTFhRXdYOWpJWTVVN0dtNnUmI3hBO3A3cTYwWlQzR0tVc3hWRjZScXQvcEdxV21xYWZLWUwyeWxTZTNsSDdMeHNHSDBiYmpGWHUzNXI2SFkvbWQ1SnRmelU4c1FnNnJheEwmI3hBO2IrYXRPajNkV2lVQXljZHlmVEhmdkhRL3NuRkRFZnlvOHQrWmZOM2xuWHRMMDY0ZVpORmFIVUxiU3p1SGVZUEhONmZnNVZGMjcwcDEmI3hBO3pHMU9NeUZqbzlKN005cHcwdW9QaWJRbUt2dTd2ZzlOL0tYODU1UEx2RHkxNW9ESFNZeVlvYmxsSmt0VFdoamtXbFRHRFh0VmZsMHgmI3hBOzhPYmgyUDB2VDl2ZXpnMUg3L0IvZWN5T2t2TWVmM3NsODlma1BwSG1DTTY5NUt1WUludVI2djFRTURhUzEzNVF1dGVCSjdmWi93QlgmI3hBO0p6MDRJdUhKMW5aZnRUazA1OEhWQW5oMnYrSWU4ZGZ2OTd3N1gvS2ZtVHk5Y0dEV2RQbXNuclJXa1UrbTMrcElLbzNUc2N4aUNEUmUmI3hBOzYwbXZ3YWdYaWtKZmY4dWFVNEhMZGlxY2VYdkovbWJ6RmNDRFJ0T211eVRScEZXa1M5dmprYWlMOUp3Z0VtaHU0V3I3UXdhY1hsbUkmI3hBOy9mOEFMbTl6OGova2JvWGxhSC9FUG5TNmdubXRSNnZvTWFXa0ZOK1VqTlQxR0h5NCt4MnpLaGdFUmMzaGUwL2FmTHFqNE9sQkFsdGYmI3hBOzhSOTNkOS91WWorYkg1dzNmbTJmL0RubHBaUDBSSTZvenFyQ2E4ZXRGVUtQaUVkYVVXbFQzOE1xelp1UGJvN2ZzSDJlanBCNCtldkUmI3hBOyt5SDdmUG84MC9OL3k1NWs4bzZSb09oYWpka1JhZ3NtcXphYXV5UlRta0s4elg0blZGcDdWSUdaV254bU1kK3J5WHRIMm5EVjZqaWgmI3hBOzlFUndnOSs1M1pyK1crazJuNVMvbDlkZm1UNWdpWC9FbXJSRzM4c2FiS1BqVVNDb2RnZHh6SHh0NElLZFdwbVE4KzhDMURVTHpVYismI3hBOzR2NzJWcDd5N2tlYTRtYzFaNUpHTE14UHVUaWxENHFuSGxIeXJxM21yekZaYURwTWZxWGw2L0JTYThVVWJ2STVIUlVVRW5GWDM1NUYmI3hBOzhsNlI1TThzV2VnYVd2N2kyV3NzeEFEelROL2VTdlQ5cGo5d29PZ3hRbitLdXhWMkt1eFYyS3V4VjJLdkZmOEFuSkw4b1I1cjBML0UmI3hBO2Vqd2N2TU9reGt5Um9QaXViVmZpYVAzZVBkaytrZHhpcjQyeFM3RldiZmxSK2FHcStRUE1JdllBYm5TcnVrV3JhY2QxbWhyMUFPd2smI3hBO1NwNEg2T2hPS3ZwUHlEL3lySHl2cnNubTN5N2ZwRjVZODZCWUk0NmNZck85Z0pjeFBYKzZEaVEvQ3crRWorVWlsZVRLSUVYMWN6U2EmI3hBO0RMcUJJNHh4R0FzanJYbDdtUS9tVCtTK2grYjFiVXRQWk5QMXhoeSt0S0t3ejdiZXNxOS84dGQvR3VWWmRPSmJ4NXU0N0c5bzh1ajkmI3hBO0UvWGk3dW85MzZ2dWVLeFhuNXFmbFZxSHBNSmJXMVovN3FRZXRZeis2bjdOVC9rbFc4Y3d3WlFQYzl0TEhvTzFZWHRLWHltUHg4UTkmI3hBO0UwWC9BSnlXMEM4ZytyZVpOSGtoNWpqSzl2eHVJVzl6SEp3WUQyK0xMeHFiRlNGL2p1L2E4N3FmWXpOQThXRElENzlqOHgreEhuelAmI3hBOy93QTQ0YXFwbG5nc0lwRFF1cldVa0RWcWVwU05RVDhpY0psaEkzRmZQOURqL2t1MnNXd015UDY0UDNseSthLytjY3RJQW10b0xDV1UmI3hBO1ZLQkxLU1ovb1o0eUFmbVJnRXNJR3d2NS9wVTZIdHJOdEl6QS9yZ2ZjVXQxei9uSmZScldBMjNsblIza0tqakZKZGNZWVYrVVVaWmkmI3hBO1BhcTRuVTBLaUsvSDQ2dVRwZll6TE04V2ZKWHUzUHpQN1hueGI4MVB6VjFBQ2t0emFxMjIzbzJFSC9HdGZ2YktQVk05NWVoclFkbFEmI3hBOzZSbDg1bjhmQVBiL0FNdC95ZDBIeVpIK2tMdDB2OWFDa3ZmU0RqSEFLZkVJVlAyZmR6djhodG1aaXdDTzU1dkQ5c2UwT2JXbmdqNmMmI3hBO1g4M3FmZjhBcTVNVTg5VGZsaHIydWY4QUt3Zk1GNHQxNWM4cEo5UnRyVUtDdDdxSlByY0VxZjNxcXJMUmVoTlNUd0c5dVBLSlhUcU4mI3hBO1pvTXVtNFJrRlNrTHJxQjV2bXY4MFB6TDFyOHdQTWo2dGY4QTdtMWlCajA2d1ZpeVFRMTZiOVhicTdkejdVR1dPSXcvRld3Q1NBQlUmI3hBO25ZQVlxKzAvK2NkZnlqSGt6eTcrbU5WaDQrWmRYUldtVmg4VnRibWpKQjdNZnRTZTlCK3ppaDYvaXJzVmRpcnNWZGlyc1ZkaXJzVmQmI3hBO2lyNCsvd0NjbVB5aS93QU5hMGZOV2p3Y2RDMVdRL1dva0h3MjEyMVNSUWRJNWVxK0JxUERGTHczRlhZcXlUeU5xTUs2MWE2VHFWN0omI3hBO2E2RnFGeEdsNlZJS1J1UVk0N2dxMjM3b3ZVOStOUlhmSzhtUGpGT3c3TTdSbm84d3l3MzZFZDQ3dngxZlJsdHJuNXBmbEpJdG5xOXYmI3hBOyttL0t5dHhobUJZb2lrN0NPV2hhSTdmWWNVOFBITUlTbmkyNmZaK1B4VDJVOU5vTzFoeFl6NFdmcVAxanI3eHYzdlN2THY1ci9sNTUmI3hBO3R0ZnFyWGNVTTB3cExwdW9oVUo3OGZqckhKL3NTY3lSbmhJVWZ0ZVoxbllXczBrdUxoSkEvaWoremNJZlcveUovTGZWV2FSYkJ0UGwmI3hBO2NmM2xqSVlodjNFYmM0aDlDNG5UUVBMWnMwM3RScmNXM0Z4aitrTCszWS9heFc1LzV4ZjBGaWZxMnQzVVk3Q1NPT1QvQUlqNmVWSFMmI3hBO0hvZnMvYTdXSHR0bS9peHhQeEkvVzNiZjg0ditYMUkrdGExZHlqOW9SUnh4ay9MbDZtSTBoNm43UDJyUDIyemZ3NDRqM2tuOVRLOUYmI3hBOy9JMzh0OUlZVEhUemZTcHVKTDZReWdVOFUrR0w3MXl5T21nT2U3cWRUN1RhM050eGNJL29pdnQ1L2FxZVpmemQvTDd5cGJtMlM2anUmI3hBO3JpRmVNV25hZUZmaVIreVN0STQvcE5mYkdXZUVSUTM5ekhSZGdhelZuaTRURUgrS1g0c3ZOYmpVUHpSL051UXcyc1g2Qzhva24xSmkmI3hBO1dFYklEdnpjOFduSS9sV2krTk91WTVNOHA4dnNlbGppMEhaQXVSOFhVZmFQK0orTzc1djg0NnRGZGF0UFphZmRTM0doV00waWFZSkQmI3hBO1FNbGVKbTREWU5OeDVINkIyR1p1UEdJQ25pKzBkZlBWNWpsbnpQVHVIY2tPV09DN0ZYdm4vT01QNVFqWE5VWHpuclVITFNOT2twcGsmI3hBO0xqNFo3cEQvQUhsRDFTRS9lL3lJeFErdDhWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXFYK1lOQjB2WDlGdk5HMVNFVDZmZlJtS2VNK0ImI3hBOzZFSHN5bWpLZXgzeFY4RGZtWCtYK3FlUlBOZDFvZDhDOFMvdmJDN3BSWjdkaWVFZzk5cU1PekE0cFlyaXJzVmZaSC9PT1g1c1dubTcmI3hBO3kwdmxiV3BGZlh0TWg5SUpMUS9XN1JSeFYvaSsweUQ0WkI4bTdtZ0l2bW9KQnNNbDh6L2tMNUMxdDVKN2VCOUp1M3FUSlprTEdXUGMmI3hBO3dzQ24vQThjeDU2V0o1YlBSNkwycDFlQUFFK0pIK2x6K2ZQNTJ4QmZ5WC9OUFFLanl2NXNyYnJzdHU4azF1S2R2M1k5YUtveW44dE8mI3hBO1BJL0xiOGZOMjU5bzlCcVA4WXdiOTlBL2JzVlFRLzhBT1VGbWhWWkliMENnV3BzSy9PckNNbjZjUU0zbjlqRXk3Q21lUmovcC93QnImI3hBO2piLzg1UDNpaFhtaHNnYWhnRFlBL2Vna1AzSEVqTnkzK3hSUHNLSFF5LzAvN0ZoL0pQOEFNelhpditLdk5wOUEvYWdqZWE0Rk80NE4mI3hBOzZNWUp4L0xUbHpQNmZ4ODJYK2lUUTZmL0FCZkJ2MzBJL2J1V1krVi95SjhnNkU2VHkyemFyZUpRaWE5SWRBUnY4TVFDeC84QUJBNWQmI3hBO0RTeEhQZDAydTlxTlhuMkI4T1BkSDlmTmhuL09TLzVzMjNsenkrL2t6UnBGR3M2bkQ2ZDM2VzMxV3pZVUkyNlBLdndxT3kxTzN3NWsmI3hBO2dVODhTU2JMNUN4VjJLc3gvS3I4dWRSOC9lYmJmUjdibEZaSlNiVTd3Q29odDFQeEh3NXQ5bEI0KzFjVmZlMmo2UnAyamFWYTZWcHMmI3hBO0MyOWhaUkxEYndyMFZFRkI4ejRrOVR2aWhHWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxODgvTzM4ckxiOHdQS2oyOEtxbXUySEsmI3hBO2JTTGhxRDQ2ZkZDNS9rbHBUMk5EMnhWOEtYZHBjMmQxTmFYVVRRWE51N1JUd3lBcTZPaDRzckE5Q0NNVXFXS29yU3RWMUhTZFJ0OVMmI3hBOzAyNGUwdjdSeExiM0VSb3lNTzQvaU8rS3ZycjhwdjhBbkpueTk1amhnMHZ6VkpIbyt2YklMbGp3dExocTBCVmovZE9mNVdOUEE5c1UmI3hBO1BiMVlNQXlrRlNLZ2pvUmlyc1ZkaXJVa2lSbzBrakJJMEJaM1kwQUEzSkpPS3ZDZnphLzV5ZDBQUW9adEo4blNSNnJyUnFqMzYvSGEmI3hBO1c1OFFla3plSEg0ZkVuN09Ldmt2VU5RdnRTdnA3Ky9uZTZ2YnAybHVMaVZpenU3R3BaaWNVb2ZGVVJwK24zdW8zMXZZV01MWEY1ZHkmI3hBO0xEYndJS3M4am5pcWdlNU9LdnZEOG5QeXhzL3kvd0RLVVduampKcTEzeG4xZTZYOXVhbXlLZjVJZ2VLL1NlK0tHZDRxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXErYWYrY3BmeWg1by9uN1JJZmpRQmRldDBIVmZzcGRBRHcyV1Q2Ry9tT0t2bUxGTHNWZGlyTHYmI3hBO0tYNXMvbUg1VFZZdEUxdWVDMVhwWnljWjdjRDJpbERvdit4QU9LdlJySC9uTDc4eG9ZdUYxcDJsM1RDbEpUSE5HeDhlWEdYajl3R0smI3hBOzAxZi9BUE9YdjVqenhjTFhUOUx0R05heWlLYVJoOHVjdkg3MU9LMDgzODIvbW4rWUhtME5IcjJ0VDNOc3hxYk5Dc052dDAvY3hCRU4mI3hBO1BFaXVLc1V4VjJLdXhWOVUvd0RPTG41UW14dFU4OTYzQlM4dWtJME9CeHZIQ3dvMXdRZjJwQnNuK1R2KzBNVVBvckZYWXE3RlhZcTcmI3hBO0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcXN1TGVDNWdrdDdpTlpZSmthT1dKd0dWa1lVWldCMklJTkRpcjRZL1BUOHFadklQbXBsdFYmI3hBO1p2TCtwRnB0S21OVHdGYXZic2Y1b3lkdkZhSHJYRkx6YkZYWXE3RlhZcTdGWFlxN0ZYWXE5VC9JTDhwWlBQZm1mNnpmeG4vRGVsTXMmI3hBO21vTWFnVFAxUzJVLzVYVi9CZmNqRlgyOUhISEZHc2NhaEkwQVZFVUFLcWdVQUFIUURGQzdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZYWXE3RldOZm1KNUUwbnp4NVZ1OUIxRWNmVkhPMHVRS3RCY0tENmNxL0ltaEhjVkhmRlh3SjVsOHVhcjViMTI4MFRWb1QmI3hBO0JmMk1oamxUc2FicTZudXJyUmxQY1lwU3pGWFlxN0ZYWXE3RlhZcW5IbEh5cnEzbXJ6RlphRHBNZnFYbDYvQlNhOFVVYnZJNUhSVVUmI3hBO0VuRlgzNTVGOGw2UjVNOHNXZWdhV3Y3aTJXc3N4QUR6VE4vZVN2VDlwajl3b09neFFuK0t1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjImI3hBO0t1eFYyS3V4VjJLdXhWMkt2RmYrY2t2eWhIbXZRdjhBRWVqd2N2TU9reGt5Um9QaXViVmZpYVAzZVBkaytrZHhpcjQyeFM3RlhZcTcmI3hBO0ZYWXEyQVNRQUtrN0FERlgybi96anIrVVk4bWVYZjB4cXNQSHpMcTZLMHlzUGl0cmMwWklQWmo5cVQzb1AyY1VQWDhWZGlyc1ZkaXImI3hBO3NWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmSDMvT1RINVJmNGExbythdEhnNDZGcXNoK3RSSVBodHJ0cWtpZzYmI3hBO1J5OVY4RFVlR0tYaHVLdXhWMkt1eFY3NS93QTR3L2xDTmMxUmZPZXRRY3RJMDZTbW1RdVBobnVrUDk1UTlVaFAzdjhBSWpGRDYzeFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLcGY1ZzBIUzlmMFc4MGJWSVJQcDk5R1lwNHo0SG8mI3hBO1FlekthTXA3SGZGWHdOK1pmNWY2cDVFODEzV2gzd0x4TCs5c0x1bEZudDJKNFNEMzJvdzdNRGlsaXVLdXhWbVA1VmZsenFQbjd6YmImI3hBOzZQYmNvckpLVGFuZUFWRU51cCtJK0hOdnNvUEgycmlyNzIwZlNOTzBiU3JYU3ROZ1czc0xLSlliZUZlaW9nb1BtZkVucWQ4VUl6RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYbm41Mi9sWmJmbUI1VWUzaFZVMTJ3NVRhUmMmI3hBO05RZkhUNG9YUDhrdEtleG9lMkt2aFM3dExtenVwclM2aWFDNXQzYUtlR1FGWFIwUEZsWUhvUVJpbGZwK24zdW8zMXZZV01MWEY1ZHkmI3hBO0xEYndJS3M4am5pcWdlNU9LdnZEOG5QeXhzL3kvd0RLVVduampKcTEzeG4xZTZYOXVhbXlLZjVJZ2VLL1NlK0tHZDRxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxK2FmOEFuS1g4b2VhUDUrMFNINDBBWFhyZEIxWDcmI3hBO0tYUUE4TmxrK2h2NWppcU0vd0NjWFB5aE5qYXA1NzF1Q2w1ZElSb2NEamVPRmhScmdnL3RTRFpQOG5mOW9ZcStpc1ZkaXJzVmRpcnMmI3hBO1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXF5ZUNDNGdrZ25qV2FDWlRITEZJQXlPakNqS3kmI3hBO25ZZ2pZZzRxM0hISEZHc2NhaEkwQVZFVUFLcWdVQUFIUURGVjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWRDZpSmpwOTBJZVgmI3hBO3Jlay9wY0s4dVhFOGFVNzF4VjgwZmtiWi9ubEYrWStudjVzYnpBZEVFZHg2NDFHVzdlMjVlaTNwOGhLeFN2T2xLOThWUStoMmY1N2omI3hBOzg0cmVTN2J6Ri9ocjlOa3lDU1c3Tm45VCtzR2xWTGVuNlhEdFNsTVZmVStLdXhWMkt1eFYyS3ZIZitja1lQekdtMGJSaDVJT3FDNkYmI3hBO3hLYno5RXZPaitud0hIMVBSS21sZWxjVlIvOEF6anBENTdpOGszcStkVHFKMVU2bEtZZjBxOHp6L1YvUWc0OFRNV2JoejUwN1ZyaXImI3hBOzFQRlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3Rlh5RCtjdjV5L21ib2Y1bTY5cE9rNjlOYTZmYXpJdHZicWtKQ0F3b3hBTEkmI3hBO1QxSjc0cXd6L29ZRDg0ZitwbW4vQU9SY0gvVlBGTlByejhtTmMxWFhmeXgwTFZ0V3VHdTlSdW9wR3VMaGdvTEZaNUZGUW9VZlpVRHAmI3hBO2loTC9BTS92TXV1ZVcveXl2OVcwUzdheTFDS2EyV080UUt4QWVaVllVY01Od2ZERlhuZi9BRGpGK1pQbmZ6WjVnMXEyOHhhckpxRUYmI3hBO3RhUnlRSklzYWhYTW5Fa2NGWHRpckUvejAvT0Q4eWZMMzVxYTNvK2phNU5aNmJhL1ZmUXRrU0VxdnFXY01qVUxJeDNkeWV1S1gwOTUmI3hBO1B2TG05OHBhSmUzVWhsdXJtd3RacDVUUUZwSklWWm1OS0RjbkZERWZ6Kzh5NjU1Yi9MSy8xYlJMdHJMVUlwclpZN2hBckVCNWxWaFImI3hBO3d3M0I4TVZmTEZ0L3prUitjbHZKNmkrWTVIN0ZaSUxXUlNLMTZORWZ3eFRUMkw4blArY25yclhOWnRmTG5uQ0NHTzV2WEVObHF0dVAmI3hBO1RScG1ORVNhTWtnRnpzR1dnclFVNzRvZlJXS3ZGUDhBbko3eno1cjhwYUpvbHg1ZDFGOVBtdXJtV09kNDFSaXlyR0NBZWF0M3hWRWYmI3hBOzg0eWVkZk5IbXp5cnExNTVodjMxQzV0NzcwWVpKRlJTcWVpamNmZ1ZSMUp4VjZaNXd2TG15OHBhM2Uyc2hpdXJhd3Vwb0pSUWxaSTQmI3hBO1daV0ZhallqRlh4TC93QkRBZm5EL3dCVE5QOEE4aTRQK3FlS2FSMmhmbngrYmx4cmVuMjgzbU9kNFpybUdPUkRIQlFxMGdCRzBmY0gmI3hBO0ZEN2p4VlR1YmlHMnRwYm1kZ2tNQ05KSzU2QlVGV1AwQVlxK0Zyci9BSnlFL04yUzVsa2k4eFR4Uk83TkhFSTRLS3BOUW9yR2VneFQmI3hBO1Q3ZjBEVkUxYlF0TzFXT25EVUxXRzZUajBwTkdzZ3Avd1dLRWRpcjVSL1AzODNQekc4dWZtZHFPazZKcmN0bHAwTVZzMFZ1aVJNQVgmI3hBO2dSbTNkR083R3ZYRldiL21qK2F1ditYdnlQOEFLbW9XZDgwZm1mekJhV0RtOEFReWY3ekpQY3loU0N2eE1RcDIvYXhWS2Y4QW5HbnomI3hBO2grWnZuTHpGcUY3cnV0ejNlaWFYQUZhQmtpVlpMaWMwakJLb3BvcXF6YkhyVEZYMGJpcnNWZWZmbnJZMlgvS3F2TTl4OVhqOWY2b1QmI3hBOzYzQmVkZWFqN1ZLNHErY2YrY1VyZUNmODBYU2VOWlUvUnR3ZUxxR0ZlY2ZZNHFYMmJGRkZGR0k0a1dPTmZzb29DZ2ZJREZYbFAvT1UmI3hBO1Ava250VC80ejJuL0FDZlhGWGxQL09HLy9LVStZZjhBbUJpLzVQWXFXRC84NUtmK1RxOHgvd0RSbC8xQVFZcGZaUGtML2xCdkx2OEEmI3hBOzJ6TEwvcUhURkRCUCtjb2YvSlBhbi94bnRQOEFrK3VLdklQK2NSdE4wN1VmTUhtTzIxQzFpdTdaN0NNUERPaXlJUVphR3FzQ01WTHkmI3hBO3pYTk50TFA4enI3VGRDSmUxZzFtUzMwMzB5U2VLM0pXSUl3TzlOZ0QzNjRwZm9WaWg4Ny9BUE9aUC9LT2VYUCtZeWIvQUpOREZVVi8mI3hBO3poei9BTW9Wcm4vYlMvNWtSNHE5OVpWZFNyQU1yQ2pLZHdRZXh4Vjh3LzhBT1pObmFXLytFUHE4RWNQTDlJOHZUVlZyVDZyU3RBUEgmI3hBO0ZReS8vbkU2eHNwdnl3bGxtdDQ1SkJxZHdBN29yTUtSeEVia1lxOXd4VmhuNXk2eWRHL0szek5mS3dWL3FNbHZHeDdQZFV0MUk5K1UmI3hBO29wNzRxK0FRamxDNEI0S1FDM1lFMUlINEhGTDdyLzV4NTFuOUsvbERvRWpOeWx0STVMS1FmeS9WNVdqUWY4aXdweFE5R3hWOFJmOEEmI3hBO09UMy9BSk9QVnY4QWpEYWY5UXlZcENVL20xNXRHc3grVWRKaGs1Mm1nZVh0TnRxQTFIMWlXMWpsbVB6RlVRKzY0cStyZnlBOGwvNFUmI3hBOy9MUFRZSm8rR29ha1AwamZWSHhCNXdDaW4zU0lJcEhqWEZEMGJGWFlxd1Q4OVA4QXlVZm1mL21EUC9FMXhWODMvd0RPSmY4QTVOUi8mI3hBOysyYmMvd0RFNHNVbDlsNG9lVC84NVEvK1NlMVAvalBhZjhuMXhWNVQvd0E0Yi84QUtVK1lmK1lHTC9rOWlwWVAvd0E1S2Y4QWs2dk0mI3hBO2YvUmwvd0JRRUdLWDJUNUMvd0NVRzh1LzlzeXkvd0NvZE1VTUUvNXloLzhBSlBhbi93QVo3VC9rK3VLdmp6UVBNUG1qUlk3NTlDdmImI3hBO214VzRpOUsrbHRTeUV4RTdCblhkUlgzeFM5TS81eGtYOHZUNTZoZnpGTElOZkRqOUFSeUtQcXBuUFFsd2ErdFgrN0REajc4cVlxK3omI3hBOzhVUG5mL25Nbi9sSFBMbi9BREdUZjhtaGlxSy81dzUvNVFyWFArMmwvd0F5SThWZS9ZcStadjhBbk5IL0FLWTcvdDVmOWl1S1F5Ly8mI3hBO0FKeEovd0RKV1RmOXRPNC81Tnc0b2UxWXE4Uy81eTMxbjZuK1d0dnA2bjk1cWQvRkd5K01jS3RLeCtoMVRGWHoxQjVWRGZrUmRlWkEmI3hBO0tTcjVoanQvK2VLMmhxZitSa294Uzl5LzV3NzFreitVTmMwaGlDYkMrUzRYeEMzVVFVRDVjcmRzVVBvREZYeEYvd0E1UGY4QWs0OVcmI3hBOy93Q01OcC8xREppa1BMWUp6RmNSVEZSSVkyVnVEN3FlSkZGSThOcVlxL1NIUWRXdGRZMFRUOVd0UDk1ZFF0b3JtRWRhSk1nZFI5QU8mI3hBO0tFZGlyc1ZZSitlbi9rby9NLzhBekJuL0FJbXVLdm0vL25Fdi93QW1vLzhBMnpibi9pY1dLUyt5OFVQS2YrY24wZHZ5ZDFVcXBJU2UmI3hBOzBMa0N0QjlZUVZQMGtERlhrMy9PRzdML0FJcjh3TFVjallSa0wzSUV3cWZ4eFVzRi93Q2NqNVk1ZnpvOHh0RzNKUTFxaEkvbVN5Z1YmI3hBO2g5REFqRkw3TzhqeHZGNUs4dnh1S09tbTJhc090Q0lFQjZZb1lGL3psRC81SjdVLytNOXAvd0FuMXhWNVAvemg1RkZMNWs4eHhTb3MmI3hBO2tVbGhHc2tiQU1ySzB0Q0NEc1FSaXBlUy9tUEZwZW0vbVBycWVYMldPd3RkUWxOazBCK0JPTDFwR1IyUnRscGlsK2dkaExMTFkyOHMmI3hBO3Uwc2tTTklLVStKbEJPM3p4UStmditjeWYrVWM4dWY4eGszL0FDYUdLb3IvQUp3NS93Q1VLMXovQUxhWC9NaVBGWHYyS3ZtYi9uTkgmI3hBOy9wanYrM2wvMks0cERMLytjU2YvQUNWazMvYlR1UDhBazNEaWg3VmlyNVkvNXpLMWt5YTE1YzBVR2d0cmFlOGNkejlZa0VTMStYMWQmI3hBO3FZcUhpYWVmZk5hZVQzOG5MZWdlWEpKZlhleDlHRGVRT0pPWHE4UFYrMG8vYjl1bUtYckgvT0lHc2kyOCthbnBidFJOUjA4dWc4WkwmI3hBO2VSU0Ivd0FBNzRxWDEzaWg4UmY4NVBmK1RqMWIvakRhZjlReVlwREh2ekIvTDkvSzJpZVQ5U0RGNC9NV2xKZlBKdlQxbll5RlIvcXcmI3hBO3pRZysrS3ZwNy9uRm56UCtsL3l2aXNKSDVYT2lYRWxtd1AydlNZK3RFVDdVa0tEL0FGY1VQWU1WZGlyQnZ6eGplVDhwdk15UnFYZHImI3hBO1FoVlVWSitOZWdHS3ZuUC9BSnhSc3J5SDgwbmVhQ1NOUDBiY0RrNk1vcnpqN2tZcVgyTGlxUmVlZksxdjVyOG82cjVlbmYwMTFHQm8mI3hBO2tscFhoSUtQRTlPL0dSVk5NVmZEVnhhZm1OK1ZubWVRajZ4b21xeGg0VnUwWDkxTkVUdVkzWUZKRWJpRC9hTVVwbitXL3dDV3ZtMzgmI3hBO3kvTnFYRnlseEpwMDAvcjYxclUzTGlWTGNwYVNOOXVWK2lnZk03WXErN1k0NDRvMWpqVUpHZ0NvbzJBQUZBQmloNVovems1RkxMK1UmI3hBO09wSkVqU09aN1NpcUN4Mm5Yc01WZkgyaHllZHJBM01HaC9wRzJlOWpFVjBsbUprYVdPdjJHOVBjclh0aWw2bitUdjhBempsNXAxalcmI3hBOzdUVmZOTmpKcFdnV3NpelBiWFNtTzR1U2hEQ0lRbWpvaC9hWmdOdW5zb2ZZZUt2bnYvbk1PM3VKL0x2bDBReFBLUmR6RWhGTFUvZEQmI3hBO3d4VkZmODRmMjg4SGt2VzFtamVKanFWUUhVcVNQUWo4Y1ZlOVlxK2F2K2N5N1c1bi93QUllaEU4dkg5STh1Q2xxVitxMHJURldYZjgmI3hBOzRuUXpRL2xmTWswYlJ2OEFwTzRQRndWTlBUaTdIRlhzK0t2aVgvbkpPNXZ0Vy9OelZmUmdsbHQ3R09DemlkVVlqNElnejBvTzBqdGkmI3hBO3I2bjAzeVBwNS9MRzI4dkd6aDlkdEZTd1pqR25JeU5haUptSnAxTEdwT0t2a2I4aVo5UzBYODJ2THR5OXRMSEhMY216bDVveWlsMGomI3hBO1FiMUhabkJ4Uys3TVVQaW4vbkpxeHZaZnpnMVY0cmVTUkREYVVaVVpoL3ZPbmNERlhwWDV2ZVZKdFYvNXh2OEFLR29SUXM5NW9kanAmI3hBO2NyS0FTNGltdFk0SkY0OWZ0c2hQeXhWaS93RHppVHJGL3BublhVTkV1SVpZN1hWN1htaFpXQyt2YW5rdlVkNDNreFY5YVlxLy85az08L3hhcEdJbWc6aW1hZ2U+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpBbHQ+CiAgICAgICAgIDwveGFwOlRodW1ibmFpbHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+CiAgICAgICAgIDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6OEI4MThEMEZDNTM3REQxMUJEQjJGMThGM0JGREVDOUY8L3hhcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6OEM4MThEMEZDNTM3REQxMUJEQjJGMThGM0JGREVDOUY8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4YXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwVFBnPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvdC9wZy8iCiAgICAgICAgICAgIHhtbG5zOnN0RGltPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvRGltZW5zaW9ucyMiCiAgICAgICAgICAgIHhtbG5zOnhhcEc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nLyI+CiAgICAgICAgIDx4YXBUUGc6TWF4UGFnZVNpemUgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3REaW06dz4yMDkuOTk5OTk0PC9zdERpbTp3PgogICAgICAgICAgICA8c3REaW06aD4yOTcuMDAwMDI0PC9zdERpbTpoPgogICAgICAgICAgICA8c3REaW06dW5pdD5NaWxsaW1ldGVyczwvc3REaW06dW5pdD4KICAgICAgICAgPC94YXBUUGc6TWF4UGFnZVNpemU+CiAgICAgICAgIDx4YXBUUGc6TlBhZ2VzPjE8L3hhcFRQZzpOUGFnZXM+CiAgICAgICAgIDx4YXBUUGc6SGFzVmlzaWJsZVRyYW5zcGFyZW5jeT5GYWxzZTwveGFwVFBnOkhhc1Zpc2libGVUcmFuc3BhcmVuY3k+CiAgICAgICAgIDx4YXBUUGc6SGFzVmlzaWJsZU92ZXJwcmludD5GYWxzZTwveGFwVFBnOkhhc1Zpc2libGVPdmVycHJpbnQ+CiAgICAgICAgIDx4YXBUUGc6UGxhdGVOYW1lcz4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+TWFnZW50YTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPlllbGxvdzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPkJsYWNrPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94YXBUUGc6UGxhdGVOYW1lcz4KICAgICAgICAgPHhhcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHhhcEc6Z3JvdXBOYW1lPkRlZmF1bHQgU3dhdGNoIEdyb3VwPC94YXBHOmdyb3VwTmFtZT4KICAgICAgICAgICAgICAgICAgPHhhcEc6Z3JvdXBUeXBlPjA8L3hhcEc6Z3JvdXBUeXBlPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3hhcFRQZzpTd2F0Y2hHcm91cHM+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4NCg1lbmRzdHJlYW0NZW5kb2JqDTUzIDAgb2JqDTw8L01ldGFkYXRhIDUyIDAgUj4+DWVuZG9iag0xIDAgb2JqDTw8L0Nyb3BCb3hbMCAwIDU5NSA4NDJdL1BhcmVudCAyMSAwIFIvQ29udGVudHMgMyAwIFIvUm90YXRlIDAvTWVkaWFCb3hbMCAwIDU5NSA4NDJdL1Jlc291cmNlcyAyIDAgUi9UeXBlL1BhZ2U+Pg1lbmRvYmoNMiAwIG9iag08PC9Gb250PDwvRjEgMjggMCBSL0YyIDM4IDAgUi9GMyA0NyAwIFIvRjQg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L01UOTcvTVQxMTYvTVQxMjEvTVQ2NS9NVDc4L01UNzkvTVQ3Ni9NVDExOCk+Pg1lbmRvYmoNMTIgMCBvYmoNPDwvRGlmZmVyZW5jZXNbMi9NVDUxL01UNDgvTVQ1MC9NVDUzL01UNDkvTVQ4NS9NVDQ3L01UMTA5L01UMTA4L01UNjYvTVQxMDEvTVQxMDIvTVQxMTEvTVQxMTQvTVQzMi9NVDY5L01UMTIwL01UOTkvTVQxMDUvTVQxMTUvTVQ3My9NVDEwMC9NVDk3L01UMTE2L01UMTIxL01UNjUvTVQ3OC9NVDc5L01UNzYvTVQxMThdL1R5cGUvRW5jb2Rpbmc+Pg1lbmRvYmoNMTMgMCBvYmoNPDwvT1BNIDEvT1AgZmFsc2Uvb3AgZmFsc2UvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9TTSAwLjAwMj4+DWVuZG9iag0xNCAwIG9iag08PC9PUE0gMS9PUCB0cnVlL29wIHRydWUvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9TTSAwLjAwMj4+DWVuZG9iag0xNSAwIG9iag08PC9Dcm9wQm94WzAgMCA1OTUgODQyXS9QYXJlbnQgMjEgMCBSL0NvbnRlbnRzIDE3IDAgUi9Sb3RhdGUgMC9NZWRpYUJveFswIDAgNTk1IDg0Ml0vUmVzb3VyY2VzIDE2IDAgUi9UeXBlL1BhZ2U+Pg1lbmRvYmoNMTYgMCBvYmoNPDwvRm9udDw8L0YxIDI4IDAgUi9GNCAyOSAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dF0vRXh0R1N0YXRlPDwvR1MyIDM1IDAgUi9HUzMgMzYgMCBSPj4+Pg1lbmRvYmoNMTcgMCBvYmoNPDwvTGVuZ3RoIDM0MjIvRmlsdGVyL0ZsYXRlRGVjb2RlPj5zdHJlYW0NCmjejFnJdiJHFj3HVd7oK94S9YHojJxTWqF5LrWgXC5bXoSSEESRA52DbPQTvefDvOq9/8ArLfpGDoDUIPvUOUUKksh49713373Bv3c4KdrhJvlmQI7jsACvPc+xmOXYlMkdM/CY7ZNtcmb4FO98oWTHIN82mWGTE9gscKnX/Inb64/rf9Odf54OLBrnO7bFHJM8x2OG45Dtc+YHxC1meIH+0qO+0dQ3Hgx3/nnCidPwcYfzahW82DZzeBCQ53LGrYCG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ZXMvS2lkc1syNiAwIFIgMSAwIFIgNCAwIFIgNyAwIFIgMTUgMCBSXT4+DWVuZG9iag0yMiAwIG9iag08PC9TdWJ0eXBlL1hNTC9MZW5ndGggMzU4MS9UeXBlL01ldGFkYXRhPj5zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMC1jMzE2IDQ0LjI1MzkyMSwgU3VuIE9jdCAwMSAyMDA2IDE3OjA4OjIzIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIj4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BY3JvYmF0IERpc3RpbGxlciA4LjEuMCAoTWFjaW50b3NoKTwvcGRmOlByb2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpPnR1Yml0YWs8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+c2FnLTM5LTMtNC0wOTAyLTIxOnNhZy0wPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC9kYzp0aXRsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDA5LTA2LTI2VDA5OjQ1OjA0KzAzOjAwPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5RdWFya1hQcmVzcyA3LjMxPC94YXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDA5LTA2LTI2VDA5OjQ1OjA0KzAzOjAwPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIj4KICAgICAgICAgPHhhcE1NOkRvY3VtZW50SUQ+dXVpZDozOGViMGFhMC02M2M5LTBjNGYtYTIzZi1mNTE4NzQ1MzQwODI8L3hhcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6MGZmZjg5YzUtY2JjMy0wYjQyLTlhODItNmE2MGE2M2UyNzA4PC94YXBNTTpJbnN0YW5jZUlEPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+DWVuZHN0cmVhbQ1lbmRvYmoNMjMgMCBvYmoNPDwvQ3JlYXRpb25EYXRlKEQ6MjAwOTA2MjYwOTQ1MDQrMDMnMDAnKS9BdXRob3IodHViaXRhaykvQ3JlYXRvcihRdWFya1hQcmVzcyA3LjMxKS9Qcm9kdWNlcihBY3JvYmF0IERpc3RpbGxlciA4LjEuMCBcKE1hY2ludG9zaFwpKS9Nb2REYXRlKEQ6MjAwOTA2MjYwOTQ1MDQrMDMnMDAnKS9UaXRsZShzYWctMzktMy00LTA5MDItMjE6c2FnLTApPj4NZW5kb2JqDXhyZWYNMCAyNA0wMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwNTc0MjIgMDAwMDAgbg0KMDAwMDA1NzU0OSAwMDAwMCBuDQowMDAwMDU3NjczIDAwMDAwIG4NCjAwMDAwNjA2NjIgMDAwMDAgbg0KMDAwMDA2MDc4OSAwMDAwMCBuDQowMDAwMDYwOTEzIDAwMDAwIG4NCjAwMDAwNjM4MDMgMDAwMDAgbg0KMDAwMDA2MzkzMCAwMDAwMCBuDQowMDAwMDY0MDY2IDAwMDAwIG4NCjAwMDAwNjcyMTUgMDAwMDAgbg0KMDAwMDA3MTcxMiAwMDAwMCBuDQowMDAwMDcyMDU0IDAwMDAwIG4NCjAwMDAwNzIyNjcgMDAwMDAgbg0KMDAwMDA3MjM0NCAwMDAwMCBuDQowMDAwMDcyNDE5IDAwMDAwIG4NCjAwMDAwNzI1NDkgMDAwMDAgbg0KMDAwMDA3MjY1NCAwMDAwMCBuDQowMDAwMDc2MTQ2IDAwMDAwIG4NCjAwMDAwNzY0MDQgMDAwMDAgbg0KMDAwMDA3NjQ0MCAwMDAwMCBuDQowMDAwMDc2NDcyIDAwMDAwIG4NCjAwMDAwNzY1NTAgMDAwMDAgbg0KMDAwMDA4MDIwOCAwMDAwMCBuDQp0cmFpbGVyDTw8L1NpemUgMjQ+Pg1zdGFydHhyZWYNMTE2DSUlRU9GDQ==", - "directory": "/tmp", - "fileName": "04-valid.pdf", - "fileSize": "81 kB" - } - }, - "json": { - "numpages": 5, - "numrender": 5, - "info": { - "object": true - }, - "metadata": { - "object": true - }, - "text": "Turk J Med Sci\n2009; 39 (3): 361-365\n© TÜBİTAK\nE-mail: medsci@tubitak.gov.tr\ndoi:10.3906/sag-0902-21\n361\nORIGINAL ARTICLE\nAcute effect of speed exercise on nitric oxide (NO)\nlevel of footballers\nAim: Exercise is one of the low-cost and easiest ways for improving life standards and physical\nfitness, and reducing body stress. Nitric oxide (NO) is defined as the “surprising soldier mediator”\nof biological systems. NO is one of the relaxation factors coming from the vascular endothelium.\nThis relaxation in smooth muscles leads to vasodilatation in veins. The purpose of this study is to\nevaluate the acute effect of 20-meter sprints of footballers on NO levels.\nMaterials and Methods: 22 footballers with an age range of 18–32 were voluntarily enrolled in the\nstudy. The heights and weights of the subjects were measured. Speed measures were taken with a\nphotocell system. The 20-meter sprint was repeated for 10 times. Blood samples were taken before\nand immediately after the sprint. For statistical analysis paired t test was used.\nResults: The mean age, height, and weight of the footballers included in the study were 24.21 ±\n3.41 years, 173 ± 7.04 cm, and 67.85 ± 5.17 kg, respectively. The mean NO values were 21.45 ± 2.08\nimmediately after the exercise and 25.59 ± 1.59 before the exercise (mean ± SD). This decrease in\nthe NO level after the exercise, compared to before, were not statistically meaningful (P = 0.052).\nConclusions: The fact that the exercise was short-term yet with maximal load and negative\ndevelopments occurred within the body may have highlighted the oxidative damage. The NO\ndefence used against this damage may have decreased the values.\nKey Words: Nitric oxide, speed exercise, footballer\nFutbolcularda sürat egzersizinin nitrik oksit (NO)\ndüzeyi üzerine akut etkisi\nAmaç: Egzersiz, insanları stresten uzaklaştıran, hayat standartlarını yükselten ve fiziksel\nuygunluğu iyi duruma getirmek için kullanılan en ucuz ve kolay yoldur. Nitrik oksit (NO)\nbiyolojik sistemlerin “şaşırtıcı asker aracısı” olarak tanımlanır. NO vasküler endotelyumdan çıkan\ndinlenme faktörüdür. Bu düz kaslardaki relaks damarlarla vasodilatasyona neden olur. Bu\nçalışmanın amacı; futbolcularda 20 metrelik sürat koşularının NO düzeylerine akut etkisini\naraştırmaktır.\nGereç ve Yöntem: Araştırmaya yaşları 18-32 yaş arasında değişen 22 futbolcu gönüllü olarak\nkatıldı. Deneklerin boy ve beden ağırlık ölçümleri alındı. Sürat ölçümleri fotosel ile yapıldı. 20\nmetrelik sürat koşusu 10 kez tekrar ettirildi. Sürat egzersizi öncesi ve hemen sonrası kan örnekleri\nalındı. İstatistiksel analiz için paired t testi kullanıldı.\nBulgular: Çalışmaya dahil edilen futbolcuların yaşları 24,21 ± 3,41 yıl, boyları 173 ± 7,04 cm. ve\nbeden ağırlığı 67,85 ± 5,17 kg. olarak belirlendi. Sürat egzersizi öncesi NO değerleri 25,59 ±\n1,59’ iken, egzersiz hemen sonrası 21,45 ± 2,08 olarak bulundu (A.O ± SS). Egzersizden hemen\nsonrasındaki NO düzeyindeki bu düşüş istatistiksel olarak anlamlı değildi (P = 0,052).\nSonuç: Egzersizin kısa süreli ancak maksimal yüklenmeli olması, vücutta meydana gelen negatif\ngelişmeler oksidatif hasarı öne çıkarmış olabilir. Bu hasara karşı kullanılan NO savunması,\ndeğerleri aşağıya düşürmüş olabilir.\nAnahtar Sözcükler: Nitrik oksit (NO), sürat egzersizi, futbolcu\nÖzcan SAYGIN\nThe School of Physical\nEducation and Sports,\nMuğla University,\nMuğla - TURKEY\nReceived: February 25, 2009\nAccepted: April 30, 2009\nCorrespondence\nÖzcan SAYGIN\nThe School of Physical\nEducation and Sports,\nMuğla University,\nMuğla - TURKEY\nosaygin@mu.edu.tr\n\nIntroduction\nUntil 15-20 years ago, NO was thought to be\nmerely the exhaust gas of automobiles, an\natmospheric gas found in cigarettes, and an agent\npolluting the atmosphere. It has been articulated in\nprevious studies that NO, which has been qualified\nas a harmful molecule since it is a free radical due to\nthe unpaired electron it bore, is actually an\nimportant molecule that balances the blood pressure\nand vasodilatation (1,2).\nNO causes vasodilatation in veins and accelerates\nblood flow. NO, which regulates the blood\ncirculation, also keeps the veins clean. The vein\nnetwork rich in NO is slippery like Teflon and allows\nfor the flow of plaques preventing the enlargement\nof clots, whereas the unhealthy vein, or the vein poor\nin NO, leads to collection of plaques in the adhesive\ninner surface of the vein (3,4).\nNO radical prevents the excessive accumulation\nof free radicals in tissues by reacting with other free\nradicals (5,6). Whereas other free oxygen radicals\nare harmful in every concentration, NO plays a role\nin regulating a range of physiological events, such as\ndigestion system, host defence and non-specific\nimmunity. However, when generated\ninappropriately and excessively, it causes a lot of\npathological conditions (7).\nSport generally has significant features like speed,\nstrength, endurance, and flexibility. Speed is the\nability to carry oneself from one point to another in\nthe shortest time possible (8).\nIn sports trainings, the organism is exposed to\nloads which are over daily life levels. In exercise, it is\nblood that provides the metabolic and O\n2 \nneeds of\nthe tissues. Blood pressure is the force that enables\nthe blood flow. Blood pressure is the pressure that\nexerts the blood on the vein walls (9).\nThe benefits of exercising have been proven\nplenty of times. However, negative changes can also\nbe expected in connection with the short-term and\nextreme changes that exercise may cause in the\nhuman body. However, exercise, if performed\nregularly and efficiently, helps strengthen the\ncardiovascular, hormonal, and immune system, and\nincrease the muscle mass.\nThis study was conducted to analyze the acute\neffect of speed exercise on NO levels of footballers.\nMaterials and Methods\nSelection of the Subjects\nTwenty-two active, healthy footballers, with an\nage range of 18-32, free of obvious health problems\nand medications were enrolled into this study. In the\nstudy, the necessary explanations were provided to\nthe subjects and their consents were obtained.\nMethod of the Study\nThe subjects carried out the test after a 20-min\nwarm-up, 15 min of which was dedicated to general\nand 5 min to specific warm-up. The test comprised\n10 sprints of 20 m. The subjects started the sprint\nwithout a start order, but when they felt ready and\ncompleted it in maximum speed. Blood measures\nwere taken twice, before and immediately after the\nsprint.\nInstruments\nHeight and Weight Measure\nThe heights of the subjects were measured\nwithout shoes, with a stadiometer (Holtain, UK) in\ncm; and they were weighed in shorts with an\nelectronic scale (Seca, Germany) in kg.\nSpeed Measure\nThe speed was measured in a gym on a smooth\nand synthetic floor. The time between the start and\nfinish points were measured with a 0.01 s sensitive\nphotocell system (New Test 2000, Finland). Cones\nwere used in order to specify the sprint field.\nBlood Measures\nBlood samples were drown from antecubital vein\nusing the heparinised tubes. The samples were taken\nbefore and immediately after the loading. The\nelements were precipitated by centrifuge for 5 min at\n3500 rpm; the plasma part at the top was taken into\nEppendorf tubes and kept at -80 °C until analysis.\nNitrite determination\nNitrite was measured using the Griess reaction\n(10). Briefly, plasma samples were diluted 4-fold\nwith distilled water and deproteinized by adding\nl/20th volume of zinc sulfate (300 g/l) to give a final\nTurk J Med SciEffect of speed exercise on NO in footballers\nSAYGIN, Ö\n362\n\nconcentration of 15 g/l. After centrifugation at\n10,000×g for 5 min at room temperature (or 1000×g\nfor 15 min), 100 μl of supernate was applied to a\nmicrotiter plate well, followed by 100/μl of Griess\nreagent (1 g/l sulfanilamide, 25 g/l phosphoric acid,\nand 0.1 g/l N-1-naphthylethylenediamine). After 10\nmin of colour development at room temperature,\nthe absorbance was measured on a microplate\nreader (Tiertek Multiskan MCC/340; Flow Lab,\nMcLean, VA) at a wavelength of 540 nm. Each\nsample was assayed in duplicate wells. Background\nvalues were obtained by treating samples as\ndescribed but by using 25 g/l phosphoric acid\ninstead of complete Griesa reagent. Calibration\ncurves were genereated with sodium nitrite and\npotassium nitrate in distilled water (linear range 0-\n100 μmol/l). The detection limit of the assay is ~1.5\nμmol/l in distilled water. There was no difference\nbetween the spectrum of authentic nitrite in distilled\nwater and the spectra of negative plasma samples\nsupplemented with exogenous nitrite or the spectra\nof positive plasma samples. In all these specimens,\nmaximal absorbance occurred at 540 nm (data not\nshown). The molar absorptivity of the coloured\nproduct was 39,500 l mol\n-1 \ncm\n-1\nNitrate determination\nNitrate was measured as nitrite after enzymatic\nconversion by nitrate reductase (EC 1.6.6.2) as\ndescribed by Schmidt et al. (11). Briefly, 100 μl of\nplasma was diluted 4-fold with distilled water.\nNADPH, FAD, and nitrate reductase from\nAspergillus spp. (Boehringer Mannheim,\nMannheim, Germany) were added to yield final\nconcentrations of 50 μmol/, 5 μmol/l, and 200 U/l,\nrespectively.\nSamples were further incubated for 5 min at 37\n°C to oxidize NADPH [which interferes with the\nassay] (11), deproteinized, and assayed with Griess\nreagent as described above. Values obtained by this\nprocedure represent the sum of nitrite and nitrate.\nNitrate concentrations were obtained by subtracting\nnitrite concentrations from the total nitrate + nitrite\nconcentrations.\nStatistical Analysis\nSPSS 16.0 statistics program was used in\nanalysing the data obtained. The arithmetic mean\nand standard deviation of all the variants of the\nfootballers included in the study were calculated.\nPaired samples t-test was used to compare the NO\nvalues taken before and immediately after the speed\nexercise. The difference was assumed significant if\nthe p value was below 0.05.\nResults\nThe demographic results of the group were\nsummarized in Tables 1 and 2. NO values were\nfound to be 21.45 ± 2.08 immediately after the\nexercise whereas they were 25.59 ± 1.59 before the\nexercise. This decrease immediately after the\nexercise, in comparison with before, was not a\nstatistically significant (P = 0.052, Figure 1).\nTable 1. Age (years), height (cm) and weight (kg) of footballers.\nArithmetic Mean Standard Deviation Minimum Maximum\nAge (years) 24.21 3.41 18.00 32.00\nHeight (cm) 173.2 7.04 162 185\nWeight (kg) 67.85 5.17 62.32 77.67\nTable 2. Serum NO (U/Ml) levels of footballers before speed exercise and immediately after speed exercise.\nArithmetic Mean Standard Deviation t p\nSERUM Before Exercise 25.59 1.59 1.980 .052\nNO U/ml Immediately After Exercise 21.45 2.08\nJune 2009Effect of speed exercise on NO in footballers\nNo: 3Vol: 39\n363\n\nTurk J Med SciEffect of speed exercise on NO in footballers\nSAYGIN, Ö\n364\nDiscussion\nRecent studies show that exercise has different\neffects on NO level. Presumed reasons for those\ndifferences are the type, duration, and degree of\nexercise. Particularly acute and heavy exercises can\ntrigger oxidative damage (12). The proportions of\noxidants and antioxidants to emerge during the\nexercise vary according to the degree of exercise.\nWhile damaging oxidant system is more activated\nduring heavy and rigorous exercises, regular and\nshort-term sport activities that are not maximal\nactivate the antioxidant systems better (13).\nThere are various basic sources of oxidant\nproducts, such as NO products, oxygen radicals\nformed through purine metabolism, and\nprostaglandin. NO products, like peroxinitrites, can\ncontribute to oxidative damage (14). NO, thus, can\ncontribute to cell damage in many cells.\nXia and colleagues studied the effect of different\ndegrees of exercise on NO level and they showed\nthat there was no significant change in NO in low\nand mild level exercises, whereas there was an\nincrease in NO concentration in high level exercises\n(15). In contrast to that study, we noted that there\nwas a 5 U/ml decrease in NO levels after the exercise\nin comparison with those before the exercise. This\ncan be attributed to a set of factors. One of them is\nthe contribution of NO to antioxidant defence in the\nfight with free radicals occurring in acute exercises\nof maximal level (16).\nYamamato et al. state that there is no meaningful\ndifference between the plasma and serum NO levels\nbefore and immediately after exercise for aerobic\ntype physical exercise (17).\nIn another study, Keçetepen and Dursun found a\ndecrease in NO values immediately after exercise in\na study where sportsmen, who do sports regularly,\nperform exercise for 2 min consecutively at 30, 40,\n50 km/h against 100 W power, and then at\nmaximum speed, using a bicycle ergometer (18).\nRadak et al. also state that muscular damage can\noccur in connection with the increase in NO \nX\nproduction in skeletal muscles during eccentric\ncontraction (19). Cuzzolin et al. state in the study\nthey carried out on 6 active and 6 sedentary subjects\nthat acute exercise can lead to NO\nX \nformation (20).\nIn another study, a decrease was observed in\nnitric oxide synthesis inhibition and active blood\nflow after the dynamic knee-extensor exercise. In the\nsame study, NO inhibition was greater in heavy\nexercise when compared with low level exercise (21).\nAnother study concludes that NO is not essential\nfor the good performance of skeleton muscles in\nhealthy humans (22).\nJungestern et al. compared long-distance runners\nand students who do not exercise regularly and\ncame up with a meaningful difference in NO levels\nof long distance runners after exercise in\ncomparison with those before exercise.\nFurthermore, there was a meaningful increase in\nNO levels of students who do not exercise regularly\nafter exercise in comparison with before (23).\nIn our study, the NO levels may have been found\nto be low for that moment since the blood samples\nwere taken immediately after maximal loading. As a\nresult of the increase in radicals during heavy\nexercise, it is possible for some of the NO to be\ndirected to radicals. However, different results could\nhave been obtained if blood samples had been taken\nat regular intervals after exercise.\nThe fact that the exercise was short-term yet with\nmaximal load and the negative developments that\noccurred within the body may have highlighted the\noxidative damage. The NO defence used against this\ndamage may have decreased the values.\n\u0002\u0003\n\u0004\u0005\n\u0004\u0003\n\u0006\u0005\n\u0006\u0003\n\u0005\n\u0003\n\u0007\b\n\u000e\u000f \u0010\u0011\u0012 \u000f\u0013\u0014\u0015\n\u0016 \u0017\u0014\u0018\u0019 \u001a\u0010\u001b \u0019 \u000f\u0010\u0011\u0012 \u000f\u0013\u0014\u0015\n\u001c\u001d\u0010\u001e \u001f\nFigure 1. Average serum NO (U/ml) Levels of footballers before\nand immediately after speed exercise.\n\nReferences\n1. Palmer RMJ, Ferrige AG, Moncada S. Nitric Oxide release\naccounts for the biological activity of endothelium-derived\nrelaxing factor. Nature, 1993; 327; 524-6.\n2. Tüzün, M. Obezite: Tanım, Sıklık, Sınıflandırma Tipleri,\nDereceleri ve Komplikasyonları. Obezite, Nobel Tıp Kitap\nevleri Limited Şirketi, 1995; 1-20.\n3. Kuyumcu A, Düzgün AP, Özmen MM, Besler HT, Travma ve\nEnfeksiyonda Nitrik Oksidin Rolü. Ulus Travma Dergisi.\n2004; 10(3): 149-159.\n4. Louis J., Ignarro (çeviri) Öztürk Ö. NO ile kalp hastalıklarına\nson, Ozbay Yayıncılık İstanbul 2007.\n5. Kurtuluş H, Eskiocak S Tütüncüler F, Başaran Ü.N, Gülen Ş.\nDeneysel Sitemik Hipoksi Geliştirilmiş Yeni Doğan ratlarda\nN-Asetisistein uygulamsının etkileri. Turk J. Of biochem.\n2003; 28(2):40-44.\n6. Matthew BG, Jourdheuıl D, Wink DA. Nitric Oxide I.\nPhysiologicalchemistry of Nitric Oxide and its metabolites:\nimplications ininflammation. Am. J. Physiol. 1999; Vol. 276,\nIssue 2, 315-321.\n7. Aladağ A.M, Turköz, Y., Özerol H.İ, Nitrik oksit ve\nNörofizyopatolojik Etkileri. Türkiye Klinikleri J Med Sci.\n2000; 20.107-111.\n8. Sevim Y. Antrenman Bilgisi. Nobel Yayın Dağıtım, Ankara,\n2007.\n9. Günay M., Tamer K., Cicioğlu İ. Spor Fizyolojisi ve\nPerformans Ölçümü, Gazi Kitapevi, Ankara 2006.\n10. Green LC, Wagner DA, Glogowski J, Skipper PL, Wishnok JS,\nTannenbaum SR. Analysis of nitrate, nitrite and [‘5N]nitrate\nin biological fluids. Anal Biochem 1982;126:131-8.\n11. Schmidt HHHW, Warner TD, Nakane M, Forstermann U,\nMurad F. Regulation and subcellular location of nitrogen\noxide synthases in RAW264.7 macrophages. Mol Pharmacol\n1992;41: 615-24.\n12. Dinçer C, Kayserilioğlu A. Egzersizde oluşan lipit\nperoksidasyonu ve E vitamninin koruyucu etkisi. Spor ve Tıp\n1995; 7:20-23.\n13. Duncan K, Harris S, Ardies CM: Running exercise may reduce\nrisk for lung and liver cancer by including activity of\nantioxidant and phase II enzymes. Cancer Lett 1997; 116;151-\n158.\n14. Moncada S, Higgs A, Furchgott R: XIV. International Union\nof Pharmacology Nomencaluture in Nitric Oxide Research.\nPharmacol Rev 1997; 49(2);137-141.\n15. Xia Y, Dawson VL, Dawson TM, Synder SH, Zureier JL: Nitric\nOxide Synthase Generates Superoxide and Nitric Oxide in\nArgininedepletet Cells leading to Proxynitrit-mediated\nCellular Injury. Proc Natl Acad Sci 1996; 93: 6770-6774.\n16. Traverse JH, Wank YL, Ruısheng D, Nelson D, Lindstorm P,\nArcher LS, Gong G, Bache JR. Coranary no production in\nresponse to exercise and entothelium dependent agaonis\nCiculationt 2000; 101: 2526-2531.\n17. Yamamoto K., Kondo T, Kimata A, Ueyama J, Shirotori A,\nOkada Y, Sakui D, Hakashlima M, and Yamada S.: Lack Of\nEffect of Aerobic Physical Exercise on Endothelium-Derived\nNitric Oxide Concentrations in Healthy Young Subjects,\nNagoya J Med Sci 2007; 69, 167-172.\n18. Keçetepen L O., Dursun N, Effects of Exercise on Plasma\nLeptin Concentrations and Relation of Leptin to Respiratory,\nCardiovascular Parameters, Sağlık Bilimleri Dergisi (Journal\nOf Health Sciences), 2006; 15 (1) 1-7.\n19. Radak Z, Pucsok S, Mecseki T, Ferdinandy P. Muscle\nSorenesinduced reduction in force generation is\naccomppanied by increased nitric oxide content and DNA\ndamage in skeletal muscle. Free rad. Biol. Med. 1999; 26:1059-\n1063.\n20. Cuzzolın L. Lussıgnolı S. Crıvellente F. Adamı A. Schena F.\nBellavıte P. Brocco G. Benonı G. Influence of an acuteexercise\nonneutrophil and platelet adhesion, nitric oxide plasma\nmetabolites in inactive and active subjects. Int J Sports Med.\n2000; 21(4): 289-93.\n21. Christopher K, Dyke, David N. Proctor, Niki M. Dietz and\nMichael. Joyner. Role of nitric oxide in exercise hyperaemia\nduring prolonged rhythmic handgripping in humans. Journel\nof Physiol. 1995; 259-265.\n22. Frank A, Dinenno, Micheal J Joyner. Blunte sympathhetic\nvasoconstriction in contracting skeletal muscle of healthy\nhumans: is nitric oxide obligatory. J physiology 2003; 553,\n281-292.\n23. Jungersten L, Ambring A, Wall B and Wennmalm A. Both\nphysical fitness and acute exercise regulate nitric oxide\nformation in healthy humans. J Appl Physiol. 1997; 82: 760-\n764.\nJune 2009Effect of speed exercise on NO in footballers\nNo: 3Vol: 39\n365", - "version": "2.16.105" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Read PDF" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:29:03.061Z", - "stoppedAt": "2025-01-28T15:29:03.400Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/105-snapshot.json b/test-workflows/snapshots/105-snapshot.json deleted file mode 100644 index 21a74d2915..0000000000 --- a/test-workflows/snapshots/105-snapshot.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994464, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994464, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "data": "VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl", - "fileExtension": "txt", - "fileName": "file.txt" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Write Binary File": [ - { - "startTime": 1747343994467, - "executionIndex": 2, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 74, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileName": "/tmp/test_write_binary_file.txt" - }, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "data": "VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl", - "fileExtension": "txt", - "fileName": "file.txt" - } - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1747343994541, - "executionIndex": 3, - "source": [ - { - "previousNode": "Write Binary File" - } - ], - "hints": [], - "executionTime": 18, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileName": "/tmp/test_write_binary_file.txt" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "fileExtension": "txt", - "data": "VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl", - "directory": "/tmp", - "fileName": "test_write_binary_file.txt", - "fileSize": "27 B" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function1": [ - { - "startTime": 1747343994559, - "executionIndex": 4, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileName": "/tmp/test_write_binary_file.txt" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "fileExtension": "txt", - "data": "VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl", - "directory": "/tmp", - "fileName": "test_write_binary_file.txt", - "fileSize": "27 B" - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.464Z", - "stoppedAt": "2025-05-15T21:19:54.560Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/107-snapshot.json b/test-workflows/snapshots/107-snapshot.json deleted file mode 100644 index 53baf6e7db..0000000000 --- a/test-workflows/snapshots/107-snapshot.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994481, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary Files": [ - { - "startTime": 1747343994481, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 54, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "Read Binary Files" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.481Z", - "stoppedAt": "2025-05-15T21:19:54.535Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/108-snapshot.json b/test-workflows/snapshots/108-snapshot.json deleted file mode 100644 index a5d205582b..0000000000 --- a/test-workflows/snapshots/108-snapshot.json +++ /dev/null @@ -1,1363 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994502, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747343994502, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value1": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1747343994502, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value2": 5 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set2": [ - { - "startTime": 1747343994502, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set3": [ - { - "startTime": 1747343994503, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop2": 2, - "prop4": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set7": [ - { - "startTime": 1747343994503, - "executionIndex": 5, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set6": [ - { - "startTime": 1747343994503, - "executionIndex": 6, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop2": 2, - "prop3": -2, - "prop4": -3 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set9": [ - { - "startTime": 1747343994503, - "executionIndex": 7, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set8": [ - { - "startTime": 1747343994503, - "executionIndex": 8, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop3": 2, - "prop4": -4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set11": [ - { - "startTime": 1747343994503, - "executionIndex": 9, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set10": [ - { - "startTime": 1747343994503, - "executionIndex": 10, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop3": 2, - "prop4": -4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set13": [ - { - "startTime": 1747343994503, - "executionIndex": 11, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set12": [ - { - "startTime": 1747343994503, - "executionIndex": 12, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop3": 2, - "prop4": -4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function11": [ - { - "startTime": 1747343994503, - "executionIndex": 13, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input1item1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "title": "Input1item2" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "title": "Input1item3" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function12": [ - { - "startTime": 1747343994504, - "executionIndex": 14, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "title": "Input2item4" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "startTime": 1747343994506, - "executionIndex": 15, - "source": [ - { - "previousNode": "Set" - }, - { - "previousNode": "Set1" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value1": true - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "value2": 5 - }, - "pairedItem": { - "item": 0, - "input": 1 - } - } - ] - ] - } - } - ], - "Merge1": [ - { - "startTime": 1747343994506, - "executionIndex": 16, - "source": [ - { - "previousNode": "Set2" - }, - { - "previousNode": "Set3" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge5": [ - { - "startTime": 1747343994506, - "executionIndex": 17, - "source": [ - { - "previousNode": "Set7" - }, - { - "previousNode": "Set6" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge6": [ - { - "startTime": 1747343994506, - "executionIndex": 18, - "source": [ - { - "previousNode": "Set7" - }, - { - "previousNode": "Set6" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge7": [ - { - "startTime": 1747343994506, - "executionIndex": 19, - "source": [ - { - "previousNode": "Set7" - }, - { - "previousNode": "Set6" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge8": [ - { - "startTime": 1747343994506, - "executionIndex": 20, - "source": [ - { - "previousNode": "Set9" - }, - { - "previousNode": "Set8" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1, - "prop3": 2, - "prop4": -4 - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 0, - "input": 1 - } - ] - } - ] - ] - } - } - ], - "Merge9": [ - { - "startTime": 1747343994506, - "executionIndex": 21, - "source": [ - { - "previousNode": "Set11" - }, - { - "previousNode": "Set10" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge10": [ - { - "startTime": 1747343994506, - "executionIndex": 22, - "source": [ - { - "previousNode": "Set13" - }, - { - "previousNode": "Set12" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge3": [ - { - "startTime": 1747343994506, - "executionIndex": 23, - "source": [ - { - "previousNode": "Function11" - }, - { - "previousNode": "Function12" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 0, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": [ - { - "item": 1 - }, - { - "item": 1, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": [ - { - "item": 2 - }, - { - "item": 2, - "input": 1 - } - ] - } - ] - ] - } - } - ], - "Merge2": [ - { - "startTime": 1747343994507, - "executionIndex": 24, - "source": [ - { - "previousNode": "Function11" - }, - { - "previousNode": "Function12" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 0, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": [ - { - "item": 1 - }, - { - "item": 1, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": [ - { - "item": 2 - }, - { - "item": 2, - "input": 1 - } - ] - } - ] - ] - } - } - ], - "Merge4": [ - { - "startTime": 1747343994507, - "executionIndex": 25, - "source": [ - { - "previousNode": "Function11" - }, - { - "previousNode": "Function12" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 0, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": [ - { - "item": 1 - }, - { - "item": 1, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": [ - { - "item": 2 - }, - { - "item": 2, - "input": 1 - } - ] - }, - { - "json": { - "title": "Input2item4" - }, - "pairedItem": { - "item": 3, - "input": 1 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994507, - "executionIndex": 26, - "source": [ - { - "previousNode": "Merge" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value1": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - }, - { - "json": { - "value2": 5 - }, - "pairedItem": { - "item": 1 - }, - "index": 1 - } - ] - ] - } - } - ], - "Function1": [ - { - "startTime": 1747343994509, - "executionIndex": 27, - "source": [ - { - "previousNode": "Merge1" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function5": [ - { - "startTime": 1747343994510, - "executionIndex": 28, - "source": [ - { - "previousNode": "Merge5" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function6": [ - { - "startTime": 1747343994511, - "executionIndex": 29, - "source": [ - { - "previousNode": "Merge6" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function7": [ - { - "startTime": 1747343994512, - "executionIndex": 30, - "source": [ - { - "previousNode": "Merge7" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop3": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function8": [ - { - "startTime": 1747343994513, - "executionIndex": 31, - "source": [ - { - "previousNode": "Merge8" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1, - "prop3": 2, - "prop4": -4 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function9": [ - { - "startTime": 1747343994514, - "executionIndex": 32, - "source": [ - { - "previousNode": "Merge9" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function10": [ - { - "startTime": 1747343994515, - "executionIndex": 33, - "source": [ - { - "previousNode": "Merge10" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "prop1": 1, - "prop2": -1 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function3": [ - { - "startTime": 1747343994516, - "executionIndex": 34, - "source": [ - { - "previousNode": "Merge3" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": { - "item": 1 - }, - "index": 1 - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": { - "item": 2 - }, - "index": 2 - } - ] - ] - } - } - ], - "Function2": [ - { - "startTime": 1747343994517, - "executionIndex": 35, - "source": [ - { - "previousNode": "Merge2" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": { - "item": 1 - }, - "index": 1 - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": { - "item": 2 - }, - "index": 2 - } - ] - ] - } - } - ], - "Function4": [ - { - "startTime": 1747343994518, - "executionIndex": 36, - "source": [ - { - "previousNode": "Merge4" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Input2item1" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - }, - { - "json": { - "title": "Input2item2" - }, - "pairedItem": { - "item": 1 - }, - "index": 1 - }, - { - "json": { - "title": "Input2item3" - }, - "pairedItem": { - "item": 2 - }, - "index": 2 - }, - { - "json": { - "title": "Input2item4" - }, - "pairedItem": { - "item": 3 - }, - "index": 3 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.502Z", - "stoppedAt": "2025-05-15T21:19:54.519Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/109-snapshot.json b/test-workflows/snapshots/109-snapshot.json deleted file mode 100644 index d5636a7ce8..0000000000 --- a/test-workflows/snapshots/109-snapshot.json +++ /dev/null @@ -1,423 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343895845, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo": [ - { - "startTime": 1747343895845, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 391, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1, - "deduplicate_id": "1:1621034971", - "name": "Onboarding Campaign", - "type": "segment", - "created": 1614868557, - "updated": 1621034971, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "created_by": "nodeqa@n8n.io", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo3": [ - { - "startTime": 1747343896236, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 184, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "customer1747343896241", - "email": "fakeemail1747343896244@gmail.com" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo1": [ - { - "startTime": 1747343896420, - "executionIndex": 3, - "source": [ - { - "previousNode": "CustomerIo" - } - ], - "hints": [], - "executionTime": 393, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "series": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo5": [ - { - "startTime": 1747343896813, - "executionIndex": 4, - "source": [ - { - "previousNode": "CustomerIo3" - } - ], - "hints": [], - "executionTime": 173, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo7": [ - { - "startTime": 1747343896986, - "executionIndex": 5, - "source": [ - { - "previousNode": "CustomerIo3" - } - ], - "hints": [], - "executionTime": 167, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo2": [ - { - "startTime": 1747343897153, - "executionIndex": 6, - "source": [ - { - "previousNode": "CustomerIo1" - } - ], - "hints": [], - "executionTime": 365, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1, - "deduplicate_id": "1:1621034971", - "name": "Onboarding Campaign", - "type": "segment", - "created": 1614868557, - "updated": 1621034971, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 2, - "deduplicate_id": "2:1621034971", - "name": "Re-engage Inactive Users", - "type": "segment", - "created": 1614868557, - "updated": 1621034971, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 4, - "deduplicate_id": "4:1646029232", - "name": "Order Confirmation", - "type": "event", - "created": 1614868557, - "updated": 1646029232, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "tags": [ - "json array" - ], - "event_name": "purchase" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 5, - "deduplicate_id": "5:1646029232", - "name": "Anniversary Campaign", - "type": "date", - "created": 1614868557, - "updated": 1646029232, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "tags": [ - "json array" - ], - "frequency": "yearly", - "date_attribute": "created_at", - "timezone": "US/Eastern", - "use_customer_timezone": false, - "start_hour": 10, - "start_minutes": 0 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 7, - "deduplicate_id": "7:1657207430", - "name": "test cmpg", - "type": "segment", - "created": 1657207358, - "updated": 1657207430, - "active": false, - "state": "draft", - "actions": [ - "json array" - ], - "first_started": 0, - "tags": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo6": [ - { - "startTime": 1747343897518, - "executionIndex": 7, - "source": [ - { - "previousNode": "CustomerIo5" - } - ], - "hints": [], - "executionTime": 166, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo8": [ - { - "startTime": 1747343897684, - "executionIndex": 8, - "source": [ - { - "previousNode": "CustomerIo7" - } - ], - "hints": [], - "executionTime": 178, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CustomerIo4": [ - { - "startTime": 1747343897862, - "executionIndex": 9, - "source": [ - { - "previousNode": "CustomerIo8" - } - ], - "hints": [], - "executionTime": 168, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "CustomerIo4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:18:15.844Z", - "stoppedAt": "2025-05-15T21:18:18.030Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/11-snapshot.json b/test-workflows/snapshots/11-snapshot.json deleted file mode 100644 index 07206f8aed..0000000000 --- a/test-workflows/snapshots/11-snapshot.json +++ /dev/null @@ -1,642 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994528, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp1": [ - { - "startTime": 1747343994528, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2401, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c81277605b129fdafaacede5ae34e07c", - "email_address": "nodeqa@n8n.io", - "unique_email_id": "cb7624ba4b", - "contact_id": "2f4ff7f445018adb50969f99df88dd9e", - "full_name": "node qa", - "web_id": 502612022, - "email_type": "html", - "status": "subscribed", - "consents_to_one_to_one_messaging": true, - "sms_phone_number": "", - "sms_subscription_status": "", - "sms_subscription_last_updated": "", - "merge_fields": { - "object": true - }, - "interests": { - "object": true - }, - "stats": { - "object": true - }, - "ip_signup": "", - "timestamp_signup": "", - "ip_opt": "41.62.62.149", - "timestamp_opt": "2021-02-19T10:59:04+00:00", - "member_rating": 2, - "last_changed": "2025-05-15T21:19:00+00:00", - "language": "", - "vip": false, - "email_client": "", - "location": { - "object": true - }, - "source": "Admin Add", - "tags_count": 0, - "tags": [ - "json array" - ], - "list_id": "eb9ad4be19", - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343996929, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "test43996930@gmail.com" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp7": [ - { - "startTime": 1747343996930, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 398, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "category_id": "2adbc0d543", - "list_id": "eb9ad4be19", - "id": "928c597e2a", - "name": "QA", - "subscriber_count": "1", - "display_order": 1, - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp8": [ - { - "startTime": 1747343997328, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 446, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "e117a6f053", - "status": "sent", - "settings": { - "object": true - }, - "tracking": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp": [ - { - "startTime": 1747343997774, - "executionIndex": 5, - "source": [ - { - "previousNode": "Mailchimp1" - } - ], - "hints": [], - "executionTime": 359, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c81277605b129fdafaacede5ae34e07c", - "email_address": "nodeqa@n8n.io", - "unique_email_id": "cb7624ba4b", - "contact_id": "2f4ff7f445018adb50969f99df88dd9e", - "full_name": "node qa", - "web_id": 502612022, - "email_type": "html", - "status": "subscribed", - "consents_to_one_to_one_messaging": true, - "sms_phone_number": "", - "sms_subscription_status": "", - "sms_subscription_last_updated": "", - "merge_fields": { - "object": true - }, - "interests": { - "object": true - }, - "stats": { - "object": true - }, - "ip_signup": "", - "timestamp_signup": "", - "ip_opt": "41.62.62.149", - "timestamp_opt": "2021-02-19T10:59:04+00:00", - "member_rating": 2, - "last_changed": "2025-05-15T21:19:00+00:00", - "language": "", - "vip": false, - "email_client": "", - "location": { - "object": true - }, - "source": "Admin Add", - "tags_count": 0, - "tags": [ - "json array" - ], - "list_id": "eb9ad4be19", - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp3": [ - { - "startTime": 1747343998133, - "executionIndex": 6, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 571, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "e73ff29160716a59a89fa9ebe5dfb51d", - "email_address": "test43996930@gmail.com", - "unique_email_id": "a157130acb", - "contact_id": "77fbbbd43baa1fdc2164af11cdc785a5", - "full_name": "", - "web_id": 606621185, - "email_type": "html", - "status": "subscribed", - "consents_to_one_to_one_messaging": true, - "sms_phone_number": "", - "sms_subscription_status": "", - "sms_subscription_last_updated": "", - "merge_fields": { - "object": true - }, - "interests": { - "object": true - }, - "stats": { - "object": true - }, - "ip_signup": "", - "timestamp_signup": "", - "ip_opt": "193.203.152.163", - "timestamp_opt": "2025-05-15T21:19:58+00:00", - "member_rating": 2, - "last_changed": "2025-05-15T21:19:58+00:00", - "language": "", - "vip": false, - "email_client": "", - "location": { - "object": true - }, - "source": "API - Generic", - "tags_count": 0, - "tags": [ - "json array" - ], - "list_id": "eb9ad4be19", - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp9": [ - { - "startTime": 1747343998704, - "executionIndex": 7, - "source": [ - { - "previousNode": "Mailchimp8" - } - ], - "hints": [], - "executionTime": 372, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "e117a6f053", - "web_id": 4820246, - "type": "plaintext", - "create_time": "2021-02-19T12:32:03+00:00", - "archive_url": "http://eepurl.com/hq3G0v", - "long_archive_url": "https://us1.campaign-archive.com/?u=396affb9e515ed83edaecbba9&id=e117a6f053", - "status": "sent", - "emails_sent": 1, - "send_time": "2021-02-19T12:33:21+00:00", - "content_type": "template", - "needs_block_refresh": false, - "resendable": false, - "recipients": { - "object": true - }, - "settings": { - "object": true - }, - "tracking": { - "object": true - }, - "report_summary": { - "object": true - }, - "delivery_status": { - "object": true - }, - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp2": [ - { - "startTime": 1747343999076, - "executionIndex": 8, - "source": [ - { - "previousNode": "Mailchimp" - } - ], - "hints": [], - "executionTime": 454, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c81277605b129fdafaacede5ae34e07c", - "email_address": "nodeqa@n8n.io", - "unique_email_id": "cb7624ba4b", - "contact_id": "2f4ff7f445018adb50969f99df88dd9e", - "full_name": "node qa", - "web_id": 502612022, - "email_type": "html", - "status": "subscribed", - "consents_to_one_to_one_messaging": true, - "sms_phone_number": "", - "sms_subscription_status": "", - "sms_subscription_last_updated": "", - "merge_fields": { - "object": true - }, - "interests": { - "object": true - }, - "stats": { - "object": true - }, - "ip_signup": "", - "timestamp_signup": "", - "ip_opt": "41.62.62.149", - "timestamp_opt": "2021-02-19T10:59:04+00:00", - "member_rating": 2, - "last_changed": "2025-05-15T21:19:00+00:00", - "language": "", - "vip": false, - "email_client": "", - "location": { - "object": true - }, - "source": "Admin Add", - "tags_count": 0, - "tags": [ - "json array" - ], - "list_id": "eb9ad4be19", - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp4": [ - { - "startTime": 1747343999530, - "executionIndex": 9, - "source": [ - { - "previousNode": "Mailchimp" - } - ], - "hints": [], - "executionTime": 429, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp6": [ - { - "startTime": 1747343999959, - "executionIndex": 10, - "source": [ - { - "previousNode": "Mailchimp3" - } - ], - "hints": [], - "executionTime": 514, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp10": [ - { - "startTime": 1747344000473, - "executionIndex": 11, - "source": [ - { - "previousNode": "Mailchimp9" - } - ], - "hints": [], - "executionTime": 2041, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "3e3f70f4ea", - "web_id": 11040424, - "type": "plaintext", - "create_time": "2025-05-15T21:20:00+00:00", - "archive_url": "http://eepurl.com/jeUIs2", - "long_archive_url": "https://us1.campaign-archive.com/?u=396affb9e515ed83edaecbba9&id=3e3f70f4ea", - "status": "save", - "emails_sent": 0, - "send_time": "", - "content_type": "template", - "needs_block_refresh": false, - "resendable": false, - "recipients": { - "object": true - }, - "settings": { - "object": true - }, - "tracking": { - "object": true - }, - "delivery_status": { - "object": true - }, - "_links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp5": [ - { - "startTime": 1747344002514, - "executionIndex": 12, - "source": [ - { - "previousNode": "Mailchimp4" - } - ], - "hints": [], - "executionTime": 369, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailchimp11": [ - { - "startTime": 1747344002883, - "executionIndex": 13, - "source": [ - { - "previousNode": "Mailchimp10" - } - ], - "hints": [], - "executionTime": 621, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mailchimp11" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.527Z", - "stoppedAt": "2025-05-15T21:20:03.504Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/110-snapshot.json b/test-workflows/snapshots/110-snapshot.json deleted file mode 100644 index a9aeaa27a3..0000000000 --- a/test-workflows/snapshots/110-snapshot.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343907477, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "GraphQL": [ - { - "startTime": 1747343907477, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 177, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343907655, - "executionIndex": 2, - "source": [ - { - "previousNode": "GraphQL" - } - ], - "hints": [], - "executionTime": 4, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:18:27.477Z", - "stoppedAt": "2025-05-15T21:18:27.659Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/111-snapshot.json b/test-workflows/snapshots/111-snapshot.json deleted file mode 100644 index bc3ba27fcd..0000000000 --- a/test-workflows/snapshots/111-snapshot.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994482, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994482, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spreadsheet File": [ - { - "startTime": 1747343994484, - "executionIndex": 2, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 7, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "mimeType": "text/html", - "fileType": "html", - "fileExtension": "html", - "data": "PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT48dGFibGU+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMCIgaWQ9InNqcy1BMSI+bmFtZXMuMDwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJuYW1lcy4xIiBpZD0ic2pzLUIxIj5uYW1lcy4xPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9Im5hbWVzLjIiIGlkPSJzanMtQzEiPm5hbWVzLjI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMyIgaWQ9InNqcy1EMSI+bmFtZXMuMzwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MSIgaWQ9InNqcy1BMiI+dGVzdDE8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEyIiBpZD0ic2pzLUIyIj50ZXN0MTI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEzIiBpZD0ic2pzLUMyIj50ZXN0MTM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDE0IiBpZD0ic2pzLUQyIj50ZXN0MTQ8L3RkPjwvdHI+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDIiIGlkPSJzanMtQTMiPnRlc3QyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMiIgaWQ9InNqcy1CMyI+dGVzdDIyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMyIgaWQ9InNqcy1DMyI+dGVzdDIzPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyNCIgaWQ9InNqcy1EMyI+dGVzdDI0PC90ZD48L3RyPjx0cj48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QzIiBpZD0ic2pzLUE0Ij50ZXN0MzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzIiIGlkPSJzanMtQjQiPnRlc3QzMjwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzMiIGlkPSJzanMtQzQiPnRlc3QzMzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzQiIGlkPSJzanMtRDQiPnRlc3QzNDwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0NCIgaWQ9InNqcy1BNSI+dGVzdDQ8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQyIiBpZD0ic2pzLUI1Ij50ZXN0NDI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQzIiBpZD0ic2pzLUM1Ij50ZXN0NDM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQ0IiBpZD0ic2pzLUQ1Ij50ZXN0NDQ8L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPg==", - "fileName": "spreadsheet.html", - "fileSize": "1.24 kB" - } - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 1 - }, - { - "item": 2 - }, - { - "item": 3 - } - ] - } - ] - ] - } - } - ], - "Function1": [ - { - "startTime": 1747343994491, - "executionIndex": 3, - "source": [ - { - "previousNode": "Spreadsheet File" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "mimeType": "text/html", - "fileType": "html", - "fileExtension": "html", - "data": "PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT48dGFibGU+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMCIgaWQ9InNqcy1BMSI+bmFtZXMuMDwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJuYW1lcy4xIiBpZD0ic2pzLUIxIj5uYW1lcy4xPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9Im5hbWVzLjIiIGlkPSJzanMtQzEiPm5hbWVzLjI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMyIgaWQ9InNqcy1EMSI+bmFtZXMuMzwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MSIgaWQ9InNqcy1BMiI+dGVzdDE8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEyIiBpZD0ic2pzLUIyIj50ZXN0MTI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEzIiBpZD0ic2pzLUMyIj50ZXN0MTM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDE0IiBpZD0ic2pzLUQyIj50ZXN0MTQ8L3RkPjwvdHI+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDIiIGlkPSJzanMtQTMiPnRlc3QyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMiIgaWQ9InNqcy1CMyI+dGVzdDIyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMyIgaWQ9InNqcy1DMyI+dGVzdDIzPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyNCIgaWQ9InNqcy1EMyI+dGVzdDI0PC90ZD48L3RyPjx0cj48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QzIiBpZD0ic2pzLUE0Ij50ZXN0MzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzIiIGlkPSJzanMtQjQiPnRlc3QzMjwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzMiIGlkPSJzanMtQzQiPnRlc3QzMzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzQiIGlkPSJzanMtRDQiPnRlc3QzNDwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0NCIgaWQ9InNqcy1BNSI+dGVzdDQ8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQyIiBpZD0ic2pzLUI1Ij50ZXN0NDI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQzIiBpZD0ic2pzLUM1Ij50ZXN0NDM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQ0IiBpZD0ic2pzLUQ1Ij50ZXN0NDQ8L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPg==", - "fileName": "spreadsheet.html", - "fileSize": "1.24 kB" - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Spreadsheet File1": [ - { - "startTime": 1747343994493, - "executionIndex": 4, - "source": [ - { - "previousNode": "Spreadsheet File" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "names.0": "test1", - "names.1": "test12", - "names.2": "test13", - "names.3": "test14" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names.0": "test2", - "names.1": "test22", - "names.2": "test23", - "names.3": "test24" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names.0": "test3", - "names.1": "test32", - "names.2": "test33", - "names.3": "test34" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "names.0": "test4", - "names.1": "test42", - "names.2": "test43", - "names.3": "test44" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function2": [ - { - "startTime": 1747343994496, - "executionIndex": 5, - "source": [ - { - "previousNode": "Spreadsheet File1" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "names.0": "test1", - "names.1": "test12", - "names.2": "test13", - "names.3": "test14" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - }, - { - "json": { - "names.0": "test2", - "names.1": "test22", - "names.2": "test23", - "names.3": "test24" - }, - "pairedItem": { - "item": 1 - }, - "index": 1 - }, - { - "json": { - "names.0": "test3", - "names.1": "test32", - "names.2": "test33", - "names.3": "test34" - }, - "pairedItem": { - "item": 2 - }, - "index": 2 - }, - { - "json": { - "names.0": "test4", - "names.1": "test42", - "names.2": "test43", - "names.3": "test44" - }, - "pairedItem": { - "item": 3 - }, - "index": 3 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.482Z", - "stoppedAt": "2025-05-15T21:19:54.498Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/112-snapshot.json b/test-workflows/snapshots/112-snapshot.json deleted file mode 100644 index ad81ee5372..0000000000 --- a/test-workflows/snapshots/112-snapshot.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331886879, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RabbitMQ": [ - { - "startTime": 1710331886879, - "executionTime": 703, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RabbitMQ1": [ - { - "startTime": 1710331887582, - "executionTime": 244, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RabbitMQ2": [ - { - "startTime": 1710331887826, - "executionTime": 262, - "source": [ - { - "previousNode": "RabbitMQ1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RabbitMQ3": [ - { - "startTime": 1710331888088, - "executionTime": 260, - "source": [ - { - "previousNode": "RabbitMQ2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RabbitMQ4": [ - { - "startTime": 1710331888349, - "executionTime": 240, - "source": [ - { - "previousNode": "RabbitMQ3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "RabbitMQ4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:26.879Z", - "stoppedAt": "2024-03-13T12:11:28.589Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/113-snapshot.json b/test-workflows/snapshots/113-snapshot.json deleted file mode 100644 index 5d49069f3e..0000000000 --- a/test-workflows/snapshots/113-snapshot.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887198, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1710331887198, - "executionTime": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "message": "AMQPMessage1710331887201" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AMQP Sender": [ - { - "startTime": 1710331887201, - "executionTime": 449, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AMQP Sender" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.197Z", - "stoppedAt": "2024-03-13T12:11:27.650Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/114-snapshot.json b/test-workflows/snapshots/114-snapshot.json deleted file mode 100644 index e2375c9096..0000000000 --- a/test-workflows/snapshots/114-snapshot.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994499, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com": [ - { - "startTime": 1747343994499, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1493, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163279560" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com1": [ - { - "startTime": 1747343995992, - "executionIndex": 2, - "source": [ - { - "previousNode": "Monday.com" - } - ], - "hints": [], - "executionTime": 705, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163279560", - "name": "Board1747343994501", - "description": { - "object": true - }, - "state": "active", - "board_folder_id": { - "object": true - }, - "board_kind": "private", - "owners": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com2": [ - { - "startTime": 1747343996697, - "executionIndex": 3, - "source": [ - { - "previousNode": "Monday.com1" - } - ], - "hints": [], - "executionTime": 363, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163279560", - "name": "Board1747343994501", - "description": { - "object": true - }, - "state": "active", - "board_folder_id": { - "object": true - }, - "board_kind": "private", - "owners": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com4": [ - { - "startTime": 1747343997060, - "executionIndex": 4, - "source": [ - { - "previousNode": "Monday.com2" - } - ], - "hints": [], - "executionTime": 820, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "boolean_mkqzts11" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com6": [ - { - "startTime": 1747343997880, - "executionIndex": 5, - "source": [ - { - "previousNode": "Monday.com4" - } - ], - "hints": [], - "executionTime": 707, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "group_mkqzjrxd" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com9": [ - { - "startTime": 1747343998587, - "executionIndex": 6, - "source": [ - { - "previousNode": "Monday.com6" - } - ], - "hints": [], - "executionTime": 699, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com10": [ - { - "startTime": 1747343999286, - "executionIndex": 7, - "source": [ - { - "previousNode": "Monday.com9" - } - ], - "hints": [], - "executionTime": 1154, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "4124607906" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com11": [ - { - "startTime": 1747344000440, - "executionIndex": 8, - "source": [ - { - "previousNode": "Monday.com10" - } - ], - "hints": [], - "executionTime": 627, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com12": [ - { - "startTime": 1747344001067, - "executionIndex": 9, - "source": [ - { - "previousNode": "Monday.com11" - } - ], - "hints": [], - "executionTime": 334, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038", - "name": "Item1747343998592", - "created_at": "2025-05-15T21:19:59Z", - "state": "active", - "column_values": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com13": [ - { - "startTime": 1747344001401, - "executionIndex": 10, - "source": [ - { - "previousNode": "Monday.com12" - } - ], - "hints": [], - "executionTime": 568, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038", - "name": "Item1747343998592", - "created_at": "2025-05-15T21:19:59Z", - "state": "active", - "column_values": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com14": [ - { - "startTime": 1747344001969, - "executionIndex": 11, - "source": [ - { - "previousNode": "Monday.com13" - } - ], - "hints": [], - "executionTime": 562, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163279581", - "name": "Task 1", - "created_at": "2025-05-15T21:19:55Z", - "state": "active", - "board": { - "object": true - }, - "column_values": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com15": [ - { - "startTime": 1747344002531, - "executionIndex": 12, - "source": [ - { - "previousNode": "Monday.com14" - } - ], - "hints": [], - "executionTime": 819, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com16": [ - { - "startTime": 1747344003350, - "executionIndex": 13, - "source": [ - { - "previousNode": "Monday.com15" - } - ], - "hints": [], - "executionTime": 809, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163280038" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com7": [ - { - "startTime": 1747344004159, - "executionIndex": 14, - "source": [ - { - "previousNode": "Monday.com16" - } - ], - "hints": [], - "executionTime": 1162, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "group_mkqzjrxd" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com8": [ - { - "startTime": 1747344005321, - "executionIndex": 15, - "source": [ - { - "previousNode": "Monday.com7" - } - ], - "hints": [], - "executionTime": 373, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "topics", - "title": "Group Title", - "color": "#037f4c", - "position": "65536", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Monday.com5": [ - { - "startTime": 1747344005695, - "executionIndex": 16, - "source": [ - { - "previousNode": "Monday.com8" - } - ], - "hints": [], - "executionTime": 340, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "name", - "title": "Name", - "type": "name", - "settings_str": "{}", - "archived": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "boolean_mkqzts11", - "title": "Column1747343997063", - "type": "checkbox", - "settings_str": "{}", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "startTime": 1747344006035, - "executionIndex": 17, - "source": [ - { - "previousNode": "Monday.com5" - }, - { - "previousNode": "Monday.com5" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 1 - } - ] - } - ] - ] - } - } - ], - "Monday.com3": [ - { - "startTime": 1747344006036, - "executionIndex": 18, - "source": [ - { - "previousNode": "Merge" - } - ], - "hints": [], - "executionTime": 660, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9163279560" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Monday.com3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.498Z", - "stoppedAt": "2025-05-15T21:20:06.696Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/115-snapshot.json b/test-workflows/snapshots/115-snapshot.json deleted file mode 100644 index 569dc8085e..0000000000 --- a/test-workflows/snapshots/115-snapshot.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887209, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cockpit": [ - { - "startTime": 1710331887209, - "executionTime": 302, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Name": "entry1710331887212", - "_by": "604887bce94fea0ea177c951", - "_modified": 1710331887, - "_created": 1710331887, - "_id": "65f197ef674387269e75af55" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cockpit3": [ - { - "startTime": 1710331887511, - "executionTime": 83, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "FixedName", - "_mby": "604887bce94fea0ea177c951", - "_by": "604887bce94fea0ea177c951" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cockpit4": [ - { - "startTime": 1710331887594, - "executionTime": 74, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "name1710331887596", - "tag": "tag1710331887597" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cockpit1": [ - { - "startTime": 1710331887668, - "executionTime": 76, - "source": [ - { - "previousNode": "Cockpit" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "65f197ef674387269e75af55", - "Name": "UpdatedEntry1710331887671", - "_by": "604887bce94fea0ea177c951", - "_modified": 1710331887 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cockpit2": [ - { - "startTime": 1710331887744, - "executionTime": 55, - "source": [ - { - "previousNode": "Cockpit1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Name": "UpdatedEntry1615366572785", - "_by": "604887bce94fea0ea177c951", - "_modified": 1615366572, - "_created": 1615366532, - "_id": "6048898478f13b61a46fc881" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Cockpit2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.209Z", - "stoppedAt": "2024-03-13T12:11:27.799Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/116-snapshot.json b/test-workflows/snapshots/116-snapshot.json deleted file mode 100644 index 3f540e7358..0000000000 --- a/test-workflows/snapshots/116-snapshot.json +++ /dev/null @@ -1,611 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891405872, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost": [ - { - "startTime": 1676891405873, - "executionTime": 475, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "63f3550e3464df0001bf1bbc", - "uuid": "25ff3cb7-725f-478d-9710-8798ce3ceccd", - "title": "PostTitle1676891405907", - "slug": "posttitle1676891405907", - "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Post Content written at 1676891405907\"]]]]}", - "comment_id": "63f3550e3464df0001bf1bbc", - "feature_image": { - "object": true - }, - "featured": false, - "status": "draft", - "visibility": "public", - "created_at": "2023-02-20T11:10:06.000Z", - "updated_at": "2023-02-20T11:10:06.000Z", - "published_at": { - "object": true - }, - "custom_excerpt": { - "object": true - }, - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "authors": [ - "json array" - ], - "tags": [ - "json array" - ], - "primary_author": { - "object": true - }, - "primary_tag": { - "object": true - }, - "url": "http://localhost:2368/p/25ff3cb7-725f-478d-9710-8798ce3ceccd/", - "excerpt": "Post Content written at 1676891405907", - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost1": [ - { - "startTime": 1676891406348, - "executionTime": 386, - "source": [ - { - "previousNode": "Ghost" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "63f3550e3464df0001bf1bbc", - "uuid": "25ff3cb7-725f-478d-9710-8798ce3ceccd", - "title": "UpdateTitle1676891406349", - "slug": "posttitle1676891405907", - "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Post Content written at 1676891405907\"]]]]}", - "comment_id": "63f3550e3464df0001bf1bbc", - "feature_image": { - "object": true - }, - "featured": false, - "status": "draft", - "visibility": "public", - "created_at": "2023-02-20T11:10:06.000Z", - "updated_at": "2023-02-20T11:10:06.000Z", - "published_at": { - "object": true - }, - "custom_excerpt": { - "object": true - }, - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "tags": [ - "json array" - ], - "authors": [ - "json array" - ], - "primary_author": { - "object": true - }, - "primary_tag": { - "object": true - }, - "url": "http://localhost:2368/p/25ff3cb7-725f-478d-9710-8798ce3ceccd/", - "excerpt": "Post Content written at 1676891405907", - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost2": [ - { - "startTime": 1676891406734, - "executionTime": 248, - "source": [ - { - "previousNode": "Ghost1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "63f3550e3464df0001bf1bbc", - "uuid": "25ff3cb7-725f-478d-9710-8798ce3ceccd", - "title": "UpdateTitle1676891406349", - "slug": "posttitle1676891405907", - "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Post Content written at 1676891405907\"]]]]}", - "comment_id": "63f3550e3464df0001bf1bbc", - "feature_image": { - "object": true - }, - "featured": false, - "status": "draft", - "visibility": "public", - "created_at": "2023-02-20T11:10:06.000Z", - "updated_at": "2023-02-20T11:10:06.000Z", - "published_at": { - "object": true - }, - "custom_excerpt": { - "object": true - }, - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "tags": [ - "json array" - ], - "authors": [ - "json array" - ], - "primary_author": { - "object": true - }, - "primary_tag": { - "object": true - }, - "url": "http://localhost:2368/p/25ff3cb7-725f-478d-9710-8798ce3ceccd/", - "excerpt": "Post Content written at 1676891405907", - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost3": [ - { - "startTime": 1676891406983, - "executionTime": 244, - "source": [ - { - "previousNode": "Ghost2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "63f3550e3464df0001bf1bbc", - "uuid": "25ff3cb7-725f-478d-9710-8798ce3ceccd", - "title": "UpdateTitle1676891406349", - "slug": "posttitle1676891405907", - "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Post Content written at 1676891405907\"]]]]}", - "comment_id": "63f3550e3464df0001bf1bbc", - "feature_image": { - "object": true - }, - "featured": false, - "status": "draft", - "visibility": "public", - "created_at": "2023-02-20T11:10:06.000Z", - "updated_at": "2023-02-20T11:10:06.000Z", - "published_at": { - "object": true - }, - "custom_excerpt": { - "object": true - }, - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "tags": [ - "json array" - ], - "authors": [ - "json array" - ], - "primary_author": { - "object": true - }, - "primary_tag": { - "object": true - }, - "url": "http://localhost:2368/p/25ff3cb7-725f-478d-9710-8798ce3ceccd/", - "excerpt": "Post Content written at 1676891405907", - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost4": [ - { - "startTime": 1676891407227, - "executionTime": 164, - "source": [ - { - "previousNode": "Ghost3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "60489c2d8b68c800011955f0", - "uuid": "51c60db4-8ef0-4de9-8529-c1cde7460591", - "title": "Welcome to Ghost", - "slug": "welcome", - "html": "

A few things you should know

  1. Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for.
  2. The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog.
  3. It's possible to work with all your favourite tools and apps with hundreds of integrations to speed up your workflows, connect email lists, build communities and much more.

Behind the scenes

Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our Ghost(Pro) service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.

The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source community.

Next up, the editor

The main thing you'll want to read about next is probably: the Ghost editor. This is where the good stuff happens.

By the way, once you're done reading, you can simply delete the default Ghost user from your team to remove all of these introductory posts!
", - "comment_id": "60489c2d8b68c800011955f0", - "feature_image": "https://static.ghost.org/v3.0.0/images/welcome-to-ghost.png", - "featured": false, - "visibility": "public", - "email_recipient_filter": "none", - "created_at": "2021-03-10T10:15:09.000+00:00", - "updated_at": "2021-03-10T10:15:09.000+00:00", - "published_at": "2021-03-10T10:15:15.000+00:00", - "custom_excerpt": "Welcome, it's great to have you here.\nWe know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.", - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "url": "http://localhost:2368/welcome/", - "excerpt": "Welcome, it's great to have you here.\nWe know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.", - "reading_time": 1, - "access": true, - "send_email_when_published": false, - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - }, - "email_subject": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost5": [ - { - "startTime": 1676891407391, - "executionTime": 182, - "source": [ - { - "previousNode": "Ghost4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "60489c2d8b68c800011955f0", - "uuid": "51c60db4-8ef0-4de9-8529-c1cde7460591", - "title": "Welcome to Ghost", - "slug": "welcome", - "html": "

A few things you should know

  1. Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for.
  2. The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog.
  3. It's possible to work with all your favourite tools and apps with hundreds of integrations to speed up your workflows, connect email lists, build communities and much more.

Behind the scenes

Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our Ghost(Pro) service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.

The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source community.

Next up, the editor

The main thing you'll want to read about next is probably: the Ghost editor. This is where the good stuff happens.

By the way, once you're done reading, you can simply delete the default Ghost user from your team to remove all of these introductory posts!
", - "comment_id": "60489c2d8b68c800011955f0", - "feature_image": "https://static.ghost.org/v3.0.0/images/welcome-to-ghost.png", - "featured": false, - "visibility": "public", - "email_recipient_filter": "none", - "created_at": "2021-03-10T10:15:09.000+00:00", - "updated_at": "2021-03-10T10:15:09.000+00:00", - "published_at": "2021-03-10T10:15:15.000+00:00", - "custom_excerpt": "Welcome, it's great to have you here.\nWe know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.", - "codeinjection_head": { - "object": true - }, - "codeinjection_foot": { - "object": true - }, - "custom_template": { - "object": true - }, - "canonical_url": { - "object": true - }, - "url": "http://localhost:2368/welcome/", - "excerpt": "Welcome, it's great to have you here.\nWe know that first impressions are important, so we've populated your new site with some initial getting started posts that will help you get familiar with everything in no time.", - "reading_time": 1, - "access": true, - "send_email_when_published": false, - "og_image": { - "object": true - }, - "og_title": { - "object": true - }, - "og_description": { - "object": true - }, - "twitter_image": { - "object": true - }, - "twitter_title": { - "object": true - }, - "twitter_description": { - "object": true - }, - "meta_title": { - "object": true - }, - "meta_description": { - "object": true - }, - "email_subject": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Ghost6": [ - { - "startTime": 1676891407573, - "executionTime": 170, - "source": [ - { - "previousNode": "Ghost5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Ghost6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:05.871Z", - "stoppedAt": "2023-02-20T11:10:07.743Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/117-snapshot.json b/test-workflows/snapshots/117-snapshot.json deleted file mode 100644 index d3bdd21550..0000000000 --- a/test-workflows/snapshots/117-snapshot.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887222, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gotify": [ - { - "startTime": 1710331887223, - "executionTime": 287, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1306, - "appid": 1, - "message": "Message content 1710331887225", - "title": "Title1710331887228", - "priority": 0, - "date": "2024-03-13T12:11:27.484571026Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gotify1": [ - { - "startTime": 1710331887510, - "executionTime": 58, - "source": [ - { - "previousNode": "Gotify" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1306, - "appid": 1, - "message": "Message content 1710331887225", - "title": "Title1710331887228", - "priority": 0, - "date": "2024-03-13T12:11:27.484571026Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gotify2": [ - { - "startTime": 1710331887568, - "executionTime": 62, - "source": [ - { - "previousNode": "Gotify1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Gotify2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.222Z", - "stoppedAt": "2024-03-13T12:11:27.630Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/118-snapshot.json b/test-workflows/snapshots/118-snapshot.json deleted file mode 100644 index 12dd8d496a..0000000000 --- a/test-workflows/snapshots/118-snapshot.json +++ /dev/null @@ -1,554 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887342, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1710331887342, - "executionTime": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "key": "TestKey", - "value": "Value1710331887344" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Redis": [ - { - "startTime": 1710331887345, - "executionTime": 230, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "redis_version": 6.2, - "redis_git_sha1": 0, - "redis_git_dirty": 0, - "redis_build_id": "a26c8b6d79010f4f", - "redis_mode": "standalone", - "os": "Linux 5.4.0-65-generic x86_64", - "arch_bits": 64, - "multiplexing_api": "epoll", - "atomicvar_api": "c11-builtin", - "gcc_version": 8.3, - "process_id": 1, - "process_supervised": "no", - "run_id": "335ae737a685624354ebf06e053072c8dde37824", - "tcp_port": 6379, - "server_time_usec": 1710331887537701, - "uptime_in_seconds": 34307370, - "uptime_in_days": 397, - "hz": 10, - "configured_hz": 10, - "lru_clock": 15833071, - "executable": "/data/redis-server", - "config_file": "/usr/local/etc/redis.conf", - "io_threads_active": 0, - "connected_clients": 1, - "cluster_connections": 0, - "maxclients": 10000, - "client_recent_max_input_buffer": 40, - "client_recent_max_output_buffer": 0, - "blocked_clients": 0, - "tracking_clients": 0, - "clients_in_timeout_table": 0, - "used_memory": 988872, - "used_memory_human": "965.70K", - "used_memory_rss": 4448256, - "used_memory_rss_human": "4.24M", - "used_memory_peak": 3094400, - "used_memory_peak_human": "2.95M", - "used_memory_peak_perc": "31.96%", - "used_memory_overhead": 831184, - "used_memory_startup": 810184, - "used_memory_dataset": 157688, - "used_memory_dataset_perc": "88.25%", - "allocator_allocated": 1020376, - "allocator_active": 1339392, - "allocator_resident": 3866624, - "total_system_memory": 16395214848, - "total_system_memory_human": "15.27G", - "used_memory_lua": 37888, - "used_memory_lua_human": "37.00K", - "used_memory_scripts": 0, - "used_memory_scripts_human": "0B", - "number_of_cached_scripts": 0, - "maxmemory": 0, - "maxmemory_human": "0B", - "maxmemory_policy": "noeviction", - "allocator_frag_ratio": 1.31, - "allocator_frag_bytes": 319016, - "allocator_rss_ratio": 2.89, - "allocator_rss_bytes": 2527232, - "rss_overhead_ratio": 1.15, - "rss_overhead_bytes": 581632, - "mem_fragmentation_ratio": 4.51, - "mem_fragmentation_bytes": 3461176, - "mem_not_counted_for_evict": 0, - "mem_replication_backlog": 0, - "mem_clients_slaves": 0, - "mem_clients_normal": 20520, - "mem_aof_buffer": 0, - "mem_allocator": "jemalloc-5.1.0", - "active_defrag_running": 0, - "lazyfree_pending_objects": 0, - "lazyfreed_objects": 0, - "loading": 0, - "current_cow_size": 0, - "current_fork_perc": "0.00%", - "current_save_keys_processed": 0, - "current_save_keys_total": 0, - "rdb_changes_since_last_save": 0, - "rdb_bgsave_in_progress": 0, - "rdb_last_save_time": 1710299433, - "rdb_last_bgsave_status": "ok", - "rdb_last_bgsave_time_sec": 0, - "rdb_current_bgsave_time_sec": "-1", - "rdb_last_cow_size": 483328, - "aof_enabled": 0, - "aof_rewrite_in_progress": 0, - "aof_rewrite_scheduled": 0, - "aof_last_rewrite_time_sec": "-1", - "aof_current_rewrite_time_sec": "-1", - "aof_last_bgrewrite_status": "ok", - "aof_last_write_status": "ok", - "aof_last_cow_size": 0, - "module_fork_in_progress": 0, - "module_fork_last_cow_size": 0, - "total_connections_received": 43137, - "total_commands_processed": 389780, - "instantaneous_ops_per_sec": 1, - "total_net_input_bytes": 7316126, - "total_net_output_bytes": 47053879, - "instantaneous_input_kbps": 0.09, - "instantaneous_output_kbps": 0.11, - "rejected_connections": 0, - "sync_full": 0, - "sync_partial_ok": 0, - "sync_partial_err": 0, - "expired_keys": 0, - "expired_stale_perc": 0, - "expired_time_cap_reached_count": 0, - "expire_cycle_cpu_milliseconds": 1228670, - "evicted_keys": 0, - "keyspace_hits": 3820, - "keyspace_misses": 0, - "pubsub_channels": 0, - "pubsub_patterns": 0, - "latest_fork_usec": 983, - "total_forks": 108873, - "migrate_cached_sockets": 0, - "slave_expires_tracked_keys": 0, - "active_defrag_hits": 0, - "active_defrag_misses": 0, - "active_defrag_key_hits": 0, - "active_defrag_key_misses": 0, - "tracking_total_keys": 0, - "tracking_total_items": 0, - "tracking_total_prefixes": 0, - "unexpected_error_replies": 0, - "total_error_replies": 400712, - "dump_payload_sanitizations": 0, - "total_reads_processed": 266496, - "total_writes_processed": 227508, - "io_threaded_reads_processed": 0, - "io_threaded_writes_processed": 0, - "role": "master", - "connected_slaves": 0, - "master_failover_state": "no-failover", - "master_replid": "5bcfb8d0e50aae43141a6bc4de0e07b90f780906", - "master_replid2": 0, - "master_repl_offset": 0, - "second_repl_offset": "-1", - "repl_backlog_active": 0, - "repl_backlog_size": 1048576, - "repl_backlog_first_byte_offset": 0, - "repl_backlog_histlen": 0, - "used_cpu_sys": 81544.939292, - "used_cpu_user": 114072.000995, - "used_cpu_sys_children": 259.550501, - "used_cpu_user_children": 136.476364, - "used_cpu_sys_main_thread": 81531.244451, - "used_cpu_user_main_thread": 114059.326093, - "errorstat_ERR": { - "object": true - }, - "errorstat_MISCONF": { - "object": true - }, - "errorstat_NOAUTH": { - "object": true - }, - "errorstat_WRONGPASS": { - "object": true - }, - "cluster_enabled": 0, - "db0": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Redis1": [ - { - "startTime": 1710331887575, - "executionTime": 143, - "source": [ - { - "previousNode": "Redis" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "redis_version": 6.2, - "redis_git_sha1": 0, - "redis_git_dirty": 0, - "redis_build_id": "a26c8b6d79010f4f", - "redis_mode": "standalone", - "os": "Linux 5.4.0-65-generic x86_64", - "arch_bits": 64, - "multiplexing_api": "epoll", - "atomicvar_api": "c11-builtin", - "gcc_version": 8.3, - "process_id": 1, - "process_supervised": "no", - "run_id": "335ae737a685624354ebf06e053072c8dde37824", - "tcp_port": 6379, - "server_time_usec": 1710331887537701, - "uptime_in_seconds": 34307370, - "uptime_in_days": 397, - "hz": 10, - "configured_hz": 10, - "lru_clock": 15833071, - "executable": "/data/redis-server", - "config_file": "/usr/local/etc/redis.conf", - "io_threads_active": 0, - "connected_clients": 1, - "cluster_connections": 0, - "maxclients": 10000, - "client_recent_max_input_buffer": 40, - "client_recent_max_output_buffer": 0, - "blocked_clients": 0, - "tracking_clients": 0, - "clients_in_timeout_table": 0, - "used_memory": 988872, - "used_memory_human": "965.70K", - "used_memory_rss": 4448256, - "used_memory_rss_human": "4.24M", - "used_memory_peak": 3094400, - "used_memory_peak_human": "2.95M", - "used_memory_peak_perc": "31.96%", - "used_memory_overhead": 831184, - "used_memory_startup": 810184, - "used_memory_dataset": 157688, - "used_memory_dataset_perc": "88.25%", - "allocator_allocated": 1020376, - "allocator_active": 1339392, - "allocator_resident": 3866624, - "total_system_memory": 16395214848, - "total_system_memory_human": "15.27G", - "used_memory_lua": 37888, - "used_memory_lua_human": "37.00K", - "used_memory_scripts": 0, - "used_memory_scripts_human": "0B", - "number_of_cached_scripts": 0, - "maxmemory": 0, - "maxmemory_human": "0B", - "maxmemory_policy": "noeviction", - "allocator_frag_ratio": 1.31, - "allocator_frag_bytes": 319016, - "allocator_rss_ratio": 2.89, - "allocator_rss_bytes": 2527232, - "rss_overhead_ratio": 1.15, - "rss_overhead_bytes": 581632, - "mem_fragmentation_ratio": 4.51, - "mem_fragmentation_bytes": 3461176, - "mem_not_counted_for_evict": 0, - "mem_replication_backlog": 0, - "mem_clients_slaves": 0, - "mem_clients_normal": 20520, - "mem_aof_buffer": 0, - "mem_allocator": "jemalloc-5.1.0", - "active_defrag_running": 0, - "lazyfree_pending_objects": 0, - "lazyfreed_objects": 0, - "loading": 0, - "current_cow_size": 0, - "current_fork_perc": "0.00%", - "current_save_keys_processed": 0, - "current_save_keys_total": 0, - "rdb_changes_since_last_save": 0, - "rdb_bgsave_in_progress": 0, - "rdb_last_save_time": 1710299433, - "rdb_last_bgsave_status": "ok", - "rdb_last_bgsave_time_sec": 0, - "rdb_current_bgsave_time_sec": "-1", - "rdb_last_cow_size": 483328, - "aof_enabled": 0, - "aof_rewrite_in_progress": 0, - "aof_rewrite_scheduled": 0, - "aof_last_rewrite_time_sec": "-1", - "aof_current_rewrite_time_sec": "-1", - "aof_last_bgrewrite_status": "ok", - "aof_last_write_status": "ok", - "aof_last_cow_size": 0, - "module_fork_in_progress": 0, - "module_fork_last_cow_size": 0, - "total_connections_received": 43137, - "total_commands_processed": 389780, - "instantaneous_ops_per_sec": 1, - "total_net_input_bytes": 7316126, - "total_net_output_bytes": 47053879, - "instantaneous_input_kbps": 0.09, - "instantaneous_output_kbps": 0.11, - "rejected_connections": 0, - "sync_full": 0, - "sync_partial_ok": 0, - "sync_partial_err": 0, - "expired_keys": 0, - "expired_stale_perc": 0, - "expired_time_cap_reached_count": 0, - "expire_cycle_cpu_milliseconds": 1228670, - "evicted_keys": 0, - "keyspace_hits": 3820, - "keyspace_misses": 0, - "pubsub_channels": 0, - "pubsub_patterns": 0, - "latest_fork_usec": 983, - "total_forks": 108873, - "migrate_cached_sockets": 0, - "slave_expires_tracked_keys": 0, - "active_defrag_hits": 0, - "active_defrag_misses": 0, - "active_defrag_key_hits": 0, - "active_defrag_key_misses": 0, - "tracking_total_keys": 0, - "tracking_total_items": 0, - "tracking_total_prefixes": 0, - "unexpected_error_replies": 0, - "total_error_replies": 400712, - "dump_payload_sanitizations": 0, - "total_reads_processed": 266496, - "total_writes_processed": 227508, - "io_threaded_reads_processed": 0, - "io_threaded_writes_processed": 0, - "role": "master", - "connected_slaves": 0, - "master_failover_state": "no-failover", - "master_replid": "5bcfb8d0e50aae43141a6bc4de0e07b90f780906", - "master_replid2": 0, - "master_repl_offset": 0, - "second_repl_offset": "-1", - "repl_backlog_active": 0, - "repl_backlog_size": 1048576, - "repl_backlog_first_byte_offset": 0, - "repl_backlog_histlen": 0, - "used_cpu_sys": 81544.939292, - "used_cpu_user": 114072.000995, - "used_cpu_sys_children": 259.550501, - "used_cpu_user_children": 136.476364, - "used_cpu_sys_main_thread": 81531.244451, - "used_cpu_user_main_thread": 114059.326093, - "errorstat_ERR": { - "object": true - }, - "errorstat_MISCONF": { - "object": true - }, - "errorstat_NOAUTH": { - "object": true - }, - "errorstat_WRONGPASS": { - "object": true - }, - "cluster_enabled": 0, - "db0": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Redis2": [ - { - "startTime": 1710331887718, - "executionTime": 166, - "source": [ - { - "previousNode": "Redis1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "TestKey": "Value1710331887344" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Redis3": [ - { - "startTime": 1710331887885, - "executionTime": 124, - "source": [ - { - "previousNode": "Redis2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value": "Value1710331887344" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Redis4": [ - { - "startTime": 1710331888009, - "executionTime": 126, - "source": [ - { - "previousNode": "Redis3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value": "Value1710331887344" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1710331888135, - "executionTime": 3, - "source": [ - { - "previousNode": "Redis3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value": "Value1710331887344" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.342Z", - "stoppedAt": "2024-03-13T12:11:28.138Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/119-snapshot.json b/test-workflows/snapshots/119-snapshot.json deleted file mode 100644 index d0f9c2130d..0000000000 --- a/test-workflows/snapshots/119-snapshot.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891406511, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891406512, - "executionTime": 65, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90783, - "name": "Name1676891406577" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CrateDB": [ - { - "startTime": 1676891406578, - "executionTime": 322, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90783, - "name": "Name1676891406577" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1676891406901, - "executionTime": 13, - "source": [ - { - "previousNode": "CrateDB" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90783, - "name": "UpdatedName1676891406903" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CrateDB1": [ - { - "startTime": 1676891406916, - "executionTime": 310, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90783, - "name": "UpdatedName1676891406903" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "CrateDB2": [ - { - "startTime": 1676891407227, - "executionTime": 251, - "source": [ - { - "previousNode": "CrateDB1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "CrateDB2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:06.509Z", - "stoppedAt": "2023-02-20T11:10:07.478Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/120-snapshot.json b/test-workflows/snapshots/120-snapshot.json deleted file mode 100644 index b71f50845f..0000000000 --- a/test-workflows/snapshots/120-snapshot.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887427, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1710331887427, - "executionTime": 10, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 65660, - "name": "Name1710331887437" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MySQL": [ - { - "startTime": 1710331887437, - "executionTime": 151, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fieldCount": 0, - "affectedRows": 1, - "insertId": 0, - "info": "", - "serverStatus": 2, - "warningStatus": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1710331887589, - "executionTime": 4, - "source": [ - { - "previousNode": "MySQL" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fieldCount": 0, - "affectedRows": 1, - "insertId": 0, - "info": "", - "serverStatus": 2, - "warningStatus": 0, - "id": 65660, - "name": "UpdatedName1710331887592" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MySQL1": [ - { - "startTime": 1710331887593, - "executionTime": 133, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fieldCount": 0, - "affectedRows": 1, - "insertId": 0, - "info": "Rows matched: 1 Changed: 1 Warnings: 0", - "serverStatus": 34, - "warningStatus": 0, - "changedRows": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MySQL2": [ - { - "startTime": 1710331887726, - "executionTime": 123, - "source": [ - { - "previousNode": "MySQL1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 21457, - "name": "Name1627394768518" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MySQL3": [ - { - "startTime": 1710331887849, - "executionTime": 128, - "source": [ - { - "previousNode": "MySQL2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fieldCount": 0, - "affectedRows": 1, - "insertId": 0, - "info": "", - "serverStatus": 34, - "warningStatus": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "MySQL3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.426Z", - "stoppedAt": "2024-03-13T12:11:27.977Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/124-snapshot.json b/test-workflows/snapshots/124-snapshot.json deleted file mode 100644 index 2e5626f4a1..0000000000 --- a/test-workflows/snapshots/124-snapshot.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891407793, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891407794, - "executionTime": 100, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 545, - "name": "Name1676891407894" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "QuestDB": [ - { - "startTime": 1676891407894, - "executionTime": 172, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 545, - "name": "Name1676891407894" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "QuestDB1": [ - { - "startTime": 1676891408068, - "executionTime": 123, - "source": [ - { - "previousNode": "QuestDB" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 545, - "name": "Name1676891407894" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "QuestDB2": [ - { - "startTime": 1676891408192, - "executionTime": 119, - "source": [ - { - "previousNode": "QuestDB1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "QuestDB2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:07.791Z", - "stoppedAt": "2023-02-20T11:10:08.312Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/125-snapshot.json b/test-workflows/snapshots/125-snapshot.json deleted file mode 100644 index 9d2d326573..0000000000 --- a/test-workflows/snapshots/125-snapshot.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891408444, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891408445, - "executionTime": 42, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 555, - "name": "Name1676891408487" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Postgres": [ - { - "startTime": 1676891408487, - "executionTime": 187, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 555, - "name": "Name1676891408487" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1676891408675, - "executionTime": 3, - "source": [ - { - "previousNode": "Postgres" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 555, - "name": "UpdatedName1676891408677" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Postgres1": [ - { - "startTime": 1676891408678, - "executionTime": 194, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 555, - "name": "UpdatedName1676891408677" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Postgres2": [ - { - "startTime": 1676891408873, - "executionTime": 202, - "source": [ - { - "previousNode": "Postgres1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar456" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": "omar123" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 555, - "name": "UpdatedName1676891408677" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": { - "object": true - }, - "name": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Postgres3": [ - { - "startTime": 1676891409075, - "executionTime": 126, - "source": [ - { - "previousNode": "Postgres2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "Postgres3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:08.443Z", - "stoppedAt": "2023-02-20T11:10:09.202Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/128-snapshot.json b/test-workflows/snapshots/128-snapshot.json deleted file mode 100644 index 59f07446d0..0000000000 --- a/test-workflows/snapshots/128-snapshot.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887439, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Yourls": [ - { - "startTime": 1710331887439, - "executionTime": 121, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "url": { - "object": true - }, - "status": "success", - "message": "https://n8n.io/1710331887441 added to database", - "title": "n8n-ulr with random suffix", - "shorturl": "http://157.90.159.163:8095/10c", - "statusCode": 200 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Yourls1": [ - { - "startTime": 1710331887560, - "executionTime": 80, - "source": [ - { - "previousNode": "Yourls" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "shorturl": "http://157.90.159.163:8095/10c", - "url": "https://n8n.io/1710331887441", - "title": "n8n-ulr with random suffix", - "timestamp": "2024-03-13 12:11:27", - "ip": "84.145.34.143", - "clicks": "0" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Yourls2": [ - { - "startTime": 1710331887641, - "executionTime": 64, - "source": [ - { - "previousNode": "Yourls1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "keyword": "10c", - "shorturl": "http://157.90.159.163:8095/10c", - "longurl": "https://n8n.io/1710331887441", - "title": "n8n-ulr with random suffix", - "message": "success", - "statusCode": 200 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Yourls2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.439Z", - "stoppedAt": "2024-03-13T12:11:27.705Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/130-snapshot.json b/test-workflows/snapshots/130-snapshot.json deleted file mode 100644 index 6307d07557..0000000000 --- a/test-workflows/snapshots/130-snapshot.json +++ /dev/null @@ -1,815 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891410333, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan": [ - { - "startTime": 1676891410334, - "executionTime": 226, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "QDPRfemxRr6XDXZbE", - "defaultSwimlaneId": "7EEQmusaGFfc4beR2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan1": [ - { - "startTime": 1676891410560, - "executionTime": 93, - "source": [ - { - "previousNode": "Wekan" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "QDPRfemxRr6XDXZbE", - "title": "Board1676891410370", - "members": [ - "json array" - ], - "permission": "private", - "color": "belize", - "slug": "board1676891410370", - "archived": false, - "createdAt": "2023-02-20T11:10:10.525Z", - "modifiedAt": "2023-02-20T11:10:10.525Z", - "stars": 0, - "labels": [ - "json array" - ], - "subtasksDefaultBoardId": { - "object": true - }, - "subtasksDefaultListId": { - "object": true - }, - "dateSettingsDefaultBoardId": { - "object": true - }, - "dateSettingsDefaultListId": { - "object": true - }, - "allowsSubtasks": true, - "allowsAttachments": true, - "allowsChecklists": true, - "allowsComments": true, - "allowsDescriptionTitle": true, - "allowsDescriptionText": true, - "allowsActivities": true, - "allowsLabels": true, - "allowsAssignee": true, - "allowsMembers": true, - "allowsRequestedBy": true, - "allowsAssignedBy": true, - "allowsReceivedDate": true, - "allowsStartDate": true, - "allowsEndDate": true, - "allowsDueDate": true, - "presentParentTask": "no-parent", - "isOvertime": false, - "type": "board", - "sort": 4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan2": [ - { - "startTime": 1676891410653, - "executionTime": 87, - "source": [ - { - "previousNode": "Wekan1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "P2rsgwsk7pdqeLvgs", - "title": "Templates" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan4": [ - { - "startTime": 1676891410741, - "executionTime": 129, - "source": [ - { - "previousNode": "Wekan2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "hmHTXSeYTdC2huq4i" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan5": [ - { - "startTime": 1676891410871, - "executionTime": 88, - "source": [ - { - "previousNode": "Wekan4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "hmHTXSeYTdC2huq4i", - "title": "List1676891410743", - "boardId": "QDPRfemxRr6XDXZbE", - "sort": 0, - "starred": false, - "archived": false, - "swimlaneId": "", - "createdAt": "2023-02-20T11:10:10.871Z", - "updatedAt": "2023-02-20T11:10:10.871Z", - "modifiedAt": "2023-02-20T11:10:10.871Z", - "wipLimit": { - "object": true - }, - "type": "list" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan6": [ - { - "startTime": 1676891410959, - "executionTime": 75, - "source": [ - { - "previousNode": "Wekan5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "hmHTXSeYTdC2huq4i", - "title": "List1676891410743" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan8": [ - { - "startTime": 1676891411034, - "executionTime": 106, - "source": [ - { - "previousNode": "Wekan6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan9": [ - { - "startTime": 1676891411140, - "executionTime": 88, - "source": [ - { - "previousNode": "Wekan8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan10": [ - { - "startTime": 1676891411228, - "executionTime": 82, - "source": [ - { - "previousNode": "Wekan9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq", - "title": "UpdatedCard1676891411141", - "boardId": "QDPRfemxRr6XDXZbE", - "listId": "hmHTXSeYTdC2huq4i", - "userId": "E27bvzwJ5A26xfAPG", - "swimlaneId": "CJ44cd7gPRf8qT3Xb", - "sort": 0, - "archived": false, - "parentId": "", - "coverId": "", - "createdAt": "2023-02-20T11:10:11.153Z", - "modifiedAt": "2023-02-20T11:10:11.243Z", - "customFields": [ - "json array" - ], - "dateLastActivity": "2023-02-20T11:10:11.243Z", - "description": "", - "requestedBy": "", - "assignedBy": "", - "labelIds": [ - "json array" - ], - "members": [ - "json array" - ], - "assignees": [ - "json array" - ], - "spentTime": 0, - "isOvertime": false, - "subtaskSort": -1, - "type": "cardType-card", - "linkedId": "", - "vote": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan11": [ - { - "startTime": 1676891411310, - "executionTime": 97, - "source": [ - { - "previousNode": "Wekan10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq", - "title": "UpdatedCard1676891411141", - "description": "", - "assignees": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan13": [ - { - "startTime": 1676891411407, - "executionTime": 79, - "source": [ - { - "previousNode": "Wekan11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "jYfDm5RWaj9H5cCYx" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan17": [ - { - "startTime": 1676891411486, - "executionTime": 180, - "source": [ - { - "previousNode": "Wekan11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "Kjz6WRTqtowBCsSJm" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan14": [ - { - "startTime": 1676891411666, - "executionTime": 95, - "source": [ - { - "previousNode": "Wekan13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "jYfDm5RWaj9H5cCYx", - "userId": "E27bvzwJ5A26xfAPG", - "text": "CardComment1676891411409", - "cardId": "3eghZWSaCNrXDF5Fq", - "boardId": "QDPRfemxRr6XDXZbE", - "createdAt": "2023-02-20T11:10:11.510Z", - "modifiedAt": "2023-02-20T11:10:11.510Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan18": [ - { - "startTime": 1676891411762, - "executionTime": 104, - "source": [ - { - "previousNode": "Wekan17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "Kjz6WRTqtowBCsSJm", - "title": "Checklist1676891411489", - "cardId": "3eghZWSaCNrXDF5Fq", - "sort": 0, - "createdAt": "2023-02-20T11:10:11.607Z", - "modifiedAt": "2023-02-20T11:10:11.606Z", - "items": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan15": [ - { - "startTime": 1676891411867, - "executionTime": 76, - "source": [ - { - "previousNode": "Wekan14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "jYfDm5RWaj9H5cCYx", - "comment": "CardComment1676891411409", - "authorId": "E27bvzwJ5A26xfAPG" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan19": [ - { - "startTime": 1676891411944, - "executionTime": 82, - "source": [ - { - "previousNode": "Wekan18" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "Kjz6WRTqtowBCsSJm", - "title": "Checklist1676891411489" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan16": [ - { - "startTime": 1676891412026, - "executionTime": 122, - "source": [ - { - "previousNode": "Wekan15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan21": [ - { - "startTime": 1676891412149, - "executionTime": 91, - "source": [ - { - "previousNode": "Wekan19" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "ud2FR3gp7ki3dGx5X", - "cardId": "3eghZWSaCNrXDF5Fq", - "checklistId": "Kjz6WRTqtowBCsSJm", - "title": "ChecklistItem1676891411489", - "sort": 0, - "isFinished": false, - "createdAt": "2023-02-20T11:10:11.641Z", - "modifiedAt": "2023-02-20T11:10:11.641Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan22": [ - { - "startTime": 1676891412240, - "executionTime": 79, - "source": [ - { - "previousNode": "Wekan21" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "ud2FR3gp7ki3dGx5X" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan23": [ - { - "startTime": 1676891412319, - "executionTime": 87, - "source": [ - { - "previousNode": "Wekan22" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "ud2FR3gp7ki3dGx5X" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan20": [ - { - "startTime": 1676891412406, - "executionTime": 156, - "source": [ - { - "previousNode": "Wekan23" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "Kjz6WRTqtowBCsSJm" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "startTime": 1676891412562, - "executionTime": 2, - "source": [ - { - "previousNode": "Wekan20" - }, - { - "previousNode": "Wekan16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {} - } - ] - ] - } - } - ], - "Wekan12": [ - { - "startTime": 1676891412565, - "executionTime": 112, - "source": [ - { - "previousNode": "Merge" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "3eghZWSaCNrXDF5Fq" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan7": [ - { - "startTime": 1676891412678, - "executionTime": 108, - "source": [ - { - "previousNode": "Wekan12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "hmHTXSeYTdC2huq4i" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wekan3": [ - { - "startTime": 1676891412786, - "executionTime": 137, - "source": [ - { - "previousNode": "Wekan7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "QDPRfemxRr6XDXZbE" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Wekan3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:10.328Z", - "stoppedAt": "2023-02-20T11:10:12.923Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/131-snapshot.json b/test-workflows/snapshots/131-snapshot.json deleted file mode 100644 index 1d919ca46f..0000000000 --- a/test-workflows/snapshots/131-snapshot.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078143830, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Line": [ - { - "hints": [], - "startTime": 1738078143831, - "executionTime": 1446, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Line" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:29:03.830Z", - "stoppedAt": "2025-01-28T15:29:05.277Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/132-snapshot.json b/test-workflows/snapshots/132-snapshot.json deleted file mode 100644 index 93cabc03cb..0000000000 --- a/test-workflows/snapshots/132-snapshot.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994524, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mandrill": [ - { - "startTime": 1747343994524, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 578, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "nodeqa1747343994527@email.test", - "status": "rejected", - "_id": "8111baeb0ff141db9aa0f2f7cc96a08d", - "reject_reason": "unsigned", - "queued_reason": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mandrill1": [ - { - "startTime": 1747343995102, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 512, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "nodeqa1747343995103@email.test", - "status": "rejected", - "_id": "769293eaca9843c2926c7ec1e5df052a", - "reject_reason": "unsigned", - "queued_reason": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mandrill1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.524Z", - "stoppedAt": "2025-05-15T21:19:55.614Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/133-snapshot.json b/test-workflows/snapshots/133-snapshot.json deleted file mode 100644 index c2f1955bdd..0000000000 --- a/test-workflows/snapshots/133-snapshot.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331887804, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twilio": [ - { - "startTime": 1710331887804, - "executionTime": 661, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "body": "Message1710331887805", - "num_segments": "1", - "direction": "outbound-api", - "from": "+15005550006", - "date_updated": "Wed, 13 Mar 2024 12:11:28 +0000", - "price": { - "object": true - }, - "error_message": { - "object": true - }, - "uri": "/2010-04-01/Accounts/AC8dd0c6e08b0f196d34adde4f00507d9f/Messages/SMd99c4e5b501391cb4fbe91937f23ec3b.json", - "account_sid": "AC8dd0c6e08b0f196d34adde4f00507d9f", - "num_media": "0", - "to": "+15005550006", - "date_created": "Wed, 13 Mar 2024 12:11:28 +0000", - "status": "queued", - "sid": "SMd99c4e5b501391cb4fbe91937f23ec3b", - "date_sent": { - "object": true - }, - "messaging_service_sid": { - "object": true - }, - "error_code": { - "object": true - }, - "price_unit": "USD", - "api_version": "2010-04-01", - "subresource_uris": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Twilio" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:27.804Z", - "stoppedAt": "2024-03-13T12:11:28.465Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/139-snapshot.json b/test-workflows/snapshots/139-snapshot.json deleted file mode 100644 index d717f2bfdb..0000000000 --- a/test-workflows/snapshots/139-snapshot.json +++ /dev/null @@ -1,1081 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891410936, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify": [ - { - "startTime": 1676891410937, - "executionTime": 1041, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 7841209778338, - "title": "Product1676891410950", - "body_html": { - "object": true - }, - "vendor": "nodeqa", - "product_type": "", - "created_at": "2023-02-20T12:10:11+01:00", - "handle": "product1676891410950", - "updated_at": "2023-02-20T12:10:11+01:00", - "published_at": "2023-02-20T12:10:11+01:00", - "template_suffix": { - "object": true - }, - "status": "active", - "published_scope": "web", - "tags": "", - "admin_graphql_api_id": "gid://shopify/Product/7841209778338", - "variants": [ - "json array" - ], - "options": [ - "json array" - ], - "images": [ - "json array" - ], - "image": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify5": [ - { - "startTime": 1676891411978, - "executionTime": 1231, - "source": [ - { - "previousNode": "Shopify" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 5468425748642, - "admin_graphql_api_id": "gid://shopify/Order/5468425748642", - "app_id": 5034533, - "browser_ip": { - "object": true - }, - "buyer_accepts_marketing": false, - "cancel_reason": { - "object": true - }, - "cancelled_at": { - "object": true - }, - "cart_token": { - "object": true - }, - "checkout_id": { - "object": true - }, - "checkout_token": { - "object": true - }, - "closed_at": { - "object": true - }, - "confirmed": true, - "contact_email": "fake1676891411979@gmail.com", - "created_at": "2023-02-20T12:10:12+01:00", - "currency": "EUR", - "current_subtotal_price": "101.00", - "current_subtotal_price_set": { - "object": true - }, - "current_total_discounts": "0.00", - "current_total_discounts_set": { - "object": true - }, - "current_total_duties_set": { - "object": true - }, - "current_total_price": "101.00", - "current_total_price_set": { - "object": true - }, - "current_total_tax": "0.00", - "current_total_tax_set": { - "object": true - }, - "customer_locale": { - "object": true - }, - "device_id": { - "object": true - }, - "discount_codes": [ - "json array" - ], - "email": "fake1676891411979@gmail.com", - "estimated_taxes": false, - "financial_status": "paid", - "fulfillment_status": { - "object": true - }, - "gateway": "", - "landing_site": { - "object": true - }, - "landing_site_ref": { - "object": true - }, - "location_id": { - "object": true - }, - "name": "#1459", - "note": { - "object": true - }, - "note_attributes": [ - "json array" - ], - "number": 459, - "order_number": 1459, - "order_status_url": "https://nodeqa.myshopify.com/55417208994/orders/596116053fc1733011dffefadd82db64/authenticate?key=448c588adb1bc7e54b87b243e1c8ac74", - "original_total_duties_set": { - "object": true - }, - "payment_gateway_names": [ - "json array" - ], - "phone": { - "object": true - }, - "presentment_currency": "EUR", - "processed_at": "2023-02-20T12:10:12+01:00", - "processing_method": "", - "reference": { - "object": true - }, - "referring_site": { - "object": true - }, - "source_identifier": { - "object": true - }, - "source_name": "5034533", - "source_url": { - "object": true - }, - "subtotal_price": "101.00", - "subtotal_price_set": { - "object": true - }, - "tags": "test", - "tax_lines": [ - "json array" - ], - "taxes_included": false, - "test": true, - "token": "596116053fc1733011dffefadd82db64", - "total_discounts": "0.00", - "total_discounts_set": { - "object": true - }, - "total_line_items_price": "101.00", - "total_line_items_price_set": { - "object": true - }, - "total_outstanding": "101.00", - "total_price": "101.00", - "total_price_set": { - "object": true - }, - "total_price_usd": "108.02", - "total_shipping_price_set": { - "object": true - }, - "total_tax": "0.00", - "total_tax_set": { - "object": true - }, - "total_tip_received": "0.00", - "total_weight": 0, - "updated_at": "2023-02-20T12:10:12+01:00", - "user_id": { - "object": true - }, - "customer": { - "object": true - }, - "discount_applications": [ - "json array" - ], - "fulfillments": [ - "json array" - ], - "line_items": [ - "json array" - ], - "payment_terms": { - "object": true - }, - "refunds": [ - "json array" - ], - "shipping_lines": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify6": [ - { - "startTime": 1676891413209, - "executionTime": 610, - "source": [ - { - "previousNode": "Shopify5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 5468425748642, - "admin_graphql_api_id": "gid://shopify/Order/5468425748642", - "app_id": 5034533, - "browser_ip": { - "object": true - }, - "buyer_accepts_marketing": false, - "cancel_reason": { - "object": true - }, - "cancelled_at": { - "object": true - }, - "cart_token": { - "object": true - }, - "checkout_id": { - "object": true - }, - "checkout_token": { - "object": true - }, - "closed_at": { - "object": true - }, - "confirmed": true, - "contact_email": "updatedfake1676891411979@gmail.com", - "created_at": "2023-02-20T12:10:12+01:00", - "currency": "EUR", - "current_subtotal_price": "101.00", - "current_subtotal_price_set": { - "object": true - }, - "current_total_discounts": "0.00", - "current_total_discounts_set": { - "object": true - }, - "current_total_duties_set": { - "object": true - }, - "current_total_price": "101.00", - "current_total_price_set": { - "object": true - }, - "current_total_tax": "0.00", - "current_total_tax_set": { - "object": true - }, - "customer_locale": { - "object": true - }, - "device_id": { - "object": true - }, - "discount_codes": [ - "json array" - ], - "email": "updatedfake1676891411979@gmail.com", - "estimated_taxes": false, - "financial_status": "paid", - "fulfillment_status": { - "object": true - }, - "gateway": "", - "landing_site": { - "object": true - }, - "landing_site_ref": { - "object": true - }, - "location_id": { - "object": true - }, - "name": "#1459", - "note": { - "object": true - }, - "note_attributes": [ - "json array" - ], - "number": 459, - "order_number": 1459, - "order_status_url": "https://nodeqa.myshopify.com/55417208994/orders/596116053fc1733011dffefadd82db64/authenticate?key=448c588adb1bc7e54b87b243e1c8ac74", - "original_total_duties_set": { - "object": true - }, - "payment_gateway_names": [ - "json array" - ], - "phone": { - "object": true - }, - "presentment_currency": "EUR", - "processed_at": "2023-02-20T12:10:12+01:00", - "processing_method": "", - "reference": { - "object": true - }, - "referring_site": { - "object": true - }, - "source_identifier": { - "object": true - }, - "source_name": "5034533", - "source_url": { - "object": true - }, - "subtotal_price": "101.00", - "subtotal_price_set": { - "object": true - }, - "tags": "test", - "tax_lines": [ - "json array" - ], - "taxes_included": false, - "test": true, - "token": "596116053fc1733011dffefadd82db64", - "total_discounts": "0.00", - "total_discounts_set": { - "object": true - }, - "total_line_items_price": "101.00", - "total_line_items_price_set": { - "object": true - }, - "total_outstanding": "101.00", - "total_price": "101.00", - "total_price_set": { - "object": true - }, - "total_price_usd": "108.02", - "total_shipping_price_set": { - "object": true - }, - "total_tax": "0.00", - "total_tax_set": { - "object": true - }, - "total_tip_received": "0.00", - "total_weight": 0, - "updated_at": "2023-02-20T12:10:13+01:00", - "user_id": { - "object": true - }, - "customer": { - "object": true - }, - "discount_applications": [ - "json array" - ], - "fulfillments": [ - "json array" - ], - "line_items": [ - "json array" - ], - "payment_terms": { - "object": true - }, - "refunds": [ - "json array" - ], - "shipping_lines": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify7": [ - { - "startTime": 1676891413820, - "executionTime": 526, - "source": [ - { - "previousNode": "Shopify6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 5468425748642, - "admin_graphql_api_id": "gid://shopify/Order/5468425748642", - "app_id": 5034533, - "browser_ip": { - "object": true - }, - "buyer_accepts_marketing": false, - "cancel_reason": { - "object": true - }, - "cancelled_at": { - "object": true - }, - "cart_token": { - "object": true - }, - "checkout_id": { - "object": true - }, - "checkout_token": { - "object": true - }, - "closed_at": { - "object": true - }, - "confirmed": true, - "contact_email": "updatedfake1676891411979@gmail.com", - "created_at": "2023-02-20T12:10:12+01:00", - "currency": "EUR", - "current_subtotal_price": "101.00", - "current_subtotal_price_set": { - "object": true - }, - "current_total_discounts": "0.00", - "current_total_discounts_set": { - "object": true - }, - "current_total_duties_set": { - "object": true - }, - "current_total_price": "101.00", - "current_total_price_set": { - "object": true - }, - "current_total_tax": "0.00", - "current_total_tax_set": { - "object": true - }, - "customer_locale": { - "object": true - }, - "device_id": { - "object": true - }, - "discount_codes": [ - "json array" - ], - "email": "updatedfake1676891411979@gmail.com", - "estimated_taxes": false, - "financial_status": "paid", - "fulfillment_status": { - "object": true - }, - "gateway": "", - "landing_site": { - "object": true - }, - "landing_site_ref": { - "object": true - }, - "location_id": { - "object": true - }, - "name": "#1459", - "note": { - "object": true - }, - "note_attributes": [ - "json array" - ], - "number": 459, - "order_number": 1459, - "order_status_url": "https://nodeqa.myshopify.com/55417208994/orders/596116053fc1733011dffefadd82db64/authenticate?key=448c588adb1bc7e54b87b243e1c8ac74", - "original_total_duties_set": { - "object": true - }, - "payment_gateway_names": [ - "json array" - ], - "phone": { - "object": true - }, - "presentment_currency": "EUR", - "processed_at": "2023-02-20T12:10:12+01:00", - "processing_method": "", - "reference": { - "object": true - }, - "referring_site": { - "object": true - }, - "source_identifier": { - "object": true - }, - "source_name": "5034533", - "source_url": { - "object": true - }, - "subtotal_price": "101.00", - "subtotal_price_set": { - "object": true - }, - "tags": "test", - "tax_lines": [ - "json array" - ], - "taxes_included": false, - "test": true, - "token": "596116053fc1733011dffefadd82db64", - "total_discounts": "0.00", - "total_discounts_set": { - "object": true - }, - "total_line_items_price": "101.00", - "total_line_items_price_set": { - "object": true - }, - "total_outstanding": "101.00", - "total_price": "101.00", - "total_price_set": { - "object": true - }, - "total_price_usd": "108.02", - "total_shipping_price_set": { - "object": true - }, - "total_tax": "0.00", - "total_tax_set": { - "object": true - }, - "total_tip_received": "0.00", - "total_weight": 0, - "updated_at": "2023-02-20T12:10:13+01:00", - "user_id": { - "object": true - }, - "customer": { - "object": true - }, - "discount_applications": [ - "json array" - ], - "fulfillments": [ - "json array" - ], - "line_items": [ - "json array" - ], - "payment_terms": { - "object": true - }, - "refunds": [ - "json array" - ], - "shipping_lines": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify8": [ - { - "startTime": 1676891414347, - "executionTime": 328, - "source": [ - { - "previousNode": "Shopify7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 5468425748642, - "admin_graphql_api_id": "gid://shopify/Order/5468425748642", - "app_id": 5034533, - "browser_ip": { - "object": true - }, - "buyer_accepts_marketing": false, - "cancel_reason": { - "object": true - }, - "cancelled_at": { - "object": true - }, - "cart_token": { - "object": true - }, - "checkout_id": { - "object": true - }, - "checkout_token": { - "object": true - }, - "closed_at": { - "object": true - }, - "confirmed": true, - "contact_email": "updatedfake1676891411979@gmail.com", - "created_at": "2023-02-20T12:10:12+01:00", - "currency": "EUR", - "current_subtotal_price": "101.00", - "current_subtotal_price_set": { - "object": true - }, - "current_total_discounts": "0.00", - "current_total_discounts_set": { - "object": true - }, - "current_total_duties_set": { - "object": true - }, - "current_total_price": "101.00", - "current_total_price_set": { - "object": true - }, - "current_total_tax": "0.00", - "current_total_tax_set": { - "object": true - }, - "customer_locale": { - "object": true - }, - "device_id": { - "object": true - }, - "discount_codes": [ - "json array" - ], - "email": "updatedfake1676891411979@gmail.com", - "estimated_taxes": false, - "financial_status": "paid", - "fulfillment_status": { - "object": true - }, - "gateway": "", - "landing_site": { - "object": true - }, - "landing_site_ref": { - "object": true - }, - "location_id": { - "object": true - }, - "name": "#1459", - "note": { - "object": true - }, - "note_attributes": [ - "json array" - ], - "number": 459, - "order_number": 1459, - "order_status_url": "https://nodeqa.myshopify.com/55417208994/orders/596116053fc1733011dffefadd82db64/authenticate?key=448c588adb1bc7e54b87b243e1c8ac74", - "original_total_duties_set": { - "object": true - }, - "payment_gateway_names": [ - "json array" - ], - "phone": { - "object": true - }, - "presentment_currency": "EUR", - "processed_at": "2023-02-20T12:10:12+01:00", - "processing_method": "", - "reference": { - "object": true - }, - "referring_site": { - "object": true - }, - "source_identifier": { - "object": true - }, - "source_name": "5034533", - "source_url": { - "object": true - }, - "subtotal_price": "101.00", - "subtotal_price_set": { - "object": true - }, - "tags": "test", - "tax_lines": [ - "json array" - ], - "taxes_included": false, - "test": true, - "token": "596116053fc1733011dffefadd82db64", - "total_discounts": "0.00", - "total_discounts_set": { - "object": true - }, - "total_line_items_price": "101.00", - "total_line_items_price_set": { - "object": true - }, - "total_outstanding": "101.00", - "total_price": "101.00", - "total_price_set": { - "object": true - }, - "total_price_usd": "108.02", - "total_shipping_price_set": { - "object": true - }, - "total_tax": "0.00", - "total_tax_set": { - "object": true - }, - "total_tip_received": "0.00", - "total_weight": 0, - "updated_at": "2023-02-20T12:10:13+01:00", - "user_id": { - "object": true - }, - "customer": { - "object": true - }, - "discount_applications": [ - "json array" - ], - "fulfillments": [ - "json array" - ], - "line_items": [ - "json array" - ], - "payment_terms": { - "object": true - }, - "refunds": [ - "json array" - ], - "shipping_lines": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify9": [ - { - "startTime": 1676891414676, - "executionTime": 588, - "source": [ - { - "previousNode": "Shopify8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify1": [ - { - "startTime": 1676891415264, - "executionTime": 715, - "source": [ - { - "previousNode": "Shopify9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 7841209778338, - "title": "UpdatedProduct1676891410950", - "body_html": { - "object": true - }, - "vendor": "nodeqa", - "product_type": "", - "created_at": "2023-02-20T12:10:11+01:00", - "handle": "product1676891410950", - "updated_at": "2023-02-20T12:10:15+01:00", - "published_at": "2023-02-20T12:10:11+01:00", - "template_suffix": { - "object": true - }, - "status": "active", - "published_scope": "web", - "tags": "", - "admin_graphql_api_id": "gid://shopify/Product/7841209778338", - "variants": [ - "json array" - ], - "options": [ - "json array" - ], - "images": [ - "json array" - ], - "image": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify2": [ - { - "startTime": 1676891415979, - "executionTime": 355, - "source": [ - { - "previousNode": "Shopify1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 7841209778338, - "title": "UpdatedProduct1676891410950", - "body_html": { - "object": true - }, - "vendor": "nodeqa", - "product_type": "", - "created_at": "2023-02-20T12:10:11+01:00", - "handle": "product1676891410950", - "updated_at": "2023-02-20T12:10:15+01:00", - "published_at": "2023-02-20T12:10:11+01:00", - "template_suffix": { - "object": true - }, - "status": "active", - "published_scope": "web", - "tags": "", - "admin_graphql_api_id": "gid://shopify/Product/7841209778338", - "variants": [ - "json array" - ], - "options": [ - "json array" - ], - "images": [ - "json array" - ], - "image": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify3": [ - { - "startTime": 1676891416334, - "executionTime": 319, - "source": [ - { - "previousNode": "Shopify2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 6940369715362, - "title": "Beanie", - "body_html": { - "object": true - }, - "vendor": "nodeqa", - "product_type": "Accessories", - "created_at": "2021-07-19T18:05:28+01:00", - "handle": "beanie", - "updated_at": "2021-08-31T19:36:01+01:00", - "published_at": "2021-07-19T18:05:28+01:00", - "template_suffix": { - "object": true - }, - "status": "active", - "published_scope": "web", - "tags": "", - "admin_graphql_api_id": "gid://shopify/Product/6940369715362", - "variants": [ - "json array" - ], - "options": [ - "json array" - ], - "images": [ - "json array" - ], - "image": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Shopify4": [ - { - "startTime": 1676891416653, - "executionTime": 939, - "source": [ - { - "previousNode": "Shopify3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Shopify4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:10.928Z", - "stoppedAt": "2023-02-20T11:10:17.592Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/140-snapshot.json b/test-workflows/snapshots/140-snapshot.json deleted file mode 100644 index 86625753cb..0000000000 --- a/test-workflows/snapshots/140-snapshot.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994520, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailgun": [ - { - "startTime": 1747343994520, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 689, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "<20250515211955.750e4c368fa24e88@sandbox9d3ed7f14628495f83c01d31dbc98ce4.mailgun.org>", - "message": "Queued. Thank you." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mailgun" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.520Z", - "stoppedAt": "2025-05-15T21:19:55.209Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/143-snapshot.json b/test-workflows/snapshots/143-snapshot.json deleted file mode 100644 index 086917dd30..0000000000 --- a/test-workflows/snapshots/143-snapshot.json +++ /dev/null @@ -1,278 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078145786, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clearbit2": [ - { - "hints": [], - "startTime": 1738078145786, - "executionTime": 523, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "f949b35a-6158-41c7-8b50-dc2c238cfbf3", - "name": { - "object": true - }, - "email": "jan@n8n.io", - "location": "Berlin, Berlin, DE", - "timeZone": "Europe/Berlin", - "utcOffset": 1, - "geo": { - "object": true - }, - "bio": { - "object": true - }, - "site": { - "object": true - }, - "avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/f949b35a-6158-41c7-8b50-dc2c238cfbf3", - "employment": { - "object": true - }, - "facebook": { - "object": true - }, - "github": { - "object": true - }, - "twitter": { - "object": true - }, - "linkedin": { - "object": true - }, - "googleplus": { - "object": true - }, - "gravatar": { - "object": true - }, - "fuzzy": false, - "emailProvider": false, - "indexedAt": "2025-01-16T15:13:36.503Z", - "phone": { - "object": true - }, - "inactiveAt": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clearbit": [ - { - "hints": [], - "startTime": 1738078146310, - "executionTime": 530, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "546ba3f6-a6b7-41a1-aed8-4f9bba4119e8", - "name": "n8n", - "legalName": { - "object": true - }, - "domain": "n8n.io", - "domainAliases": [ - "json array" - ], - "site": { - "object": true - }, - "category": { - "object": true - }, - "tags": [ - "json array" - ], - "description": "n8n.io is a leading low-code automation tool that connects anything to everything through its open, fair code model, enabling users to build multi-step workflows with ease.", - "foundedYear": 2019, - "location": "Borsigstraße 27, 10115 Berlin, Germany", - "timeZone": "Europe/Berlin", - "utcOffset": 1, - "geo": { - "object": true - }, - "logo": "https://logo.clearbit.com/n8n.io", - "facebook": { - "object": true - }, - "linkedin": { - "object": true - }, - "twitter": { - "object": true - }, - "crunchbase": { - "object": true - }, - "emailProvider": false, - "type": "private", - "ticker": { - "object": true - }, - "identifiers": { - "object": true - }, - "phone": { - "object": true - }, - "metrics": { - "object": true - }, - "indexedAt": "2025-01-02T01:00:13.309Z", - "tech": [ - "json array" - ], - "techCategories": [ - "json array" - ], - "parent": { - "object": true - }, - "ultimateParent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clearbit1": [ - { - "hints": [], - "startTime": 1738078146840, - "executionTime": 262, - "source": [ - { - "previousNode": "Clearbit" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Nielsen Norman Group", - "domain": "nngroup.com", - "logo": "https://logo.clearbit.com/nngroup.com" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "name": "Новости НН.ру", - "domain": "nn.ru", - "logo": "https://logo.clearbit.com/nn.ru" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "name": "NNY360", - "domain": "nny360.com", - "logo": "https://logo.clearbit.com/nny360.com" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "name": "City of Newport News, VA - Government", - "domain": "nnva.gov", - "logo": "https://logo.clearbit.com/nnva.gov" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "name": "NNNOW", - "domain": "nnnow.com", - "logo": "https://logo.clearbit.com/nnnow.com" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Clearbit1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:29:05.785Z", - "stoppedAt": "2025-01-28T15:29:07.103Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/145-snapshot.json b/test-workflows/snapshots/145-snapshot.json deleted file mode 100644 index 142ed174a9..0000000000 --- a/test-workflows/snapshots/145-snapshot.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1706635217888, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Peekalink1": [ - { - "startTime": 1706635217888, - "executionTime": 1099, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "url": "https://example.com/", - "domain": "example.com", - "lastUpdated": "2024-01-28T02:10:25.125799Z", - "nextUpdate": "2024-02-04T02:10:25.123122Z", - "contentType": "html", - "mimeType": "text/html", - "size": 648, - "redirected": false, - "title": "Example Domain", - "description": "This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.", - "name": "EXAMPLE.COM", - "trackersDetected": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Peekalink": [ - { - "startTime": 1706635218987, - "executionTime": 285, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "isAvailable": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Peekalink" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-01-30T17:20:17.888Z", - "stoppedAt": "2024-01-30T17:20:19.272Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/146-snapshot.json b/test-workflows/snapshots/146-snapshot.json deleted file mode 100644 index c512f6112d..0000000000 --- a/test-workflows/snapshots/146-snapshot.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891412800, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891412801, - "executionTime": 35, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "temperature": 40.4032385941659, - "location": "n8n", - "time": "2023-02-20T11:10:12.835Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "TimescaleDB": [ - { - "startTime": 1676891412836, - "executionTime": 177, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "time": "2023-02-20T11:10:12.835Z", - "location": "n8n", - "temperature": 40.4032385941659 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "TimescaleDB2": [ - { - "startTime": 1676891413014, - "executionTime": 178, - "source": [ - { - "previousNode": "TimescaleDB" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "time": "2023-02-20T11:10:12.835Z", - "location": "n8n", - "temperature": 40.4032385941659 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1676891413193, - "executionTime": 1, - "source": [ - { - "previousNode": "TimescaleDB2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "time": "2023-02-20T11:10:12.835Z", - "location": "updatedn8n", - "temperature": 40.4032385941659 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "TimescaleDB1": [ - { - "startTime": 1676891413195, - "executionTime": 192, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "time": "2023-02-20T11:10:12.835Z", - "location": "updatedn8n", - "temperature": "40.4032385941659" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "TimescaleDB3": [ - { - "startTime": 1676891413387, - "executionTime": 157, - "source": [ - { - "previousNode": "TimescaleDB1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "TimescaleDB3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:12.798Z", - "stoppedAt": "2023-02-20T11:10:13.544Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/147-snapshot.json b/test-workflows/snapshots/147-snapshot.json deleted file mode 100644 index 27e044ccc6..0000000000 --- a/test-workflows/snapshots/147-snapshot.json +++ /dev/null @@ -1,613 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1683532113975, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop": [ - { - "startTime": 1683532113976, - "executionTime": 482, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tfa": { - "object": true - }, - "files": { - "object": true - }, - "_id": 618756, - "pro": false, - "name": "nodeqa", - "fullName": "nodeqa", - "email": "nodeqa@n8n.io", - "groups": [ - "json array" - ], - "lastAction": "2023-05-08T02:25:37.144Z", - "lastVisit": "2023-05-08T02:23:04.375Z", - "registered": "2021-03-24T08:38:18.892Z", - "lastUpdate": "2023-05-08T02:25:37.144Z", - "config": { - "object": true - }, - "avatar": "", - "password": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop1": [ - { - "startTime": 1683532114459, - "executionTime": 258, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Collection1683532114491", - "description": "", - "user": { - "object": true - }, - "public": false, - "count": 0, - "cover": [ - "json array" - ], - "expanded": true, - "creatorRef": 618756, - "lastAction": "2023-05-08T07:48:34.585Z", - "created": "2023-05-08T07:48:34.586Z", - "lastUpdate": "2023-05-08T07:48:34.586Z", - "_id": 34146645, - "sort": 34146645, - "slug": "collection1683532114491", - "__v": 0, - "access": { - "object": true - }, - "author": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop2": [ - { - "startTime": 1683532114718, - "executionTime": 136, - "source": [ - { - "previousNode": "Raindrop1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "view": "list", - "_id": 34146645, - "title": "Collection1683532114491", - "description": "", - "user": { - "object": true - }, - "public": false, - "count": 0, - "cover": [ - "json array" - ], - "expanded": true, - "creatorRef": { - "object": true - }, - "lastAction": "2023-05-08T07:48:34.585Z", - "created": "2023-05-08T07:48:34.586Z", - "lastUpdate": "2023-05-08T07:48:34.586Z", - "sort": 34146645, - "slug": "collection1683532114491", - "access": { - "object": true - }, - "author": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop3": [ - { - "startTime": 1683532114854, - "executionTime": 165, - "source": [ - { - "previousNode": "Raindrop2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": 34146645, - "title": "UpdatedCollection1683532114491", - "description": "", - "slug": "updated-collection1683532114491", - "user": { - "object": true - }, - "creatorRef": { - "object": true - }, - "public": false, - "view": "list", - "count": 0, - "cover": [ - "json array" - ], - "sort": 34146645, - "expanded": true, - "lastAction": "2023-05-08T07:48:34.585Z", - "created": "2023-05-08T07:48:34.586Z", - "lastUpdate": "2023-05-08T07:48:34.983Z", - "access": { - "object": true - }, - "author": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop4": [ - { - "startTime": 1683532115020, - "executionTime": 137, - "source": [ - { - "previousNode": "Raindrop3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": 34146645, - "title": "UpdatedCollection1683532114491", - "description": "", - "user": { - "object": true - }, - "public": false, - "count": 0, - "cover": [ - "json array" - ], - "expanded": true, - "creatorRef": { - "object": true - }, - "lastAction": "2023-05-08T07:48:34.585Z", - "created": "2023-05-08T07:48:34.586Z", - "lastUpdate": "2023-05-08T07:48:34.983Z", - "sort": 34146645, - "slug": "updated-collection1683532114491", - "view": "list", - "access": { - "object": true - }, - "author": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop6": [ - { - "startTime": 1683532115158, - "executionTime": 191, - "source": [ - { - "previousNode": "Raindrop4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "link": "https://n8n.io/", - "title": "Bookmark1683532115161", - "excerpt": "", - "note": "", - "type": "link", - "user": { - "object": true - }, - "cover": "", - "tags": [ - "json array" - ], - "removed": false, - "collection": { - "object": true - }, - "media": [ - "json array" - ], - "created": "2023-05-08T07:48:35.288Z", - "lastUpdate": "2023-05-08T07:48:35.288Z", - "domain": "n8n.io", - "_id": 569394745, - "creatorRef": 618756, - "sort": 569394745, - "__v": 0, - "collectionId": 34146645 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop7": [ - { - "startTime": 1683532115349, - "executionTime": 132, - "source": [ - { - "previousNode": "Raindrop6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": 569394745, - "link": "https://n8n.io/", - "title": "Bookmark1683532115161", - "excerpt": "", - "note": "", - "type": "link", - "user": { - "object": true - }, - "cover": "", - "tags": [ - "json array" - ], - "removed": false, - "collection": { - "object": true - }, - "media": [ - "json array" - ], - "created": "2023-05-08T07:48:35.288Z", - "lastUpdate": "2023-05-08T07:48:35.288Z", - "domain": "n8n.io", - "creatorRef": { - "object": true - }, - "sort": 569394745, - "highlights": [ - "json array" - ], - "collectionId": 34146645 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop8": [ - { - "startTime": 1683532115482, - "executionTime": 175, - "source": [ - { - "previousNode": "Raindrop7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": 569394745, - "link": "https://n8n.io/", - "domain": "n8n.io", - "title": "UpdatedBookmark1683532115161", - "excerpt": "", - "note": "", - "type": "link", - "user": { - "object": true - }, - "creatorRef": { - "object": true - }, - "cover": "", - "media": [ - "json array" - ], - "tags": [ - "json array" - ], - "highlights": [ - "json array" - ], - "removed": false, - "sort": 569394745, - "created": "2023-05-08T07:48:35.288Z", - "lastUpdate": "2023-05-08T07:48:35.624Z", - "collection": { - "object": true - }, - "__v": 1, - "collectionId": 34146645 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop9": [ - { - "startTime": 1683532115658, - "executionTime": 143, - "source": [ - { - "previousNode": "Raindrop8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": 569394745, - "link": "https://n8n.io/", - "title": "UpdatedBookmark1683532115161", - "excerpt": "", - "note": "", - "type": "link", - "user": { - "object": true - }, - "cover": "", - "tags": [ - "json array" - ], - "removed": false, - "collection": { - "object": true - }, - "media": [ - "json array" - ], - "created": "2023-05-08T07:48:35.288Z", - "lastUpdate": "2023-05-08T07:48:35.624Z", - "domain": "n8n.io", - "creatorRef": { - "object": true - }, - "sort": 569394745, - "highlights": [ - "json array" - ], - "collectionId": 34146645 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop11": [ - { - "startTime": 1683532115802, - "executionTime": 272, - "source": [ - { - "previousNode": "Raindrop9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_id": "automation", - "count": 4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop12": [ - { - "startTime": 1683532116075, - "executionTime": 153, - "source": [ - { - "previousNode": "Raindrop11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop10": [ - { - "startTime": 1683532116228, - "executionTime": 178, - "source": [ - { - "previousNode": "Raindrop12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Raindrop5": [ - { - "startTime": 1683532116406, - "executionTime": 227, - "source": [ - { - "previousNode": "Raindrop10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Raindrop5" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-05-08T07:48:33.974Z", - "stoppedAt": "2023-05-08T07:48:36.634Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/148-snapshot.json b/test-workflows/snapshots/148-snapshot.json deleted file mode 100644 index c59e62edad..0000000000 --- a/test-workflows/snapshots/148-snapshot.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891413308, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "DeepL": [ - { - "startTime": 1676891413309, - "executionTime": 601, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "detected_source_language": "EN", - "text": "n8n (ausgesprochen n-eight-n) hilft Ihnen, jede App mit einer API auf der Welt miteinander zu verbinden, um ihre Daten ohne eine einzige Zeile Code zu teilen und zu manipulieren. Es ist ein einfach zu bedienender, benutzerfreundlicher und hochgradig anpassbarer Dienst." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1676891413911, - "executionTime": 10, - "source": [ - { - "previousNode": "DeepL" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "detected_source_language": "EN", - "text": "n8n (ausgesprochen n-eight-n) hilft Ihnen, jede App mit einer API auf der Welt miteinander zu verbinden, um ihre Daten ohne eine einzige Zeile Code zu teilen und zu manipulieren. Es ist ein einfach zu bedienender, benutzerfreundlicher und hochgradig anpassbarer Dienst." - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:13.307Z", - "stoppedAt": "2023-02-20T11:10:13.921Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/15-snapshot.json b/test-workflows/snapshots/15-snapshot.json deleted file mode 100644 index 8e0447d4fc..0000000000 --- a/test-workflows/snapshots/15-snapshot.json +++ /dev/null @@ -1,644 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994529, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Dropbox8": [ - { - "startTime": 1747343994529, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1620, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1747343996149, - "executionIndex": 2, - "source": [ - { - "previousNode": "Dropbox8" - } - ], - "hints": [], - "executionTime": 6, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "iVBORw0KGgoAAAANSUhEUgAAAdAAAABqCAMAAAA7pfCVAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAqUExURQAAADhNW/9tWv9tWjhNW/9tWv9tWjhNW6teWv9tWjhNWzhNW/9tWjhNW0y9HhoAAAAMdFJOUwDD4n+KTrBCECcoZqF2YcgAAAnPSURBVHja7Z3ZmqsgDIDLvti+/+tO9wKSBFCsdsjV+U7HavnJQhLwdDqgKCWEUOo05AfECX5+CRcD6sFFfWi+mNoxKr+D8450aOlBxepzXvRQ0kM6T36GhLsxPL/EcxD9NZ6D6PH8J85zED2a6DMlegzSgUScaRFjmA5rcLVQSolEa/lYvBxUQfXLXToxVPSYwqHoJ4p9h4oeRRQczUbGeOQADxjiOmR9OgLdfaQMbsVNVDjmJ0M/Ogbz+9ZU83OFZNxkaHSHzf02ziqagFEVI849Ks68CqoBdI+LyzLJJWzdALoHsbqBZz7q6QfUGsnY5SqMyclvMSpKX0UcsNBg+XnvQO10Z/kRJnszfTuh45maNp5b+lB5yYjsmowKfgk/cKqgRsRWUa5nl7xM2yTEDqajqpFnduL2WIdOF1BkX6slnH0Y3iP50UYHmkemiCB4ZZ79iLr377uPz5FUNFmwaOWKHe48VcTXdzzmcvkCUfFJnKhjJaZjBdWuagJoxBuvNKnthRDTDejTANljhUXiXFnycnD2T5/Xt7hhfMumOz0TLWFYt2ERhwRaX8LUQH+f0x3axHxAzuTj3qkXUD375zpBqGrcqueuF9oafSs0kip1uvebKE0vUhcpqIRCpS4q6t4D4lYMipx41bN4XQbqcyG1yU80NI3M1q18XnZba0ozMPj5EO2SMtKPyfqYp6v001jBG/fqpcrCkVBHN0QxBQudtTqt3xaXWZh1F5vr1m6nEZlR4yVjnq2DgVvCdEsUo5qygovWLBPyWZ+VS0BUrDw/amY+VDeB9m3ypnWjaEgKLnOhObPaN859B3lrbHmFVYD4dmQXUd6rNXo9vdFGiDdQzL92AnoLRW6nR6yfvCm3ZvguP7seUPQRV4zxUaCyN9BOybhyotQuvxWBwi0rxRbKTvKpY4xBBes3ULtEQ41k3aqor6r7ve5u2kIO1cYzx2xB+dLlzW4mog6SPZ/xNElJLD/SE5bgmwPNZSFsUktlJUFxWEhHac5Sy6YeCxgZ8foK5qLyZUZJs+oZ/eoHN8vK0uweC3zmF2ZqpZnSOLMVQJEg2mTLtLMJU1DN0k2hZ24qLCxfxo28XCsyHfsYHlNcOEEWm2auvdHXQROnhOhlPgdncw2qul+Yx7DopFsdHPxUs/ntyjSFo+E50JgMUUI/BA4HZTrOU3kpbIJTtmweMKVlGA8Nua0BKlFnQHRSxFkY/kr4uZgpJ1cSb1eW2EUFzYGO9YQU6FRRCrNgC1Eur5B8mW+uopJ/LEurtAoKMGIFnGuDBV2ZgFQ0mjxiM6BIxZoh+aDUO7GMRYyBWgbfyVcAZdU8A6Icto8aVVEBu0qVL1PGumu3AhpWrNlNiHGOC6J29t8S4hDGLLMbyUVAZdJRaq4iZY6ow6BxrHzMkdBHZDQxWXX07LHwt9/7KZukCxUvC+Oi8Kp8reV2o2l+o5clDwvjxOoy/CKG+c/QbERhr5xVs1y2RhfGSqGg1lOHbllkwqz+59AYpKnWo7XN1HKyyQQR5kRMgCjmDL6qoHMFSlx4uJHUpAEBXs0q24DCG3IV/bvaDBLZU7VNWdUjxpDWXVvTXAYBZdDPiKfMPZTmaDXLNfc/8/oO255AZ8sGhioOHN0wykR7aG60A53w1U/cY0GMcVELratOOmxx8JdBl4ETmi6CeVoCqKlKPZUBZfhqNph9lsyVF21aqM4Pb3KQm0FjWV+UWyhbfLAig9wMlGx98aG5J7yaaHOhONBtDuYzeCgLf1aaksm5OOzTVqCMNNoyuP+/AGoRoNgSQZp5OlwivUZZ3HIhUIv+jORP/L8wubImojRJRDnfJ2pBoOzUAWhJJ5P8zKj/EBT5CqA2A87LS1nELHsAlQUL2SDy+gfLFlYTUcostrhmDS4TfQ+gRT7482gatbllO3MzvUN7SizICqCgWkdIp5qwZy2grOTKSzTyCsNyO9I0EoxOWFbJp/7ObpdAkfJ2uDi1FQuTpUCL1rGfmzhE06Jql8W0VxV8tmFyPgZqygcPzQIESjp9AagsAxrXyCzIE233SoMc4Ds3K581A53KtBpQ630AVVCdWlEFbg74RHiX31YF7magjOjqydtchg75xiY3jUdfbVfJ/iNOrkz4cydh0rsS+8qNWlCWA6ViD7NjoGq2Ve8qJU1isz1hPHOhgCcBZXPdqx1MKLcRUGrw8ia5L9CiZUv0RwVrk3wEoxpWNKVtnMneRl5/XloPoOYLQGVBV5KNHpzefQltP6WngkLstCjGWXq8xk8CnQp2pSaWg8oHgYk6cioITKthoIKvkIxYAvSyI5NbUlBNfbtq3axEEM1ZanolCp/UWZUCXhQUmf0EReRDhdF3UbEL83Uo0SwxEij2lTVEW4BKXBt8PjHYGagkVTRTHYA3LBFjiBx8m58IFFB861QF0UWJhfxFRGKhE1BP9ZllnxoCQ78+F3B49I413uKWy4m2ALVoUXwCRrYz0JPET0iCelJVBqkuOulL15y2QRyaoVsj7lWABmOH9JWlK4jeQD3aAePhDrUUqS7d8JdmhzC3u7gRWPcE6sEGvrB+BnTlVQG15imWTgpLhOiEtk5Z9dwPyLVQVdlz976QOF0TPXhq7kC5bj3BpglovLHlc2XciOKbgHry8cAsP4M6xsOaHvvOy9/Qo+GSBPIjPTTT/1WBXpi8Ss6L3j+b7ptOGNo8Xwj0fiNfAjR5pmTbKXsrtZEV+9u6CXJgVpzhCM4xE7xeRUuBJubQU/v2YP0hgMYPgwKdmejkqdiVOGObnZ5ORMUwGwH6YcervWgjULwtF+366wiUnmdf44kdgIxsX3S8tn2lFShBFDkDUBKrxCVAKaL+9D0BjyhH3auqTeoSQCWiDazugHIcqC8HOiFAT9j2cPbVl+GWvESAo+sdvQJQjwyehbYTMjSBJE+0LUCBYs90gk61+aq5LaoFAHGPq4xzCaCxOsxwy5IDgcqA+mKg+DOd4h3hn4j4+++qpuuoFg+PS27i2VMg9+Ile0vGjiSDBx3DdrPezy+BFOV2JN3sYfKPhz/TaX6UmDSnPQivt7iNJ+0uEvMkIaXxp92In6R8PNW0m6ei3KgmgqnxLt+9idUD6I+JGEB/TLBXNlM+1I7hOxhStzzKHfINpJoX7zY88PtS/5U49T6bTKOdJny8Pf1wbLGwSJxHTHQ40TBRdR4W94AuFew3FJvuFR6ylvB8q5ni2+7mH9JFRe8vCbiK4N1euzNkUxVd2Jg7ZGeBbuf3EA75htHt+p6zIVsvXb5zBNmQDYkOB3pAEcPe/pofhd42PHK4BxUrCt8rOeQwyxfdtFV1yI61NKyVajG08yf0VCkhlBowy+UP8oj4tnqDbLEAAAAASUVORK5CYII=", - "directory": "/tmp", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 seconds": [ - { - "startTime": 1747343996155, - "executionIndex": 3, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "hints": [], - "executionTime": 803, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "directory": "/tmp", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox": [ - { - "startTime": 1747343996958, - "executionIndex": 4, - "source": [ - { - "previousNode": "Sleep 0.8 seconds" - } - ], - "hints": [], - "executionTime": 1679, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "testFile", - "path_lower": "/testfolder1747343995365/testfile", - "path_display": "/testFolder1747343995365/testFile", - "id": "id:2Tke52G4OWEAAAAAAAAc-A", - "client_modified": "2025-05-15T21:19:58Z", - "server_modified": "2025-05-15T21:19:58Z", - "rev": "01635333a543eef0000000222408c10", - "size": 2675, - "is_downloadable": true, - "content_hash": "1fbea2b44830c71ca338c89a5e3a45585f74d9e15c19bfef69b19b38e9da99b9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 seconds1": [ - { - "startTime": 1747343998638, - "executionIndex": 5, - "source": [ - { - "previousNode": "Dropbox" - } - ], - "hints": [], - "executionTime": 801, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "testFile", - "path_lower": "/testfolder1747343995365/testfile", - "path_display": "/testFolder1747343995365/testFile", - "id": "id:2Tke52G4OWEAAAAAAAAc-A", - "client_modified": "2025-05-15T21:19:58Z", - "server_modified": "2025-05-15T21:19:58Z", - "rev": "01635333a543eef0000000222408c10", - "size": 2675, - "is_downloadable": true, - "content_hash": "1fbea2b44830c71ca338c89a5e3a45585f74d9e15c19bfef69b19b38e9da99b9" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox2": [ - { - "startTime": 1747343999439, - "executionIndex": 6, - "source": [ - { - "previousNode": "Sleep 0.8 seconds1" - } - ], - "hints": [], - "executionTime": 3055, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Dropbox3": [ - { - "startTime": 1747344002494, - "executionIndex": 7, - "source": [ - { - "previousNode": "Dropbox2" - } - ], - "hints": [], - "executionTime": 2030, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Dropbox5": [ - { - "startTime": 1747344004524, - "executionIndex": 8, - "source": [ - { - "previousNode": "Dropbox2" - } - ], - "hints": [], - "executionTime": 1541, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "directory": "/testFolder1747343995365", - "fileName": "moveTestFile1747344000304", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 seconds2": [ - { - "startTime": 1747344006065, - "executionIndex": 9, - "source": [ - { - "previousNode": "Dropbox3" - } - ], - "hints": [], - "executionTime": 806, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.8 seconds3": [ - { - "startTime": 1747344006871, - "executionIndex": 10, - "source": [ - { - "previousNode": "Dropbox5" - } - ], - "hints": [], - "executionTime": 807, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "directory": "/testFolder1747343995365", - "fileName": "moveTestFile1747344000304", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox4": [ - { - "startTime": 1747344007678, - "executionIndex": 11, - "source": [ - { - "previousNode": "Sleep 0.8 seconds2" - } - ], - "hints": [], - "executionTime": 1769, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Dropbox6": [ - { - "startTime": 1747344009447, - "executionIndex": 12, - "source": [ - { - "previousNode": "Sleep 0.8 seconds3" - } - ], - "hints": [], - "executionTime": 1815, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 seconds6": [ - { - "startTime": 1747344011262, - "executionIndex": 13, - "source": [ - { - "previousNode": "Dropbox6" - } - ], - "hints": [], - "executionTime": 803, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox10": [ - { - "startTime": 1747344012065, - "executionIndex": 14, - "source": [ - { - "previousNode": "Sleep 0.8 seconds6" - } - ], - "hints": [], - "executionTime": 3083, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 seconds5": [ - { - "startTime": 1747344015149, - "executionIndex": 15, - "source": [ - { - "previousNode": "Dropbox10" - } - ], - "hints": [], - "executionTime": 805, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox9": [ - { - "startTime": 1747344015954, - "executionIndex": 16, - "source": [ - { - "previousNode": "Sleep 0.8 seconds5" - } - ], - "hints": [], - "executionTime": 1070, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": [ - { - "item": 0, - "input": 0 - } - ] - } - ] - ] - } - } - ], - "Sleep 0.8 seconds4": [ - { - "startTime": 1747344017024, - "executionIndex": 17, - "source": [ - { - "previousNode": "Dropbox9" - } - ], - "hints": [], - "executionTime": 806, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Dropbox11": [ - { - "startTime": 1747344017830, - "executionIndex": 18, - "source": [ - { - "previousNode": "Sleep 0.8 seconds4" - } - ], - "hints": [], - "executionTime": 1794, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Dropbox11" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.529Z", - "stoppedAt": "2025-05-15T21:20:19.624Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/150-snapshot.json b/test-workflows/snapshots/150-snapshot.json deleted file mode 100644 index b0239c7278..0000000000 --- a/test-workflows/snapshots/150-snapshot.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994529, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PostHog": [ - { - "startTime": 1747343994529, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 175, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PostHog1": [ - { - "startTime": 1747343994704, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 79, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PostHog2": [ - { - "startTime": 1747343994783, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 75, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PostHog3": [ - { - "startTime": 1747343994858, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 82, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PostHog4": [ - { - "startTime": 1747343994940, - "executionIndex": 5, - "source": [ - { - "previousNode": "PostHog3" - } - ], - "hints": [], - "executionTime": 67, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "PostHog4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.529Z", - "stoppedAt": "2025-05-15T21:19:55.007Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/151-snapshot.json b/test-workflows/snapshots/151-snapshot.json deleted file mode 100644 index 1c2a4ae4d3..0000000000 --- a/test-workflows/snapshots/151-snapshot.json +++ /dev/null @@ -1,799 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331888599, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise5": [ - { - "startTime": 1710331888600, - "executionTime": 341, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 700007874, - "business": { - "object": true - }, - "profile": 16154361, - "accountHolderName": "Node QA", - "currency": "EUR", - "country": "NL", - "type": "iban", - "details": { - "object": true - }, - "user": 5681537, - "active": true, - "ownedByCustomer": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise4": [ - { - "startTime": 1710331888941, - "executionTime": 384, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 16154361, - "type": "personal", - "details": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise3": [ - { - "startTime": 1710331889325, - "executionTime": 240, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "rate": 1.09309, - "source": "EUR", - "target": "USD", - "time": "2024-03-12T00:00:00+0000" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise2": [ - { - "startTime": 1710331889565, - "executionTime": 249, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "accountHolder": { - "object": true - }, - "issuer": { - "object": true - }, - "bankDetails": [ - "json array" - ], - "transactions": [ - "json array" - ], - "startOfStatementBalance": { - "object": true - }, - "endOfStatementBalance": { - "object": true - }, - "endOfStatementUnrealisedGainLoss": { - "object": true - }, - "balanceAssetConfiguration": { - "object": true - }, - "query": { - "object": true - }, - "request": { - "object": true - }, - "feeSummary": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise6": [ - { - "startTime": 1710331889814, - "executionTime": 751, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "sourceAmount": 2, - "guaranteedTargetAmountAllowed": false, - "targetAmountAllowed": true, - "paymentOptions": [ - "json array" - ], - "notices": [ - "json array" - ], - "transferFlowConfig": { - "object": true - }, - "rateTimestamp": "2024-03-13T12:11:29Z", - "clientId": "transferwise-personal-tokens", - "expirationTime": "2024-03-13T12:41:29Z", - "id": "9d0519da-b525-4d4d-92c2-d9ca1df535ad", - "type": "REGULAR", - "createdTime": "2024-03-13T12:11:29Z", - "user": 5681537, - "rateType": "FIXED", - "rateExpirationTime": "2024-04-12T12:11:29Z", - "payOut": "BANK_TRANSFER", - "guaranteedTargetAmount": false, - "providedAmountType": "SOURCE", - "status": "PENDING", - "profile": 16154361, - "rate": 1, - "sourceCurrency": "EUR", - "targetCurrency": "EUR", - "payInCountry": "GB", - "funding": "POST" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise14": [ - { - "startTime": 1710331890565, - "executionTime": 513, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "sourceAmount": 2, - "guaranteedTargetAmountAllowed": false, - "targetAmountAllowed": true, - "paymentOptions": [ - "json array" - ], - "notices": [ - "json array" - ], - "transferFlowConfig": { - "object": true - }, - "rateTimestamp": "2024-03-13T12:11:30Z", - "clientId": "transferwise-personal-tokens", - "expirationTime": "2024-03-13T12:41:30Z", - "id": "f4ac8d5d-2d97-4a7f-a695-c6709e1a930d", - "type": "REGULAR", - "createdTime": "2024-03-13T12:11:30Z", - "user": 5681537, - "rateType": "FIXED", - "rateExpirationTime": "2024-04-12T12:11:30Z", - "payOut": "BANK_TRANSFER", - "guaranteedTargetAmount": false, - "providedAmountType": "SOURCE", - "status": "PENDING", - "profile": 16154361, - "rate": 1, - "sourceCurrency": "EUR", - "targetCurrency": "EUR", - "payInCountry": "GB", - "funding": "POST" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise12": [ - { - "startTime": 1710331891078, - "executionTime": 304, - "source": [ - { - "previousNode": "Wise4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 16154361, - "type": "personal", - "details": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 16154362, - "type": "business", - "details": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise": [ - { - "startTime": 1710331891382, - "executionTime": 282, - "source": [ - { - "previousNode": "Wise2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 23302, - "profileId": 16154361, - "recipientId": 147784111, - "creationTime": "2021-03-24T14:32:25.979Z", - "modificationTime": "2021-03-24T14:32:25.979Z", - "active": true, - "eligible": true, - "balances": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise7": [ - { - "startTime": 1710331891664, - "executionTime": 471, - "source": [ - { - "previousNode": "Wise6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "sourceAmount": 2, - "guaranteedTargetAmountAllowed": false, - "targetAmountAllowed": true, - "paymentOptions": [ - "json array" - ], - "notices": [ - "json array" - ], - "transferFlowConfig": { - "object": true - }, - "rateTimestamp": "2024-03-13T12:11:29Z", - "clientId": "transferwise-personal-tokens", - "expirationTime": "2024-03-13T12:41:29Z", - "id": "9d0519da-b525-4d4d-92c2-d9ca1df535ad", - "type": "REGULAR", - "createdTime": "2024-03-13T12:11:29Z", - "user": 5681537, - "rateType": "FIXED", - "rateExpirationTime": "2024-04-12T12:11:29Z", - "payOut": "BANK_TRANSFER", - "guaranteedTargetAmount": false, - "providedAmountType": "SOURCE", - "payInCountry": "GB", - "funding": "POST", - "status": "PENDING", - "profile": 16154361, - "rate": 1, - "sourceCurrency": "EUR", - "targetCurrency": "EUR" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise16": [ - { - "startTime": 1710331892136, - "executionTime": 2032, - "source": [ - { - "previousNode": "Wise14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 53112532, - "user": 5681537, - "targetAccount": 700007874, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "f4ac8d5d-2d97-4a7f-a695-c6709e1a930d", - "status": "incoming_payment_waiting", - "reference": "", - "rate": 1, - "created": "2024-03-13 12:11:34", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 1.37, - "targetCurrency": "EUR", - "targetValue": 1.37, - "customerTransactionId": "6c67d18c-6639-4158-b8a6-325858c7d155" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise1": [ - { - "startTime": 1710331894168, - "executionTime": 136, - "source": [ - { - "previousNode": "Wise" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "code": "AED", - "hasBankDetails": false, - "payInAllowed": false, - "sampleBankDetails": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise8": [ - { - "startTime": 1710331894305, - "executionTime": 1875, - "source": [ - { - "previousNode": "Wise7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 53112534, - "user": 5681537, - "targetAccount": 700007874, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "9d0519da-b525-4d4d-92c2-d9ca1df535ad", - "status": "incoming_payment_waiting", - "reference": "", - "rate": 1, - "created": "2024-03-13 12:11:36", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 1.37, - "targetCurrency": "EUR", - "targetValue": 1.37, - "customerTransactionId": "f162e8de-8d10-4bc9-88ef-4840fd22b6a5" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise15": [ - { - "startTime": 1710331896180, - "executionTime": 258, - "source": [ - { - "previousNode": "Wise16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 53112532, - "user": 5681537, - "targetAccount": 700007874, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "f4ac8d5d-2d97-4a7f-a695-c6709e1a930d", - "status": "cancelled", - "reference": "", - "rate": 1, - "created": "2024-03-13 12:11:34", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 1.37, - "targetCurrency": "EUR", - "targetValue": 1.37, - "customerTransactionId": "6c67d18c-6639-4158-b8a6-325858c7d155" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise9": [ - { - "startTime": 1710331896438, - "executionTime": 250, - "source": [ - { - "previousNode": "Wise8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 53112534, - "user": 5681537, - "targetAccount": 700007874, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "9d0519da-b525-4d4d-92c2-d9ca1df535ad", - "status": "incoming_payment_waiting", - "reference": "", - "rate": 1, - "created": "2024-03-13 12:11:36", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 1.37, - "targetCurrency": "EUR", - "targetValue": 1.37, - "customerTransactionId": "f162e8de-8d10-4bc9-88ef-4840fd22b6a5" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise10": [ - { - "startTime": 1710331896689, - "executionTime": 355, - "source": [ - { - "previousNode": "Wise9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 52915297, - "user": 5681537, - "targetAccount": 147784111, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "2eabfb55-3b8f-4d8d-82dc-b92db67d5117", - "status": "cancelled", - "reference": "", - "rate": 1, - "created": "2024-02-13 02:08:50", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 2, - "targetCurrency": "EUR", - "targetValue": 2, - "customerTransactionId": "f0431a1e-fe5f-456a-a254-4c7cc774545d" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wise13": [ - { - "startTime": 1710331897044, - "executionTime": 0, - "source": [ - { - "previousNode": "Wise10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 52915297, - "user": 5681537, - "targetAccount": 147784111, - "sourceAccount": { - "object": true - }, - "quote": { - "object": true - }, - "quoteUuid": "2eabfb55-3b8f-4d8d-82dc-b92db67d5117", - "status": "cancelled", - "reference": "", - "rate": 1, - "created": "2024-02-13 02:08:50", - "business": { - "object": true - }, - "transferRequest": { - "object": true - }, - "details": { - "object": true - }, - "hasActiveIssues": false, - "sourceCurrency": "EUR", - "sourceValue": 2, - "targetCurrency": "EUR", - "targetValue": 2, - "customerTransactionId": "f0431a1e-fe5f-456a-a254-4c7cc774545d" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Wise13" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:28.599Z", - "stoppedAt": "2024-03-13T12:11:37.044Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/152-snapshot.json b/test-workflows/snapshots/152-snapshot.json deleted file mode 100644 index 2baedf18ed..0000000000 --- a/test-workflows/snapshots/152-snapshot.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994528, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Comprehend": [ - { - "startTime": 1747343994528, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 535, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "en": 0.995190441608429 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Comprehend1": [ - { - "startTime": 1747343995063, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 441, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Sentiment": "POSITIVE", - "SentimentScore": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Comprehend2": [ - { - "startTime": 1747343995504, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 533, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "BeginOffset": 0, - "EndOffset": 3, - "Score": 0.4956623315811157, - "Text": "n8n", - "Type": "OTHER" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "BeginOffset": 18, - "EndOffset": 23, - "Score": 0.4929276704788208, - "Text": "eight", - "Type": "OTHER" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "BeginOffset": 53, - "EndOffset": 62, - "Score": 0.7383686304092407, - "Text": "every app", - "Type": "QUANTITY" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "BeginOffset": 147, - "EndOffset": 158, - "Score": 0.9422106146812439, - "Text": "single line", - "Type": "QUANTITY" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS Comprehend2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.528Z", - "stoppedAt": "2025-05-15T21:19:56.037Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/153-snapshot.json b/test-workflows/snapshots/153-snapshot.json deleted file mode 100644 index 377e07d13b..0000000000 --- a/test-workflows/snapshots/153-snapshot.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994432, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Lambda": [ - { - "startTime": 1747343994433, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 493, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "Hello world!, this is n8n" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Lambda1": [ - { - "startTime": 1747343994926, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 296, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "Hello world!, this is nodeqa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS Lambda1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.431Z", - "stoppedAt": "2025-05-15T21:19:55.222Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/154-snapshot.json b/test-workflows/snapshots/154-snapshot.json deleted file mode 100644 index ca074f3225..0000000000 --- a/test-workflows/snapshots/154-snapshot.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994435, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343994435, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 14, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "data": "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", - "mimeType": "image/png", - "fileExtension": "png", - "fileName": "n8n-logo.png" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Rekognition": [ - { - "startTime": 1747343994449, - "executionIndex": 2, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 953, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "TextDetections": [ - "json array" - ], - "TextModelVersion": "3.0" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS Rekognition" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.434Z", - "stoppedAt": "2025-05-15T21:19:55.402Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/155-snapshot.json b/test-workflows/snapshots/155-snapshot.json deleted file mode 100644 index 740fd25b16..0000000000 --- a/test-workflows/snapshots/155-snapshot.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994451, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747343994451, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 12, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "bucketName": "Bucket1747343994463" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S3": [ - { - "startTime": 1747343994463, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set" - } - ], - "hints": [], - "executionTime": 679, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S": [ - { - "startTime": 1747343995142, - "executionIndex": 3, - "source": [ - { - "previousNode": "AWS S3" - } - ], - "hints": [], - "executionTime": 399, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Name": "adi.testing", - "CreationDate": "2023-09-20T10:14:46.000Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1747343995541, - "executionIndex": 4, - "source": [ - { - "previousNode": "AWS S3" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "folderName": "Folder1747343995543" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747343995543, - "executionIndex": 5, - "source": [ - { - "previousNode": "AWS S" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "data": "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", - "mimeType": "image/png", - "fileExtension": "png", - "fileName": "n8n-logo.png" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S8": [ - { - "startTime": 1747343995545, - "executionIndex": 6, - "source": [ - { - "previousNode": "Set1" - } - ], - "hints": [], - "executionTime": 881, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S2": [ - { - "startTime": 1747343996426, - "executionIndex": 7, - "source": [ - { - "previousNode": "Function" - } - ], - "hints": [], - "executionTime": 930, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S9": [ - { - "startTime": 1747343997356, - "executionIndex": 8, - "source": [ - { - "previousNode": "AWS S8" - } - ], - "hints": [], - "executionTime": 712, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Key": "Folder1747343995543/", - "LastModified": "2025-05-15T21:19:57.000Z", - "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"", - "ChecksumAlgorithm": "CRC64NVME", - "ChecksumType": "FULL_OBJECT", - "Size": "0", - "StorageClass": "STANDARD" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S4": [ - { - "startTime": 1747343998068, - "executionIndex": 9, - "source": [ - { - "previousNode": "AWS S2" - } - ], - "hints": [], - "executionTime": 714, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Key": "n8n-logo.png", - "LastModified": "2025-05-15T21:19:58.000Z", - "ETag": "\"174dbbfbcabb9dc0c2e82002e5ce289e\"", - "ChecksumAlgorithm": "CRC64NVME", - "ChecksumType": "FULL_OBJECT", - "Size": "2675", - "StorageClass": "STANDARD" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S10": [ - { - "startTime": 1747343998782, - "executionIndex": 10, - "source": [ - { - "previousNode": "AWS S9" - } - ], - "hints": [], - "executionTime": 1222, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "deleted": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S5": [ - { - "startTime": 1747344000004, - "executionIndex": 11, - "source": [ - { - "previousNode": "AWS S4" - } - ], - "hints": [], - "executionTime": 686, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Key": "n8n-logo.png", - "LastModified": "2025-05-15T21:19:58.000Z", - "ETag": "\"174dbbfbcabb9dc0c2e82002e5ce289e\"", - "ChecksumAlgorithm": "CRC64NVME", - "ChecksumType": "FULL_OBJECT", - "Size": "2675", - "StorageClass": "STANDARD" - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S6": [ - { - "startTime": 1747344000690, - "executionIndex": 12, - "source": [ - { - "previousNode": "AWS S5" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Key": "n8n-logo.png", - "LastModified": "2025-05-15T21:19:58.000Z", - "ETag": "\"174dbbfbcabb9dc0c2e82002e5ce289e\"", - "ChecksumAlgorithm": "CRC64NVME", - "ChecksumType": "FULL_OBJECT", - "Size": "2675", - "StorageClass": "STANDARD" - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S1": [ - { - "startTime": 1747344000690, - "executionIndex": 13, - "source": [ - { - "previousNode": "AWS S6" - } - ], - "hints": [], - "executionTime": 756, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Key": "n8n-logo.png", - "LastModified": "2025-05-15T21:19:58.000Z", - "ETag": "\"174dbbfbcabb9dc0c2e82002e5ce289e\"", - "ChecksumAlgorithm": "CRC64NVME", - "ChecksumType": "FULL_OBJECT", - "Size": "2675", - "StorageClass": "STANDARD" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S7": [ - { - "startTime": 1747344001446, - "executionIndex": 14, - "source": [ - { - "previousNode": "AWS S1" - } - ], - "hints": [], - "executionTime": 720, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS S31": [ - { - "startTime": 1747344002166, - "executionIndex": 15, - "source": [ - { - "previousNode": "AWS S7" - } - ], - "hints": [], - "executionTime": 525, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS S31" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.450Z", - "stoppedAt": "2025-05-15T21:20:02.691Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/156-snapshot.json b/test-workflows/snapshots/156-snapshot.json deleted file mode 100644 index d78e5e45d1..0000000000 --- a/test-workflows/snapshots/156-snapshot.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994614, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS SNS": [ - { - "startTime": 1747343994614, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 524, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "MessageId": "b5fb53f6-51c2-58a7-94fd-33560d79f48c" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS SNS" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.614Z", - "stoppedAt": "2025-05-15T21:19:55.138Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/16-snapshot.json b/test-workflows/snapshots/16-snapshot.json deleted file mode 100644 index 9c51fab1b8..0000000000 --- a/test-workflows/snapshots/16-snapshot.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994612, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenWeatherMap": [ - { - "startTime": 1747343994612, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 145, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "coord": { - "object": true - }, - "weather": [ - "json array" - ], - "base": "stations", - "main": { - "object": true - }, - "visibility": 10000, - "wind": { - "object": true - }, - "clouds": { - "object": true - }, - "dt": 1747343894, - "sys": { - "object": true - }, - "timezone": 7200, - "id": 2950159, - "name": "Berlin", - "cod": 200 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenWeatherMap1": [ - { - "startTime": 1747343994757, - "executionIndex": 2, - "source": [ - { - "previousNode": "OpenWeatherMap" - } - ], - "hints": [], - "executionTime": 143, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cod": "200", - "message": 0, - "cnt": 40, - "list": [ - "json array" - ], - "city": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "OpenWeatherMap1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.612Z", - "stoppedAt": "2025-05-15T21:19:54.900Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/161-snapshot.json b/test-workflows/snapshots/161-snapshot.json deleted file mode 100644 index ea8f6bd415..0000000000 --- a/test-workflows/snapshots/161-snapshot.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994612, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vonage": [ - { - "startTime": 1747343994612, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 101, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "9", - "error-text": "Quota Exceeded - rejected", - "to": "010", - "messagePrice": "0.05000000" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Vonage" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.612Z", - "stoppedAt": "2025-05-15T21:19:54.713Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/162-snapshot.json b/test-workflows/snapshots/162-snapshot.json deleted file mode 100644 index 5a6e575ecb..0000000000 --- a/test-workflows/snapshots/162-snapshot.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994616, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS SQS1": [ - { - "startTime": 1747343994616, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 477, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "MessageId": "d7d01c99-6045-4687-aa22-3696b28a71dc", - "MD5OfMessageBody": "b5c549a1b61608ae9c9e5aa4ca926eaf", - "MD5OfMessageAttributes": "563c033205d4d7ddc71dceef55cae220", - "SequenceNumber": "184914760783929180160" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS SQS": [ - { - "startTime": 1747343995093, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 458, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "MessageId": "002ae7dd-846a-4ca2-a0d6-bd95aa9ca6b0", - "MD5OfMessageBody": "a6b50b8dda796ce940cd81ac4078f1e0", - "MD5OfMessageAttributes": "563c033205d4d7ddc71dceef55cae220" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS SQS" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.616Z", - "stoppedAt": "2025-05-15T21:19:55.551Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/163-snapshot.json b/test-workflows/snapshots/163-snapshot.json deleted file mode 100644 index 6b0c27ad18..0000000000 --- a/test-workflows/snapshots/163-snapshot.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858540, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides": [ - { - "startTime": 1678116858541, - "executionTime": 1809, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "presentationId": "1-6V0k7PVcPC90kFahRHD7_TjLP6W9-3Muf-PjlNVTN0", - "pageSize": { - "object": true - }, - "slides": [ - "json array" - ], - "title": "SlidesMon, 06 Mar 2023 15:34:18 GMT", - "masters": [ - "json array" - ], - "layouts": [ - "json array" - ], - "locale": "en", - "revisionId": "M-s2cBLdEa4K1A", - "notesMaster": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides3": [ - { - "startTime": 1678116860351, - "executionTime": 1496, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "presentationId": "1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", - "replies": [ - "json array" - ], - "writeControl": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides1": [ - { - "startTime": 1678116861848, - "executionTime": 703, - "source": [ - { - "previousNode": "Google Slides" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "presentationId": "1-6V0k7PVcPC90kFahRHD7_TjLP6W9-3Muf-PjlNVTN0", - "pageSize": { - "object": true - }, - "slides": [ - "json array" - ], - "title": "SlidesMon, 06 Mar 2023 15:34:18 GMT", - "masters": [ - "json array" - ], - "layouts": [ - "json array" - ], - "locale": "en", - "revisionId": "M-s2cBLdEa4K1A", - "notesMaster": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides4": [ - { - "startTime": 1678116862552, - "executionTime": 1078, - "source": [ - { - "previousNode": "Google Slides" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "width": 1600, - "height": 900, - "contentUrl": "https://lh3.googleusercontent.com/NS47n8mpkUBEGGOaqfTxrbk40A0gu3ISENHFprG6BcQDWjmrMF5-LwFVYJ9dxyTGYpJ-a1OwLvWPCabzaHTeMKFQs_ZxdgY_UmJG4vZcyaXAIIM8yDzqSuNBWwiO1Jzco0TbPQj_UXmQlU5_7f5_pO4ZVO96NpI-HVariL4E3OV8rXS7qf5BEs39975C6Rt1GuRprL-CCE5zr-lO_DXhP5imOBv07CMGwjMVKMTGq7xbxRN41rTRLDg=s1600" - }, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "iVBORw0KGgoAAAANSUhEUgAABkAAAAOECAIAAAB2L2r1AAAAA3NCSVQICAjb4U/gAAAYxElEQVR4nOzYMQEAIAzAMMC/5+GAlx6Jgt7dM7MAAAAAoOr8DgAAAACAFwMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAIA0AwsAAACANAMLAAAAgDQDCwAAAOC2Y8cCAAAAAIP8raexozBiTWABAAAAsCawAAAAAFgTWAAAAACsCSwAAAAA1gQWAAAAAGsCCwAAAIA1gQUAAADAmsACAAAAYE1gAQAAALAmsAAAAABYE1gAAAAArAksAAAAANYEFgAAAABrAgsAAACANYEFAAAAwJrAAgAAAGBNYAEAAACwJrAAAAAAWBNYAAAAAKwJLAAAAADWBBYAAAAAawILAAAAgDWBBQAAAMCawAIAAABgTWABAAAAsCawAAAAAFgTWAAAAACsCSwAAAAA1gQWAAAAAGsCCwAAAIA1gQUAAADAmsACAAAAYE1gAQAAALAmsAAAAABYE1gAAAAArAksAAAAANYEFgAAAABrAgsAAACAtQBWkwoFDcwppQAAAABJRU5ErkJggg==", - "fileName": "p.png", - "fileSize": "6.41 kB" - } - } - } - ] - ] - } - } - ], - "Google Slides6": [ - { - "startTime": 1678116863630, - "executionTime": 370, - "source": [ - { - "previousNode": "Google Slides3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "presentationId": "1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", - "replies": [ - "json array" - ], - "writeControl": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides2": [ - { - "startTime": 1678116864000, - "executionTime": 316, - "source": [ - { - "previousNode": "Google Slides1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectId": "p", - "pageElements": [ - "json array" - ], - "slideProperties": { - "object": true - }, - "pageProperties": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Slides5": [ - { - "startTime": 1678116864316, - "executionTime": 345, - "source": [ - { - "previousNode": "Google Slides4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectId": "p", - "pageElements": [ - "json array" - ], - "slideProperties": { - "object": true - }, - "revisionId": "M-s2cBLdEa4K1A", - "pageProperties": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Slides5" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.538Z", - "stoppedAt": "2023-03-06T15:34:24.661Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/164-snapshot.json b/test-workflows/snapshots/164-snapshot.json deleted file mode 100644 index 8f82b91778..0000000000 --- a/test-workflows/snapshots/164-snapshot.json +++ /dev/null @@ -1,1007 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891416118, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891416119, - "executionTime": 22, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "SpaceTag1676891416141" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp1": [ - { - "startTime": 1676891416142, - "executionTime": 735, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901000766205", - "name": "TestList1676891416143", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901000766205.u-8779387.564f037f-66ec-4d77-a344-4feb14a9593b@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp": [ - { - "startTime": 1676891416877, - "executionTime": 345, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second": [ - { - "startTime": 1676891417222, - "executionTime": 826, - "source": [ - { - "previousNode": "ClickUp1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901000766205", - "name": "TestList1676891416143", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901000766205.u-8779387.564f037f-66ec-4d77-a344-4feb14a9593b@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.8 second1": [ - { - "startTime": 1676891418048, - "executionTime": 804, - "source": [ - { - "previousNode": "ClickUp" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp7": [ - { - "startTime": 1676891418852, - "executionTime": 477, - "source": [ - { - "previousNode": "Sleep 0.8 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901000766208", - "name": "TestList1676891418852", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901000766208.u-8779387.59e26336-ac3f-4f57-92f8-d4bfb70eec27@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp2": [ - { - "startTime": 1676891419329, - "executionTime": 411, - "source": [ - { - "previousNode": "Sleep 0.8 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "spacetag1626268329609", - "tag_fg": "#fff", - "tag_bg": "#FF6D5A", - "creator": 8779387 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second5": [ - { - "startTime": 1676891419740, - "executionTime": 804, - "source": [ - { - "previousNode": "ClickUp7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901000766208", - "name": "TestList1676891418852", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901000766208.u-8779387.59e26336-ac3f-4f57-92f8-d4bfb70eec27@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1676891420544, - "executionTime": 1, - "source": [ - { - "previousNode": "ClickUp2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "spacetag1626268329609", - "tag_fg": "#fff", - "tag_bg": "#FF6D5A", - "creator": 8779387, - "updatedname": "UpdatedSpaceTag1676891420545" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp5": [ - { - "startTime": 1676891420545, - "executionTime": 780, - "source": [ - { - "previousNode": "Sleep 0.8 second5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "8677f32j9", - "custom_id": { - "object": true - }, - "name": "testTask1676891420545", - "text_content": "", - "description": "", - "status": { - "object": true - }, - "orderindex": "2978.00000000000000000000000000000000", - "date_created": "1676891420964", - "date_updated": "1676891420964", - "date_closed": { - "object": true - }, - "date_done": { - "object": true - }, - "archived": false, - "creator": { - "object": true - }, - "assignees": [ - "json array" - ], - "watchers": [ - "json array" - ], - "checklists": [ - "json array" - ], - "tags": [ - "json array" - ], - "parent": { - "object": true - }, - "priority": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "points": { - "object": true - }, - "time_estimate": { - "object": true - }, - "time_spent": 0, - "custom_fields": [ - "json array" - ], - "dependencies": [ - "json array" - ], - "linked_tasks": [ - "json array" - ], - "team_id": "4651110", - "url": "https://app.clickup.com/t/8677f32j9", - "permission_level": "create", - "list": { - "object": true - }, - "project": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second2": [ - { - "startTime": 1676891421325, - "executionTime": 804, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "spacetag1626268329609", - "tag_fg": "#fff", - "tag_bg": "#FF6D5A", - "creator": 8779387, - "updatedname": "UpdatedSpaceTag1676891420545" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.8 second4": [ - { - "startTime": 1676891422130, - "executionTime": 804, - "source": [ - { - "previousNode": "ClickUp5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "8677f32j9", - "custom_id": { - "object": true - }, - "name": "testTask1676891420545", - "text_content": "", - "description": "", - "status": { - "object": true - }, - "orderindex": "2978.00000000000000000000000000000000", - "date_created": "1676891420964", - "date_updated": "1676891420964", - "date_closed": { - "object": true - }, - "date_done": { - "object": true - }, - "archived": false, - "creator": { - "object": true - }, - "assignees": [ - "json array" - ], - "watchers": [ - "json array" - ], - "checklists": [ - "json array" - ], - "tags": [ - "json array" - ], - "parent": { - "object": true - }, - "priority": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "points": { - "object": true - }, - "time_estimate": { - "object": true - }, - "time_spent": 0, - "custom_fields": [ - "json array" - ], - "dependencies": [ - "json array" - ], - "linked_tasks": [ - "json array" - ], - "team_id": "4651110", - "url": "https://app.clickup.com/t/8677f32j9", - "permission_level": "create", - "list": { - "object": true - }, - "project": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp3": [ - { - "startTime": 1676891422935, - "executionTime": 563, - "source": [ - { - "previousNode": "Sleep 0.8 second2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set2": [ - { - "startTime": 1676891423498, - "executionTime": 1, - "source": [ - { - "previousNode": "Sleep 0.8 second4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "TaskTag1676891423498" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second3": [ - { - "startTime": 1676891423499, - "executionTime": 814, - "source": [ - { - "previousNode": "ClickUp3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp8": [ - { - "startTime": 1676891424316, - "executionTime": 420, - "source": [ - { - "previousNode": "Set2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp4": [ - { - "startTime": 1676891424736, - "executionTime": 407, - "source": [ - { - "previousNode": "Sleep 0.8 second3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second6": [ - { - "startTime": 1676891425143, - "executionTime": 803, - "source": [ - { - "previousNode": "ClickUp8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp9": [ - { - "startTime": 1676891425946, - "executionTime": 374, - "source": [ - { - "previousNode": "Sleep 0.8 second6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second7": [ - { - "startTime": 1676891426321, - "executionTime": 804, - "source": [ - { - "previousNode": "ClickUp9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp6": [ - { - "startTime": 1676891427125, - "executionTime": 476, - "source": [ - { - "previousNode": "Sleep 0.8 second7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.8 second8": [ - { - "startTime": 1676891427601, - "executionTime": 809, - "source": [ - { - "previousNode": "ClickUp6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp10": [ - { - "startTime": 1676891428410, - "executionTime": 391, - "source": [ - { - "previousNode": "Sleep 0.8 second8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp11": [ - { - "startTime": 1676891428802, - "executionTime": 427, - "source": [ - { - "previousNode": "ClickUp10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp12": [ - { - "startTime": 1676891429230, - "executionTime": 430, - "source": [ - { - "previousNode": "ClickUp11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp13": [ - { - "startTime": 1676891429661, - "executionTime": 1616, - "source": [ - { - "previousNode": "ClickUp12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ClickUp13" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:16.115Z", - "stoppedAt": "2023-02-20T11:10:31.277Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/166-snapshot.json b/test-workflows/snapshots/166-snapshot.json deleted file mode 100644 index 8ab9de0235..0000000000 --- a/test-workflows/snapshots/166-snapshot.json +++ /dev/null @@ -1,1263 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994642, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom5": [ - { - "startTime": 1747343994642, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 561, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "contact", - "id": "68265a7bb7d1a40b6f941f79", - "user_id": "857da08e-5ee1-4418-ab8b-798a404c72c0", - "anonymous": true, - "email": "fake1747343994644@email.com", - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": "Cyan Locomotive", - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747343995, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom10": [ - { - "startTime": 1747343995203, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 573, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "user", - "id": "68265a7ba8bb3b69f82db784", - "user_id": "User1747343995205", - "anonymous": false, - "email": "", - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": { - "object": true - }, - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747343995, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom1": [ - { - "startTime": 1747343995776, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 461, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "company", - "company_id": "Company1747343995777", - "id": "68265a7cf5fc73b90d4859cd", - "app_id": "t5y9d4d1", - "name": "TestingCompany2025-05-15T21:19:55.778Z", - "created_at": 1747343996, - "updated_at": 1747343996, - "monthly_spend": 0, - "session_count": 0, - "user_count": 0, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "plan": { - "object": true - }, - "custom_attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom6": [ - { - "startTime": 1747343996237, - "executionIndex": 4, - "source": [ - { - "previousNode": "Intercom5" - } - ], - "hints": [], - "executionTime": 691, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "contact", - "id": "68265a7bb7d1a40b6f941f79", - "user_id": "857da08e-5ee1-4418-ab8b-798a404c72c0", - "anonymous": true, - "email": "fake1747343994644@email.com", - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": "Cyan Locomotive", - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747343995, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom11": [ - { - "startTime": 1747343996928, - "executionIndex": 5, - "source": [ - { - "previousNode": "Intercom10" - } - ], - "hints": [], - "executionTime": 408, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "user", - "id": "68265a7ba8bb3b69f82db784", - "user_id": "User1747343995205", - "anonymous": false, - "email": "", - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": { - "object": true - }, - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747343995, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom": [ - { - "startTime": 1747343997336, - "executionIndex": 6, - "source": [ - { - "previousNode": "Intercom1" - } - ], - "hints": [], - "executionTime": 414, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "company", - "company_id": "Company1747343995777", - "id": "68265a7cf5fc73b90d4859cd", - "app_id": "t5y9d4d1", - "name": "TestingCompany2025-05-15T21:19:55.778Z", - "created_at": 1747343996, - "updated_at": 1747343996, - "monthly_spend": 0, - "session_count": 0, - "user_count": 0, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "plan": { - "object": true - }, - "custom_attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom7": [ - { - "startTime": 1747343997750, - "executionIndex": 7, - "source": [ - { - "previousNode": "Intercom6" - } - ], - "hints": [], - "executionTime": 494, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "contact", - "id": "682640e516500e28bbeaed11", - "user_id": "3691afca-c0a7-46c7-9cbf-4f5ac3e1da9a", - "anonymous": true, - "email": "fake1747337445292@email.com", - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": "Turquoise Cactus", - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747337445, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747337445, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom12": [ - { - "startTime": 1747343998244, - "executionIndex": 8, - "source": [ - { - "previousNode": "Intercom11" - } - ], - "hints": [], - "executionTime": 447, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "user", - "id": "682640e6d3d8a6ae674aea64", - "user_id": "User1747337445888", - "anonymous": false, - "email": { - "object": true - }, - "phone": { - "object": true - }, - "name": { - "object": true - }, - "pseudonym": { - "object": true - }, - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747337446, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747337446, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom2": [ - { - "startTime": 1747343998691, - "executionIndex": 9, - "source": [ - { - "previousNode": "Intercom" - } - ], - "hints": [], - "executionTime": 492, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "company", - "company_id": "607ea26e5e1f73dc32c434bd-qualification-company", - "id": "607ea26e5e1f73dc32c434bc", - "app_id": "t5y9d4d1", - "name": "Acme", - "created_at": 1618911854, - "updated_at": 1618911854, - "monthly_spend": 0, - "session_count": 0, - "user_count": 1, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "plan": { - "object": true - }, - "custom_attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom8": [ - { - "startTime": 1747343999183, - "executionIndex": 10, - "source": [ - { - "previousNode": "Intercom7" - } - ], - "hints": [], - "executionTime": 478, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "contact", - "id": "68265a7bb7d1a40b6f941f79", - "user_id": "857da08e-5ee1-4418-ab8b-798a404c72c0", - "anonymous": true, - "email": "fake1747343994644@email.com", - "phone": { - "object": true - }, - "name": "UpdatedLead", - "pseudonym": "Cyan Locomotive", - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747343999, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom13": [ - { - "startTime": 1747343999661, - "executionIndex": 11, - "source": [ - { - "previousNode": "Intercom12" - } - ], - "hints": [], - "executionTime": 438, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "user", - "id": "68265a7ba8bb3b69f82db784", - "user_id": "User1747343995205", - "anonymous": false, - "email": "", - "phone": { - "object": true - }, - "name": "UpdatedUser", - "pseudonym": { - "object": true - }, - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747344000, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom3": [ - { - "startTime": 1747344000099, - "executionIndex": 12, - "source": [ - { - "previousNode": "Intercom2" - } - ], - "hints": [], - "executionTime": 398, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "company", - "company_id": "Company1747343995777", - "id": "68265a7cf5fc73b90d4859cd", - "app_id": "t5y9d4d1", - "name": "UpdatedTestingCompany2025-05-15T21:19:55.778Z", - "created_at": 1747343996, - "updated_at": 1747344000, - "monthly_spend": 0, - "session_count": 0, - "user_count": 0, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "plan": { - "object": true - }, - "custom_attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom9": [ - { - "startTime": 1747344000497, - "executionIndex": 13, - "source": [ - { - "previousNode": "Intercom8" - } - ], - "hints": [], - "executionTime": 449, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "contact", - "id": "68265a7bb7d1a40b6f941f79", - "user_id": "857da08e-5ee1-4418-ab8b-798a404c72c0", - "anonymous": true, - "email": "fake1747343994644@email.com", - "phone": { - "object": true - }, - "name": "UpdatedLead", - "pseudonym": "Cyan Locomotive", - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747344000, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom14": [ - { - "startTime": 1747344000946, - "executionIndex": 14, - "source": [ - { - "previousNode": "Intercom13" - } - ], - "hints": [], - "executionTime": 463, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "user", - "id": "68265a7ba8bb3b69f82db784", - "user_id": "User1747343995205", - "anonymous": false, - "email": "", - "phone": { - "object": true - }, - "name": "UpdatedUser", - "pseudonym": { - "object": true - }, - "avatar": { - "object": true - }, - "app_id": "t5y9d4d1", - "companies": { - "object": true - }, - "location_data": { - "object": true - }, - "last_request_at": { - "object": true - }, - "created_at": 1747343995, - "remote_created_at": { - "object": true - }, - "signed_up_at": { - "object": true - }, - "updated_at": 1747344001, - "session_count": 0, - "social_profiles": { - "object": true - }, - "owner_id": { - "object": true - }, - "unsubscribed_from_emails": false, - "marked_email_as_spam": false, - "has_hard_bounced": false, - "tags": { - "object": true - }, - "segments": { - "object": true - }, - "custom_attributes": { - "object": true - }, - "referrer": { - "object": true - }, - "utm_campaign": { - "object": true - }, - "utm_content": { - "object": true - }, - "utm_medium": { - "object": true - }, - "utm_source": { - "object": true - }, - "utm_term": { - "object": true - }, - "do_not_track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Intercom4": [ - { - "startTime": 1747344001409, - "executionIndex": 15, - "source": [ - { - "previousNode": "Intercom3" - } - ], - "hints": [], - "executionTime": 402, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "Intercom4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.641Z", - "stoppedAt": "2025-05-15T21:20:01.811Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/169-snapshot.json b/test-workflows/snapshots/169-snapshot.json deleted file mode 100644 index 3c1363a666..0000000000 --- a/test-workflows/snapshots/169-snapshot.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891417098, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mocean": [ - { - "startTime": 1676891417099, - "executionTime": 1042, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 0, - "receiver": "21624827732", - "msgid": "Nodeqa0220191018996444.0004", - "type": "sms" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mocean1": [ - { - "startTime": 1676891418141, - "executionTime": 0, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mocean1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:17.097Z", - "stoppedAt": "2023-02-20T11:10:18.141Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/17-snapshot.json b/test-workflows/snapshots/17-snapshot.json deleted file mode 100644 index 1b00090fc6..0000000000 --- a/test-workflows/snapshots/17-snapshot.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994645, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenThesaurus": [ - { - "startTime": 1747343994645, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 185, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 3913, - "categories": [ - "json array" - ], - "terms": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 11705, - "categories": [ - "json array" - ], - "terms": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 8559, - "categories": [ - "json array" - ], - "terms": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 15485, - "categories": [ - "json array" - ], - "terms": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "OpenThesaurus" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.645Z", - "stoppedAt": "2025-05-15T21:19:54.830Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/172-snapshot.json b/test-workflows/snapshots/172-snapshot.json deleted file mode 100644 index 4dd486832f..0000000000 --- a/test-workflows/snapshots/172-snapshot.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994721, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PayPal": [ - { - "startTime": 1747343994721, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 636, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "batch_header": { - "object": true - }, - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PayPal1": [ - { - "startTime": 1747343995357, - "executionIndex": 2, - "source": [ - { - "previousNode": "PayPal" - } - ], - "hints": [], - "executionTime": 534, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "payout_item_id": "HHW94VDFSQWZQ", - "transaction_status": "PENDING", - "payout_batch_id": "WNCGA2S4EGV54", - "payout_item": { - "object": true - }, - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PayPal2": [ - { - "startTime": 1747343995891, - "executionIndex": 3, - "source": [ - { - "previousNode": "PayPal1" - } - ], - "hints": [], - "executionTime": 1068, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "payout_item_id": "HHW94VDFSQWZQ", - "transaction_status": "PENDING", - "payout_batch_id": "WNCGA2S4EGV54", - "sender_batch_id": "1747343994721", - "payout_item": { - "object": true - }, - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "PayPal3": [ - { - "startTime": 1747343996959, - "executionIndex": 4, - "source": [ - { - "previousNode": "PayPal2" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "payout_item_id": "HHW94VDFSQWZQ", - "transaction_status": "PENDING", - "payout_batch_id": "WNCGA2S4EGV54", - "sender_batch_id": "1747343994721", - "payout_item": { - "object": true - }, - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "PayPal3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.721Z", - "stoppedAt": "2025-05-15T21:19:56.959Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/174-snapshot.json b/test-workflows/snapshots/174-snapshot.json deleted file mode 100644 index aabe8542b6..0000000000 --- a/test-workflows/snapshots/174-snapshot.json +++ /dev/null @@ -1,305 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994838, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set id & email": [ - { - "startTime": 1747343994838, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 6, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 989, - "email": "fake1747343994844@email.com" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero": [ - { - "startTime": 1747343994844, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set id & email" - } - ], - "hints": [], - "executionTime": 423, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero1": [ - { - "startTime": 1747343995267, - "executionIndex": 3, - "source": [ - { - "previousNode": "Vero" - } - ], - "hints": [], - "executionTime": 506, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero2": [ - { - "startTime": 1747343995773, - "executionIndex": 4, - "source": [ - { - "previousNode": "Vero1" - } - ], - "hints": [], - "executionTime": 462, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero3": [ - { - "startTime": 1747343996235, - "executionIndex": 5, - "source": [ - { - "previousNode": "Vero2" - } - ], - "hints": [], - "executionTime": 696, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero4": [ - { - "startTime": 1747343996931, - "executionIndex": 6, - "source": [ - { - "previousNode": "Vero3" - } - ], - "hints": [], - "executionTime": 531, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero5": [ - { - "startTime": 1747343997462, - "executionIndex": 7, - "source": [ - { - "previousNode": "Vero4" - } - ], - "hints": [], - "executionTime": 379, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero7": [ - { - "startTime": 1747343997841, - "executionIndex": 8, - "source": [ - { - "previousNode": "Vero5" - } - ], - "hints": [], - "executionTime": 419, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vero6": [ - { - "startTime": 1747343998260, - "executionIndex": 9, - "source": [ - { - "previousNode": "Vero7" - } - ], - "hints": [], - "executionTime": 439, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": 200, - "message": "Success." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Vero6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.838Z", - "stoppedAt": "2025-05-15T21:19:58.699Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/177-snapshot.json b/test-workflows/snapshots/177-snapshot.json deleted file mode 100644 index 5347c0c5cb..0000000000 --- a/test-workflows/snapshots/177-snapshot.json +++ /dev/null @@ -1,1047 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1726655392049, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc1": [ - { - "hints": [], - "startTime": 1726655392049, - "executionTime": 210, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 6, - "price": 0, - "real_price": 0.001, - "processor": "check-creditcard-checksum", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc2": [ - { - "hints": [], - "startTime": 1726655392259, - "executionTime": 135, - "source": [ - { - "previousNode": "uProc1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.001, - "processor": "get-creditcard-type", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc3": [ - { - "hints": [], - "startTime": 1726655392394, - "executionTime": 145, - "source": [ - { - "previousNode": "uProc2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.0015, - "processor": "check-bank-account-valid-es", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc4": [ - { - "hints": [], - "startTime": 1726655392539, - "executionTime": 172, - "source": [ - { - "previousNode": "uProc3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.0015, - "processor": "check-bank-bic-valid", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc5": [ - { - "hints": [], - "startTime": 1726655392711, - "executionTime": 134, - "source": [ - { - "previousNode": "uProc4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.003, - "processor": "get-bank-iban-by-account", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc6": [ - { - "hints": [], - "startTime": 1726655392845, - "executionTime": 181, - "source": [ - { - "previousNode": "uProc5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.003, - "processor": "get-bank-iban-lookup", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc7": [ - { - "hints": [], - "startTime": 1726655393026, - "executionTime": 5276, - "source": [ - { - "previousNode": "uProc6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10032", - "time": 2, - "price": 0, - "real_price": 0.0015, - "processor": "check-bank-iban-valid", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc8": [ - { - "hints": [], - "startTime": 1726655398302, - "executionTime": 329, - "source": [ - { - "previousNode": "uProc7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.001, - "processor": "get-currency-by-country", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc9": [ - { - "hints": [], - "startTime": 1726655398631, - "executionTime": 753, - "source": [ - { - "previousNode": "uProc8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.001, - "processor": "get-currency-by-country-isocode", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc10": [ - { - "hints": [], - "startTime": 1726655399384, - "executionTime": 187, - "source": [ - { - "previousNode": "uProc9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0, - "processor": "get-currency-by-ip", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc11": [ - { - "hints": [], - "startTime": 1726655399571, - "executionTime": 164, - "source": [ - { - "previousNode": "uProc10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0, - "processor": "get-currency-by-isocode", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc12": [ - { - "hints": [], - "startTime": 1726655399735, - "executionTime": 197, - "source": [ - { - "previousNode": "uProc11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 8, - "price": 0.002, - "real_price": 0.002, - "processor": "get-currency-converted-between-isocode-date", - "total_rows": 1, - "balance": 50.4795 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc13": [ - { - "hints": [], - "startTime": 1726655399932, - "executionTime": 205, - "source": [ - { - "previousNode": "uProc12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "params": { - "object": true - }, - "processor": "get-currency-list-by-country", - "total_rows": 1, - "balance": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc14": [ - { - "hints": [], - "startTime": 1726655400137, - "executionTime": 5150, - "source": [ - { - "previousNode": "uProc13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": [ - "json array" - ], - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0, - "processor": "get-currency-list-by-ip", - "total_rows": 0, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc15": [ - { - "hints": [], - "startTime": 1726655405287, - "executionTime": 183, - "source": [ - { - "previousNode": "uProc14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": [ - "json array" - ], - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0, - "processor": "get-currency-list-by-isocode", - "total_rows": 0, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc16": [ - { - "hints": [], - "startTime": 1726655405470, - "executionTime": 152, - "source": [ - { - "previousNode": "uProc15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.001, - "processor": "check-currency-valid-iso", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc17": [ - { - "hints": [], - "startTime": 1726655405623, - "executionTime": 153, - "source": [ - { - "previousNode": "uProc16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.005, - "processor": "get-vat-by-address", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc18": [ - { - "hints": [], - "startTime": 1726655405776, - "executionTime": 5176, - "source": [ - { - "previousNode": "uProc17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.005, - "processor": "get-vat-by-coordinates", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc19": [ - { - "hints": [], - "startTime": 1726655410952, - "executionTime": 148, - "source": [ - { - "previousNode": "uProc18" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 1, - "price": 0, - "real_price": 0, - "processor": "get-vat-by-ip", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc20": [ - { - "hints": [], - "startTime": 1726655411101, - "executionTime": 152, - "source": [ - { - "previousNode": "uProc19" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.005, - "processor": "get-vat-by-isocode", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc21": [ - { - "hints": [], - "startTime": 1726655411253, - "executionTime": 148, - "source": [ - { - "previousNode": "uProc20" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10063", - "time": 2, - "price": 0, - "real_price": 0.005, - "processor": "get-vat-by-number", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc22": [ - { - "hints": [], - "startTime": 1726655411401, - "executionTime": 158, - "source": [ - { - "previousNode": "uProc21" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0.005, - "processor": "get-vat-by-phone", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc23": [ - { - "hints": [], - "startTime": 1726655411559, - "executionTime": 5173, - "source": [ - { - "previousNode": "uProc22" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": false, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10040", - "time": 2, - "price": 0, - "real_price": 0, - "processor": "get-vat-by-zipcode", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "uProc24": [ - { - "hints": [], - "startTime": 1726655416732, - "executionTime": 144, - "source": [ - { - "previousNode": "uProc23" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "message": { - "object": true - }, - "status": "completed", - "params": { - "object": true - }, - "normalized": false, - "criteria": "10063", - "time": 2, - "price": 0, - "real_price": 0.0025, - "processor": "check-vat-exist", - "total_rows": 1, - "balance": 50.4815 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "uProc24" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-09-18T10:29:52.046Z", - "stoppedAt": "2024-09-18T10:30:16.876Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/182-snapshot.json b/test-workflows/snapshots/182-snapshot.json deleted file mode 100644 index 7d62da355a..0000000000 --- a/test-workflows/snapshots/182-snapshot.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343994910, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Webflow": [ - { - "startTime": 1747343994910, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1513, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_cid": "608289f18593d40792d70d54", - "_id": "68265a7bcf2b25604fb8766e", - "_draft": true, - "_archived": false, - "name": "Item1747343994912", - "slug": "ItemSlug1747343994913", - "updated-on": "2025-05-15T21:19:55.285Z", - "updated-by": "Person_60828826c12bb73d4752eedb", - "created-on": "2025-05-15T21:19:55.285Z", - "created-by": "Person_60828826c12bb73d4752eedb", - "published-on": { - "object": true - }, - "published-by": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Webflow1": [ - { - "startTime": 1747343996423, - "executionIndex": 2, - "source": [ - { - "previousNode": "Webflow" - } - ], - "hints": [], - "executionTime": 677, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_cid": "608289f18593d40792d70d54", - "_id": "68265a7bcf2b25604fb8766e", - "_draft": true, - "_archived": false, - "name": "Item1747343994912", - "slug": "ItemSlug1747343994913", - "updated-on": "2025-05-15T21:19:55.285Z", - "updated-by": "Person_60828826c12bb73d4752eedb", - "created-on": "2025-05-15T21:19:55.285Z", - "created-by": "Person_60828826c12bb73d4752eedb", - "published-on": { - "object": true - }, - "published-by": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Webflow2": [ - { - "startTime": 1747343997100, - "executionIndex": 3, - "source": [ - { - "previousNode": "Webflow1" - } - ], - "hints": [], - "executionTime": 473, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_cid": "608289f18593d40792d70d54", - "_id": "68265a7bcf2b25604fb8766e", - "_draft": false, - "_archived": false, - "name": "UpdatedItem1747343994912", - "slug": "UpdatedItemSlug1747343994913", - "updated-on": "2025-05-15T21:19:57.521Z", - "updated-by": "Person_60828826c12bb73d4752eedb", - "created-on": "2025-05-15T21:19:55.285Z", - "created-by": "Person_60828826c12bb73d4752eedb", - "published-on": { - "object": true - }, - "published-by": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Webflow3": [ - { - "startTime": 1747343997573, - "executionIndex": 4, - "source": [ - { - "previousNode": "Webflow2" - } - ], - "hints": [], - "executionTime": 658, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "deleted": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Webflow4": [ - { - "startTime": 1747343998231, - "executionIndex": 5, - "source": [ - { - "previousNode": "Webflow3" - } - ], - "hints": [], - "executionTime": 479, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_cid": "608289f18593d40792d70d54", - "_id": "6826407aa3de802cc025d6b8", - "_draft": true, - "_archived": false, - "name": "Item1747337338117", - "slug": "ItemSlug1747337338118", - "updated-on": "2025-05-15T19:28:58.462Z", - "updated-by": "Person_60828826c12bb73d4752eedb", - "created-on": "2025-05-15T19:28:58.462Z", - "created-by": "Person_60828826c12bb73d4752eedb", - "published-on": { - "object": true - }, - "published-by": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Webflow4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:54.910Z", - "stoppedAt": "2025-05-15T21:19:58.710Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/184-snapshot.json b/test-workflows/snapshots/184-snapshot.json deleted file mode 100644 index 39c0754178..0000000000 --- a/test-workflows/snapshots/184-snapshot.json +++ /dev/null @@ -1,1341 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1705409098591, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce7": [ - { - "startTime": 1705409098592, - "executionTime": 421, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "5000900000ts7wRAAQ", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce": [ - { - "startTime": 1705409099013, - "executionTime": 286, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0010900002NKs26AAD", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce8": [ - { - "startTime": 1705409099300, - "executionTime": 160, - "source": [ - { - "previousNode": "Salesforce7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "5000900000ts7wRAAQ", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "CaseNumber": "00001926", - "ContactId": { - "object": true - }, - "AccountId": { - "object": true - }, - "AssetId": { - "object": true - }, - "SourceId": { - "object": true - }, - "ParentId": { - "object": true - }, - "SuppliedName": { - "object": true - }, - "SuppliedEmail": { - "object": true - }, - "SuppliedPhone": { - "object": true - }, - "SuppliedCompany": { - "object": true - }, - "Type": "Other", - "Status": "New", - "Reason": "Installation", - "Origin": { - "object": true - }, - "Subject": "Subject1705409098603", - "Priority": "Medium", - "Description": { - "object": true - }, - "IsClosed": false, - "ClosedDate": { - "object": true - }, - "IsEscalated": false, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:58.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:58.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:58.000+0000", - "ContactPhone": { - "object": true - }, - "ContactMobile": { - "object": true - }, - "ContactEmail": { - "object": true - }, - "ContactFax": { - "object": true - }, - "Comments": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:58.000+0000", - "LastReferencedDate": "2024-01-16T12:44:58.000+0000", - "EngineeringReqNumber__c": { - "object": true - }, - "SLAViolation__c": { - "object": true - }, - "Product__c": { - "object": true - }, - "PotentialLiability__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1705409099461, - "executionTime": 503, - "source": [ - { - "previousNode": "Salesforce" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0010900002NKs26AAD", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1705409099965, - "executionTime": 4, - "source": [ - { - "previousNode": "Salesforce8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "5000900000ts7wRAAQ", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "CaseNumber": "00001926", - "ContactId": { - "object": true - }, - "AccountId": { - "object": true - }, - "AssetId": { - "object": true - }, - "SourceId": { - "object": true - }, - "ParentId": { - "object": true - }, - "SuppliedName": { - "object": true - }, - "SuppliedEmail": { - "object": true - }, - "SuppliedPhone": { - "object": true - }, - "SuppliedCompany": { - "object": true - }, - "Type": "Other", - "Status": "New", - "Reason": "Installation", - "Origin": { - "object": true - }, - "Subject": "Subject1705409098603", - "Priority": "Medium", - "Description": { - "object": true - }, - "IsClosed": false, - "ClosedDate": { - "object": true - }, - "IsEscalated": false, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:58.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:58.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:58.000+0000", - "ContactPhone": { - "object": true - }, - "ContactMobile": { - "object": true - }, - "ContactEmail": { - "object": true - }, - "ContactFax": { - "object": true - }, - "Comments": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:58.000+0000", - "LastReferencedDate": "2024-01-16T12:44:58.000+0000", - "EngineeringReqNumber__c": { - "object": true - }, - "SLAViolation__c": { - "object": true - }, - "Product__c": { - "object": true - }, - "PotentialLiability__c": { - "object": true - }, - "data": "Attachment example" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce1": [ - { - "startTime": 1705409099969, - "executionTime": 225, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0010900002NKs26AAD", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "Name": "Account1705409099016", - "Type": { - "object": true - }, - "ParentId": { - "object": true - }, - "BillingStreet": { - "object": true - }, - "BillingCity": { - "object": true - }, - "BillingState": { - "object": true - }, - "BillingPostalCode": { - "object": true - }, - "BillingCountry": { - "object": true - }, - "BillingLatitude": { - "object": true - }, - "BillingLongitude": { - "object": true - }, - "BillingGeocodeAccuracy": { - "object": true - }, - "BillingAddress": { - "object": true - }, - "ShippingStreet": { - "object": true - }, - "ShippingCity": { - "object": true - }, - "ShippingState": { - "object": true - }, - "ShippingPostalCode": { - "object": true - }, - "ShippingCountry": { - "object": true - }, - "ShippingLatitude": { - "object": true - }, - "ShippingLongitude": { - "object": true - }, - "ShippingGeocodeAccuracy": { - "object": true - }, - "ShippingAddress": { - "object": true - }, - "Phone": { - "object": true - }, - "Fax": { - "object": true - }, - "AccountNumber": { - "object": true - }, - "Website": { - "object": true - }, - "PhotoUrl": "/services/images/photo/0010900002NKs26AAD", - "Sic": { - "object": true - }, - "Industry": { - "object": true - }, - "AnnualRevenue": { - "object": true - }, - "NumberOfEmployees": { - "object": true - }, - "Ownership": { - "object": true - }, - "TickerSymbol": { - "object": true - }, - "Description": { - "object": true - }, - "Rating": { - "object": true - }, - "Site": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "Jigsaw": { - "object": true - }, - "JigsawCompanyId": { - "object": true - }, - "CleanStatus": "Pending", - "AccountSource": { - "object": true - }, - "DunsNumber": { - "object": true - }, - "Tradestyle": { - "object": true - }, - "NaicsCode": { - "object": true - }, - "NaicsDesc": { - "object": true - }, - "YearStarted": { - "object": true - }, - "SicDesc": { - "object": true - }, - "DandbCompanyId": { - "object": true - }, - "OperatingHoursId": { - "object": true - }, - "CustomerPriority__c": { - "object": true - }, - "SLA__c": { - "object": true - }, - "Active__c": { - "object": true - }, - "NumberofLocations__c": { - "object": true - }, - "UpsellOpportunity__c": { - "object": true - }, - "SLASerialNumber__c": { - "object": true - }, - "SLAExpirationDate__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Move Binary Data": [ - { - "startTime": 1705409100194, - "executionTime": 1, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "mimeType": "application/json", - "fileType": "json", - "fileExtension": "json", - "data": "eyJhdHRyaWJ1dGVzIjp7InR5cGUiOiJDYXNlIiwidXJsIjoiL3NlcnZpY2VzL2RhdGEvdjU5LjAvc29iamVjdHMvQ2FzZS81MDAwOTAwMDAwdHM3d1JBQVEifSwiSWQiOiI1MDAwOTAwMDAwdHM3d1JBQVEiLCJJc0RlbGV0ZWQiOmZhbHNlLCJNYXN0ZXJSZWNvcmRJZCI6bnVsbCwiQ2FzZU51bWJlciI6IjAwMDAxOTI2IiwiQ29udGFjdElkIjpudWxsLCJBY2NvdW50SWQiOm51bGwsIkFzc2V0SWQiOm51bGwsIlNvdXJjZUlkIjpudWxsLCJQYXJlbnRJZCI6bnVsbCwiU3VwcGxpZWROYW1lIjpudWxsLCJTdXBwbGllZEVtYWlsIjpudWxsLCJTdXBwbGllZFBob25lIjpudWxsLCJTdXBwbGllZENvbXBhbnkiOm51bGwsIlR5cGUiOiJPdGhlciIsIlN0YXR1cyI6Ik5ldyIsIlJlYXNvbiI6Ikluc3RhbGxhdGlvbiIsIk9yaWdpbiI6bnVsbCwiU3ViamVjdCI6IlN1YmplY3QxNzA1NDA5MDk4NjAzIiwiUHJpb3JpdHkiOiJNZWRpdW0iLCJEZXNjcmlwdGlvbiI6bnVsbCwiSXNDbG9zZWQiOmZhbHNlLCJDbG9zZWREYXRlIjpudWxsLCJJc0VzY2FsYXRlZCI6ZmFsc2UsIk93bmVySWQiOiIwMDUwOTAwMDAwNW50a0dBQVEiLCJDcmVhdGVkRGF0ZSI6IjIwMjQtMDEtMTZUMTI6NDQ6NTguMDAwKzAwMDAiLCJDcmVhdGVkQnlJZCI6IjAwNTA5MDAwMDA1bnRrR0FBUSIsIkxhc3RNb2RpZmllZERhdGUiOiIyMDI0LTAxLTE2VDEyOjQ0OjU4LjAwMCswMDAwIiwiTGFzdE1vZGlmaWVkQnlJZCI6IjAwNTA5MDAwMDA1bnRrR0FBUSIsIlN5c3RlbU1vZHN0YW1wIjoiMjAyNC0wMS0xNlQxMjo0NDo1OC4wMDArMDAwMCIsIkNvbnRhY3RQaG9uZSI6bnVsbCwiQ29udGFjdE1vYmlsZSI6bnVsbCwiQ29udGFjdEVtYWlsIjpudWxsLCJDb250YWN0RmF4IjpudWxsLCJDb21tZW50cyI6bnVsbCwiTGFzdFZpZXdlZERhdGUiOiIyMDI0LTAxLTE2VDEyOjQ0OjU4LjAwMCswMDAwIiwiTGFzdFJlZmVyZW5jZWREYXRlIjoiMjAyNC0wMS0xNlQxMjo0NDo1OC4wMDArMDAwMCIsIkVuZ2luZWVyaW5nUmVxTnVtYmVyX19jIjpudWxsLCJTTEFWaW9sYXRpb25fX2MiOm51bGwsIlByb2R1Y3RfX2MiOm51bGwsIlBvdGVudGlhbExpYWJpbGl0eV9fYyI6bnVsbCwiZGF0YSI6IkF0dGFjaG1lbnQgZXhhbXBsZSJ9", - "fileSize": "1.12 kB" - } - } - } - ] - ] - } - } - ], - "Salesforce2": [ - { - "startTime": 1705409100195, - "executionTime": 186, - "source": [ - { - "previousNode": "Salesforce1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDgAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second7": [ - { - "startTime": 1705409100381, - "executionTime": 504, - "source": [ - { - "previousNode": "Move Binary Data" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "mimeType": "application/json", - "fileType": "json", - "fileExtension": "json", - "data": "eyJhdHRyaWJ1dGVzIjp7InR5cGUiOiJDYXNlIiwidXJsIjoiL3NlcnZpY2VzL2RhdGEvdjU5LjAvc29iamVjdHMvQ2FzZS81MDAwOTAwMDAwdHM3d1JBQVEifSwiSWQiOiI1MDAwOTAwMDAwdHM3d1JBQVEiLCJJc0RlbGV0ZWQiOmZhbHNlLCJNYXN0ZXJSZWNvcmRJZCI6bnVsbCwiQ2FzZU51bWJlciI6IjAwMDAxOTI2IiwiQ29udGFjdElkIjpudWxsLCJBY2NvdW50SWQiOm51bGwsIkFzc2V0SWQiOm51bGwsIlNvdXJjZUlkIjpudWxsLCJQYXJlbnRJZCI6bnVsbCwiU3VwcGxpZWROYW1lIjpudWxsLCJTdXBwbGllZEVtYWlsIjpudWxsLCJTdXBwbGllZFBob25lIjpudWxsLCJTdXBwbGllZENvbXBhbnkiOm51bGwsIlR5cGUiOiJPdGhlciIsIlN0YXR1cyI6Ik5ldyIsIlJlYXNvbiI6Ikluc3RhbGxhdGlvbiIsIk9yaWdpbiI6bnVsbCwiU3ViamVjdCI6IlN1YmplY3QxNzA1NDA5MDk4NjAzIiwiUHJpb3JpdHkiOiJNZWRpdW0iLCJEZXNjcmlwdGlvbiI6bnVsbCwiSXNDbG9zZWQiOmZhbHNlLCJDbG9zZWREYXRlIjpudWxsLCJJc0VzY2FsYXRlZCI6ZmFsc2UsIk93bmVySWQiOiIwMDUwOTAwMDAwNW50a0dBQVEiLCJDcmVhdGVkRGF0ZSI6IjIwMjQtMDEtMTZUMTI6NDQ6NTguMDAwKzAwMDAiLCJDcmVhdGVkQnlJZCI6IjAwNTA5MDAwMDA1bnRrR0FBUSIsIkxhc3RNb2RpZmllZERhdGUiOiIyMDI0LTAxLTE2VDEyOjQ0OjU4LjAwMCswMDAwIiwiTGFzdE1vZGlmaWVkQnlJZCI6IjAwNTA5MDAwMDA1bnRrR0FBUSIsIlN5c3RlbU1vZHN0YW1wIjoiMjAyNC0wMS0xNlQxMjo0NDo1OC4wMDArMDAwMCIsIkNvbnRhY3RQaG9uZSI6bnVsbCwiQ29udGFjdE1vYmlsZSI6bnVsbCwiQ29udGFjdEVtYWlsIjpudWxsLCJDb250YWN0RmF4IjpudWxsLCJDb21tZW50cyI6bnVsbCwiTGFzdFZpZXdlZERhdGUiOiIyMDI0LTAxLTE2VDEyOjQ0OjU4LjAwMCswMDAwIiwiTGFzdFJlZmVyZW5jZWREYXRlIjoiMjAyNC0wMS0xNlQxMjo0NDo1OC4wMDArMDAwMCIsIkVuZ2luZWVyaW5nUmVxTnVtYmVyX19jIjpudWxsLCJTTEFWaW9sYXRpb25fX2MiOm51bGwsIlByb2R1Y3RfX2MiOm51bGwsIlBvdGVudGlhbExpYWJpbGl0eV9fYyI6bnVsbCwiZGF0YSI6IkF0dGFjaG1lbnQgZXhhbXBsZSJ9", - "fileSize": "1.12 kB" - } - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1705409100886, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDgAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce14": [ - { - "startTime": 1705409101392, - "executionTime": 296, - "source": [ - { - "previousNode": "Sleep 0.5 second7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00P0900000MuBd0EAF", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce3": [ - { - "startTime": 1705409101689, - "executionTime": 163, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0010900002NKrwVAAT", - "Name": "Account1705408303842", - "Type": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce15": [ - { - "startTime": 1705409101852, - "executionTime": 166, - "source": [ - { - "previousNode": "Salesforce14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00P0900000MuBd0EAF", - "IsDeleted": false, - "ParentId": "5000900000ts7wRAAQ", - "Name": "Attachment1705409101394", - "IsPrivate": false, - "ContentType": "application/json", - "BodyLength": 1116, - "Body": "/services/data/v59.0/sobjects/Attachment/00P0900000MuBd0EAF/Body", - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:45:01.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:45:01.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:45:01.000+0000", - "Description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce4": [ - { - "startTime": 1705409102019, - "executionTime": 166, - "source": [ - { - "previousNode": "Salesforce3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second6": [ - { - "startTime": 1705409102185, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00P0900000MuBd0EAF", - "IsDeleted": false, - "ParentId": "5000900000ts7wRAAQ", - "Name": "Attachment1705409101394", - "IsPrivate": false, - "ContentType": "application/json", - "BodyLength": 1116, - "Body": "/services/data/v59.0/sobjects/Attachment/00P0900000MuBd0EAF/Body", - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:45:01.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:45:01.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:45:01.000+0000", - "Description": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second2": [ - { - "startTime": 1705409102692, - "executionTime": 507, - "source": [ - { - "previousNode": "Salesforce4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce16": [ - { - "startTime": 1705409103200, - "executionTime": 140, - "source": [ - { - "previousNode": "Sleep 0.5 second6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00P0900000MuBd0EAF", - "Name": "Attachment1705409101394" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce5": [ - { - "startTime": 1705409103341, - "executionTime": 305, - "source": [ - { - "previousNode": "Sleep 0.5 second2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce17": [ - { - "startTime": 1705409103646, - "executionTime": 164, - "source": [ - { - "previousNode": "Salesforce16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce6": [ - { - "startTime": 1705409103811, - "executionTime": 444, - "source": [ - { - "previousNode": "Salesforce5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second5": [ - { - "startTime": 1705409104256, - "executionTime": 507, - "source": [ - { - "previousNode": "Salesforce17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce18": [ - { - "startTime": 1705409104763, - "executionTime": 187, - "source": [ - { - "previousNode": "Sleep 0.5 second5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce19": [ - { - "startTime": 1705409104951, - "executionTime": 213, - "source": [ - { - "previousNode": "Salesforce18" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce9": [ - { - "startTime": 1705409105164, - "executionTime": 243, - "source": [ - { - "previousNode": "Salesforce19" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00a09000004JUeBAAW", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second4": [ - { - "startTime": 1705409105408, - "executionTime": 507, - "source": [ - { - "previousNode": "Salesforce9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00a09000004JUeBAAW", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce10": [ - { - "startTime": 1705409105916, - "executionTime": 147, - "source": [ - { - "previousNode": "Sleep 0.5 second4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce11": [ - { - "startTime": 1705409106064, - "executionTime": 149, - "source": [ - { - "previousNode": "Salesforce10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "5000900000ts7wRAAQ", - "AccountId": { - "object": true - }, - "ContactId": { - "object": true - }, - "Priority": "Medium", - "Status": "New", - "Subject": "Subject1705409098603", - "Type": "Other" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second3": [ - { - "startTime": 1705409106213, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "5000900000ts7wRAAQ", - "AccountId": { - "object": true - }, - "ContactId": { - "object": true - }, - "Priority": "Medium", - "Status": "New", - "Subject": "Subject1705409098603", - "Type": "Other" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce12": [ - { - "startTime": 1705409106718, - "executionTime": 240, - "source": [ - { - "previousNode": "Sleep 0.5 second3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce13": [ - { - "startTime": 1705409106958, - "executionTime": 397, - "source": [ - { - "previousNode": "Salesforce12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Salesforce13" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-01-16T12:44:58.575Z", - "stoppedAt": "2024-01-16T12:45:07.356Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/185-snapshot.json b/test-workflows/snapshots/185-snapshot.json deleted file mode 100644 index 8f228fe10f..0000000000 --- a/test-workflows/snapshots/185-snapshot.json +++ /dev/null @@ -1,1588 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1705409098608, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce": [ - { - "startTime": 1705409098608, - "executionTime": 437, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0030900002C8F6SAAV", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce8": [ - { - "startTime": 1705409099045, - "executionTime": 172, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "a000900000jSn74AAC", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce13": [ - { - "startTime": 1705409099218, - "executionTime": 178, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "label": "FixedFlow", - "name": "FixedFlow", - "type": "FLOW", - "url": "/services/data/v59.0/actions/custom/flow/FixedFlow" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce15": [ - { - "startTime": 1705409099396, - "executionTime": 280, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00Q0900000Q92tNEAR", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce1": [ - { - "startTime": 1705409099677, - "executionTime": 179, - "source": [ - { - "previousNode": "Salesforce" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0030900002C8F6SAAV", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "AccountId": { - "object": true - }, - "LastName": "Contact1705409098611", - "FirstName": { - "object": true - }, - "Salutation": { - "object": true - }, - "Name": "Contact1705409098611", - "OtherStreet": { - "object": true - }, - "OtherCity": { - "object": true - }, - "OtherState": { - "object": true - }, - "OtherPostalCode": { - "object": true - }, - "OtherCountry": { - "object": true - }, - "OtherLatitude": { - "object": true - }, - "OtherLongitude": { - "object": true - }, - "OtherGeocodeAccuracy": { - "object": true - }, - "OtherAddress": { - "object": true - }, - "MailingStreet": { - "object": true - }, - "MailingCity": { - "object": true - }, - "MailingState": { - "object": true - }, - "MailingPostalCode": { - "object": true - }, - "MailingCountry": { - "object": true - }, - "MailingLatitude": { - "object": true - }, - "MailingLongitude": { - "object": true - }, - "MailingGeocodeAccuracy": { - "object": true - }, - "MailingAddress": { - "object": true - }, - "Phone": { - "object": true - }, - "Fax": { - "object": true - }, - "MobilePhone": { - "object": true - }, - "HomePhone": { - "object": true - }, - "OtherPhone": { - "object": true - }, - "AssistantPhone": { - "object": true - }, - "ReportsToId": { - "object": true - }, - "Email": { - "object": true - }, - "Title": { - "object": true - }, - "Department": { - "object": true - }, - "AssistantName": { - "object": true - }, - "LeadSource": { - "object": true - }, - "Birthdate": { - "object": true - }, - "Description": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "LastCURequestDate": { - "object": true - }, - "LastCUUpdateDate": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "EmailBouncedReason": { - "object": true - }, - "EmailBouncedDate": { - "object": true - }, - "IsEmailBounced": false, - "PhotoUrl": "/services/images/photo/0030900002C8F6SAAV", - "Jigsaw": { - "object": true - }, - "JigsawContactId": { - "object": true - }, - "CleanStatus": "Pending", - "IndividualId": { - "object": true - }, - "IsPriorityRecord": false, - "Level__c": { - "object": true - }, - "Languages__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second7": [ - { - "startTime": 1705409099857, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "a000900000jSn74AAC", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce14": [ - { - "startTime": 1705409100366, - "executionTime": 0, - "source": [ - { - "previousNode": "Salesforce13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "label": "FixedFlow", - "name": "FixedFlow", - "type": "FLOW", - "url": "/services/data/v59.0/actions/custom/flow/FixedFlow" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce16": [ - { - "startTime": 1705409100366, - "executionTime": 175, - "source": [ - { - "previousNode": "Salesforce15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00Q0900000Q92tNEAR", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "LastName": "LastName1705409099400", - "FirstName": { - "object": true - }, - "Salutation": { - "object": true - }, - "Name": "LastName1705409099400", - "Title": { - "object": true - }, - "Company": "n8n", - "Street": { - "object": true - }, - "City": { - "object": true - }, - "State": { - "object": true - }, - "PostalCode": { - "object": true - }, - "Country": { - "object": true - }, - "Latitude": { - "object": true - }, - "Longitude": { - "object": true - }, - "GeocodeAccuracy": { - "object": true - }, - "Address": { - "object": true - }, - "Phone": { - "object": true - }, - "MobilePhone": { - "object": true - }, - "Fax": { - "object": true - }, - "Email": { - "object": true - }, - "Website": { - "object": true - }, - "PhotoUrl": "/services/images/photo/00Q0900000Q92tNEAR", - "Description": { - "object": true - }, - "LeadSource": { - "object": true - }, - "Status": "Open - Not Contacted", - "Industry": { - "object": true - }, - "Rating": { - "object": true - }, - "AnnualRevenue": { - "object": true - }, - "NumberOfEmployees": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "IsConverted": false, - "ConvertedDate": { - "object": true - }, - "ConvertedAccountId": { - "object": true - }, - "ConvertedContactId": { - "object": true - }, - "ConvertedOpportunityId": { - "object": true - }, - "IsUnreadByOwner": true, - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "Jigsaw": { - "object": true - }, - "JigsawContactId": { - "object": true - }, - "CleanStatus": "Pending", - "CompanyDunsNumber": { - "object": true - }, - "DandbCompanyId": { - "object": true - }, - "EmailBouncedReason": { - "object": true - }, - "EmailBouncedDate": { - "object": true - }, - "IndividualId": { - "object": true - }, - "IsPriorityRecord": false, - "SICCode__c": { - "object": true - }, - "ProductInterest__c": { - "object": true - }, - "Primary__c": { - "object": true - }, - "CurrentGenerators__c": { - "object": true - }, - "NumberofLocations__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1705409100542, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0030900002C8F6SAAV", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "AccountId": { - "object": true - }, - "LastName": "Contact1705409098611", - "FirstName": { - "object": true - }, - "Salutation": { - "object": true - }, - "Name": "Contact1705409098611", - "OtherStreet": { - "object": true - }, - "OtherCity": { - "object": true - }, - "OtherState": { - "object": true - }, - "OtherPostalCode": { - "object": true - }, - "OtherCountry": { - "object": true - }, - "OtherLatitude": { - "object": true - }, - "OtherLongitude": { - "object": true - }, - "OtherGeocodeAccuracy": { - "object": true - }, - "OtherAddress": { - "object": true - }, - "MailingStreet": { - "object": true - }, - "MailingCity": { - "object": true - }, - "MailingState": { - "object": true - }, - "MailingPostalCode": { - "object": true - }, - "MailingCountry": { - "object": true - }, - "MailingLatitude": { - "object": true - }, - "MailingLongitude": { - "object": true - }, - "MailingGeocodeAccuracy": { - "object": true - }, - "MailingAddress": { - "object": true - }, - "Phone": { - "object": true - }, - "Fax": { - "object": true - }, - "MobilePhone": { - "object": true - }, - "HomePhone": { - "object": true - }, - "OtherPhone": { - "object": true - }, - "AssistantPhone": { - "object": true - }, - "ReportsToId": { - "object": true - }, - "Email": { - "object": true - }, - "Title": { - "object": true - }, - "Department": { - "object": true - }, - "AssistantName": { - "object": true - }, - "LeadSource": { - "object": true - }, - "Birthdate": { - "object": true - }, - "Description": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "LastCURequestDate": { - "object": true - }, - "LastCUUpdateDate": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "EmailBouncedReason": { - "object": true - }, - "EmailBouncedDate": { - "object": true - }, - "IsEmailBounced": false, - "PhotoUrl": "/services/images/photo/0030900002C8F6SAAV", - "Jigsaw": { - "object": true - }, - "JigsawContactId": { - "object": true - }, - "CleanStatus": "Pending", - "IndividualId": { - "object": true - }, - "IsPriorityRecord": false, - "Level__c": { - "object": true - }, - "Languages__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce9": [ - { - "startTime": 1705409101048, - "executionTime": 237, - "source": [ - { - "previousNode": "Sleep 0.5 second7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "a000900000jSn74AAC", - "OwnerId": "00509000005ntkGAAQ", - "IsDeleted": false, - "Name": "TestCustomObjectFixed", - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1705409101285, - "executionTime": 507, - "source": [ - { - "previousNode": "Salesforce16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00Q0900000Q92tNEAR", - "IsDeleted": false, - "MasterRecordId": { - "object": true - }, - "LastName": "LastName1705409099400", - "FirstName": { - "object": true - }, - "Salutation": { - "object": true - }, - "Name": "LastName1705409099400", - "Title": { - "object": true - }, - "Company": "n8n", - "Street": { - "object": true - }, - "City": { - "object": true - }, - "State": { - "object": true - }, - "PostalCode": { - "object": true - }, - "Country": { - "object": true - }, - "Latitude": { - "object": true - }, - "Longitude": { - "object": true - }, - "GeocodeAccuracy": { - "object": true - }, - "Address": { - "object": true - }, - "Phone": { - "object": true - }, - "MobilePhone": { - "object": true - }, - "Fax": { - "object": true - }, - "Email": { - "object": true - }, - "Website": { - "object": true - }, - "PhotoUrl": "/services/images/photo/00Q0900000Q92tNEAR", - "Description": { - "object": true - }, - "LeadSource": { - "object": true - }, - "Status": "Open - Not Contacted", - "Industry": { - "object": true - }, - "Rating": { - "object": true - }, - "AnnualRevenue": { - "object": true - }, - "NumberOfEmployees": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "IsConverted": false, - "ConvertedDate": { - "object": true - }, - "ConvertedAccountId": { - "object": true - }, - "ConvertedContactId": { - "object": true - }, - "ConvertedOpportunityId": { - "object": true - }, - "IsUnreadByOwner": true, - "CreatedDate": "2024-01-16T12:44:59.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:59.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "Jigsaw": { - "object": true - }, - "JigsawContactId": { - "object": true - }, - "CleanStatus": "Pending", - "CompanyDunsNumber": { - "object": true - }, - "DandbCompanyId": { - "object": true - }, - "EmailBouncedReason": { - "object": true - }, - "EmailBouncedDate": { - "object": true - }, - "IndividualId": { - "object": true - }, - "IsPriorityRecord": false, - "SICCode__c": { - "object": true - }, - "ProductInterest__c": { - "object": true - }, - "Primary__c": { - "object": true - }, - "CurrentGenerators__c": { - "object": true - }, - "NumberofLocations__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce2": [ - { - "startTime": 1705409101792, - "executionTime": 173, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDlAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce10": [ - { - "startTime": 1705409101966, - "executionTime": 131, - "source": [ - { - "previousNode": "Salesforce9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "a0009000008QNMNAA4" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce17": [ - { - "startTime": 1705409102098, - "executionTime": 203, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDvAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce3": [ - { - "startTime": 1705409102302, - "executionTime": 166, - "source": [ - { - "previousNode": "Salesforce2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second6": [ - { - "startTime": 1705409102468, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "a0009000008QNMNAA4" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce18": [ - { - "startTime": 1705409102975, - "executionTime": 160, - "source": [ - { - "previousNode": "Salesforce17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second3": [ - { - "startTime": 1705409103135, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce11": [ - { - "startTime": 1705409103641, - "executionTime": 196, - "source": [ - { - "previousNode": "Sleep 0.5 second6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second2": [ - { - "startTime": 1705409103837, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce18" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce4": [ - { - "startTime": 1705409104343, - "executionTime": 145, - "source": [ - { - "previousNode": "Sleep 0.5 second3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0030900002C8EiUAAV", - "FirstName": { - "object": true - }, - "LastName": "Contact1705407559274", - "Email": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce12": [ - { - "startTime": 1705409104489, - "executionTime": 315, - "source": [ - { - "previousNode": "Salesforce11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce19": [ - { - "startTime": 1705409104804, - "executionTime": 151, - "source": [ - { - "previousNode": "Sleep 0.5 second2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00Q09000006rtukEAA", - "Company": "n8n", - "FirstName": { - "object": true - }, - "LastName": "LastName1621428976317", - "Street": { - "object": true - }, - "PostalCode": { - "object": true - }, - "City": { - "object": true - }, - "Email": { - "object": true - }, - "Status": "Open - Not Contacted" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce5": [ - { - "startTime": 1705409104955, - "executionTime": 206, - "source": [ - { - "previousNode": "Salesforce4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00v0900000ZyfD3AAJ", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce20": [ - { - "startTime": 1705409105162, - "executionTime": 259, - "source": [ - { - "previousNode": "Salesforce19" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00v0900000ZyfD8AAJ", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second5": [ - { - "startTime": 1705409105421, - "executionTime": 504, - "source": [ - { - "previousNode": "Salesforce5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00v0900000ZyfD3AAJ", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second4": [ - { - "startTime": 1705409105925, - "executionTime": 504, - "source": [ - { - "previousNode": "Salesforce20" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00v0900000ZyfD8AAJ", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce6": [ - { - "startTime": 1705409106431, - "executionTime": 257, - "source": [ - { - "previousNode": "Sleep 0.5 second5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce21": [ - { - "startTime": 1705409106688, - "executionTime": 205, - "source": [ - { - "previousNode": "Sleep 0.5 second4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce7": [ - { - "startTime": 1705409106893, - "executionTime": 466, - "source": [ - { - "previousNode": "Salesforce6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce22": [ - { - "startTime": 1705409107359, - "executionTime": 509, - "source": [ - { - "previousNode": "Salesforce21" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Salesforce22" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-01-16T12:44:58.604Z", - "stoppedAt": "2024-01-16T12:45:07.868Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/186-snapshot.json b/test-workflows/snapshots/186-snapshot.json deleted file mode 100644 index 555e2018ef..0000000000 --- a/test-workflows/snapshots/186-snapshot.json +++ /dev/null @@ -1,919 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1705409098613, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce": [ - { - "startTime": 1705409098614, - "executionTime": 397, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0060900000WRCqkAAH", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce7": [ - { - "startTime": 1705409099012, - "executionTime": 152, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0010900002NKrwVAAT", - "Name": "Account1705408303842", - "BillingCity": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second4": [ - { - "startTime": 1705409099164, - "executionTime": 517, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1705409099681, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0060900000WRCqkAAH", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce8": [ - { - "startTime": 1705409100187, - "executionTime": 217, - "source": [ - { - "previousNode": "Sleep 0.5 second4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "00T0900001bX5nSEAS", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce1": [ - { - "startTime": 1705409100404, - "executionTime": 169, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "0060900000WRCqkAAH", - "IsDeleted": false, - "AccountId": { - "object": true - }, - "IsPrivate": false, - "Name": "Opp1705409098616", - "Description": { - "object": true - }, - "StageName": "Value Proposition", - "Amount": { - "object": true - }, - "Probability": 50, - "ExpectedRevenue": { - "object": true - }, - "TotalOpportunityQuantity": { - "object": true - }, - "CloseDate": "2021-03-31", - "Type": { - "object": true - }, - "NextStep": { - "object": true - }, - "LeadSource": { - "object": true - }, - "IsClosed": false, - "IsWon": false, - "ForecastCategory": "Pipeline", - "ForecastCategoryName": "Pipeline", - "CampaignId": { - "object": true - }, - "HasOpportunityLineItem": false, - "Pricebook2Id": { - "object": true - }, - "OwnerId": "00509000005ntkGAAQ", - "CreatedDate": "2024-01-16T12:44:58.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:44:58.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:44:59.000+0000", - "LastActivityDate": { - "object": true - }, - "PushCount": 0, - "LastStageChangeDate": { - "object": true - }, - "FiscalQuarter": 1, - "FiscalYear": 2021, - "Fiscal": "2021 1", - "ContactId": { - "object": true - }, - "LastViewedDate": "2024-01-16T12:44:59.000+0000", - "LastReferencedDate": "2024-01-16T12:44:59.000+0000", - "HasOpenActivity": false, - "HasOverdueTask": false, - "LastAmountChangedHistoryId": { - "object": true - }, - "LastCloseDateChangedHistoryId": { - "object": true - }, - "DeliveryInstallationStatus__c": { - "object": true - }, - "TrackingNumber__c": { - "object": true - }, - "OrderNumber__c": { - "object": true - }, - "CurrentGenerators__c": { - "object": true - }, - "MainCompetitors__c": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce9": [ - { - "startTime": 1705409100574, - "executionTime": 166, - "source": [ - { - "previousNode": "Salesforce8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00T0900001bX5nSEAS", - "WhoId": { - "object": true - }, - "WhatId": { - "object": true - }, - "Subject": { - "object": true - }, - "ActivityDate": { - "object": true - }, - "Status": "In Progress", - "Priority": "Normal", - "IsHighPriority": false, - "OwnerId": "00509000005ntkGAAQ", - "Description": { - "object": true - }, - "IsDeleted": false, - "AccountId": { - "object": true - }, - "IsClosed": false, - "CreatedDate": "2024-01-16T12:45:00.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:45:00.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:45:00.000+0000", - "IsArchived": false, - "CallDurationInSeconds": { - "object": true - }, - "CallType": { - "object": true - }, - "CallDisposition": { - "object": true - }, - "CallObject": { - "object": true - }, - "ReminderDateTime": { - "object": true - }, - "IsReminderSet": false, - "RecurrenceActivityId": { - "object": true - }, - "IsRecurrence": false, - "RecurrenceStartDateOnly": { - "object": true - }, - "RecurrenceEndDateOnly": { - "object": true - }, - "RecurrenceTimeZoneSidKey": { - "object": true - }, - "RecurrenceType": { - "object": true - }, - "RecurrenceInterval": { - "object": true - }, - "RecurrenceDayOfWeekMask": { - "object": true - }, - "RecurrenceDayOfMonth": { - "object": true - }, - "RecurrenceInstance": { - "object": true - }, - "RecurrenceMonthOfYear": { - "object": true - }, - "RecurrenceRegeneratedType": { - "object": true - }, - "TaskSubtype": "Task", - "CompletedDateTime": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce2": [ - { - "startTime": 1705409100741, - "executionTime": 1618, - "source": [ - { - "previousNode": "Salesforce1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDqAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second3": [ - { - "startTime": 1705409102359, - "executionTime": 505, - "source": [ - { - "previousNode": "Salesforce9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00T0900001bX5nSEAS", - "WhoId": { - "object": true - }, - "WhatId": { - "object": true - }, - "Subject": { - "object": true - }, - "ActivityDate": { - "object": true - }, - "Status": "In Progress", - "Priority": "Normal", - "IsHighPriority": false, - "OwnerId": "00509000005ntkGAAQ", - "Description": { - "object": true - }, - "IsDeleted": false, - "AccountId": { - "object": true - }, - "IsClosed": false, - "CreatedDate": "2024-01-16T12:45:00.000+0000", - "CreatedById": "00509000005ntkGAAQ", - "LastModifiedDate": "2024-01-16T12:45:00.000+0000", - "LastModifiedById": "00509000005ntkGAAQ", - "SystemModstamp": "2024-01-16T12:45:00.000+0000", - "IsArchived": false, - "CallDurationInSeconds": { - "object": true - }, - "CallType": { - "object": true - }, - "CallDisposition": { - "object": true - }, - "CallObject": { - "object": true - }, - "ReminderDateTime": { - "object": true - }, - "IsReminderSet": false, - "RecurrenceActivityId": { - "object": true - }, - "IsRecurrence": false, - "RecurrenceStartDateOnly": { - "object": true - }, - "RecurrenceEndDateOnly": { - "object": true - }, - "RecurrenceTimeZoneSidKey": { - "object": true - }, - "RecurrenceType": { - "object": true - }, - "RecurrenceInterval": { - "object": true - }, - "RecurrenceDayOfWeekMask": { - "object": true - }, - "RecurrenceDayOfMonth": { - "object": true - }, - "RecurrenceInstance": { - "object": true - }, - "RecurrenceMonthOfYear": { - "object": true - }, - "RecurrenceRegeneratedType": { - "object": true - }, - "TaskSubtype": "Task", - "CompletedDateTime": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1705409102865, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "002090000011nDqAAI", - "success": true, - "errors": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce10": [ - { - "startTime": 1705409103371, - "executionTime": 135, - "source": [ - { - "previousNode": "Sleep 0.5 second3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce3": [ - { - "startTime": 1705409103506, - "executionTime": 142, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "objectDescribe": { - "object": true - }, - "recentItems": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce11": [ - { - "startTime": 1705409103648, - "executionTime": 164, - "source": [ - { - "previousNode": "Salesforce10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00T0900000NzAPdEAN", - "Subject": { - "object": true - }, - "Status": "In Progress", - "Priority": "Normal" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce4": [ - { - "startTime": 1705409103813, - "executionTime": 153, - "source": [ - { - "previousNode": "Salesforce3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00609000006wdbhAAA", - "AccountId": { - "object": true - }, - "Amount": { - "object": true - }, - "Probability": 50, - "Type": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second5": [ - { - "startTime": 1705409103966, - "executionTime": 507, - "source": [ - { - "previousNode": "Salesforce11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00T0900000NzAPdEAN", - "Subject": { - "object": true - }, - "Status": "In Progress", - "Priority": "Normal" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second2": [ - { - "startTime": 1705409104474, - "executionTime": 506, - "source": [ - { - "previousNode": "Salesforce4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "attributes": { - "object": true - }, - "Id": "00609000006wdbhAAA", - "AccountId": { - "object": true - }, - "Amount": { - "object": true - }, - "Probability": 50, - "Type": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Salesforce12": [ - { - "startTime": 1705409104981, - "executionTime": 193, - "source": [ - { - "previousNode": "Sleep 0.5 second5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce5": [ - { - "startTime": 1705409105174, - "executionTime": 245, - "source": [ - { - "previousNode": "Sleep 0.5 second2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce13": [ - { - "startTime": 1705409105419, - "executionTime": 358, - "source": [ - { - "previousNode": "Salesforce12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Salesforce6": [ - { - "startTime": 1705409105778, - "executionTime": 409, - "source": [ - { - "previousNode": "Salesforce5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "errors": [ - "json array" - ], - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Salesforce6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-01-16T12:44:58.611Z", - "stoppedAt": "2024-01-16T12:45:06.187Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/187-snapshot.json b/test-workflows/snapshots/187-snapshot.json deleted file mode 100644 index 18135b36d1..0000000000 --- a/test-workflows/snapshots/187-snapshot.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331893392, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1710331893392, - "executionTime": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "random": 198, - "test": "Entry1710331893394" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strapi": [ - { - "startTime": 1710331893394, - "executionTime": 444, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1285, - "test": "Entry1710331893394", - "random": 198, - "published_at": "2024-03-13T12:11:33.766Z", - "created_at": "2024-03-13T12:11:33.772Z", - "updated_at": "2024-03-13T12:11:33.772Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strapi1": [ - { - "startTime": 1710331893838, - "executionTime": 389, - "source": [ - { - "previousNode": "Strapi" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1285, - "test": "Entry1710331893394", - "random": 198, - "published_at": "2024-03-13T12:11:33.766Z", - "created_at": "2024-03-13T12:11:33.772Z", - "updated_at": "2024-03-13T12:11:33.772Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strapi2": [ - { - "startTime": 1710331894228, - "executionTime": 377, - "source": [ - { - "previousNode": "Strapi1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 2, - "test": { - "object": true - }, - "random": 563, - "published_at": "2021-04-29T07:56:29.555Z", - "created_at": "2021-04-29T07:56:29.563Z", - "updated_at": "2021-04-29T07:56:29.563Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1710331894606, - "executionTime": 3, - "source": [ - { - "previousNode": "Strapi2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1285, - "test": "UpdatedEntry1710331893394" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strapi3": [ - { - "startTime": 1710331894610, - "executionTime": 379, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1285, - "test": "UpdatedEntry1710331893394", - "random": 198, - "published_at": "2024-03-13T12:11:33.766Z", - "created_at": "2024-03-13T12:11:33.772Z", - "updated_at": "2024-03-13T12:11:34.964Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strapi4": [ - { - "startTime": 1710331894989, - "executionTime": 402, - "source": [ - { - "previousNode": "Strapi3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1285, - "test": "UpdatedEntry1710331893394", - "random": 198, - "published_at": "2024-03-13T12:11:33.766Z", - "created_at": "2024-03-13T12:11:33.772Z", - "updated_at": "2024-03-13T12:11:34.964Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Strapi4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:33.392Z", - "stoppedAt": "2024-03-13T12:11:35.392Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/190-snapshot.json b/test-workflows/snapshots/190-snapshot.json deleted file mode 100644 index 6f3c9523e4..0000000000 --- a/test-workflows/snapshots/190-snapshot.json +++ /dev/null @@ -1,1258 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891419278, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse": [ - { - "startTime": 1676891419280, - "executionTime": 633, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 383, - "name": "Category1676891419295", - "color": "FF6D5A", - "text_color": "0000FF", - "slug": "category1676891419295", - "topic_count": 0, - "post_count": 0, - "position": 382, - "description": { - "object": true - }, - "description_text": { - "object": true - }, - "description_excerpt": { - "object": true - }, - "topic_url": "/t/about-the-category1676891419295-category/763", - "read_restricted": false, - "permission": { - "object": true - }, - "notification_level": 1, - "can_edit": true, - "topic_template": { - "object": true - }, - "has_children": { - "object": true - }, - "sort_order": { - "object": true - }, - "sort_ascending": { - "object": true - }, - "show_subcategory_list": false, - "num_featured_topics": 3, - "default_view": { - "object": true - }, - "subcategory_list_style": "rows_with_featured_topics", - "default_top_period": "all", - "default_list_filter": "all", - "minimum_required_tags": 0, - "navigate_to_first_post_after_read": false, - "custom_fields": { - "object": true - }, - "min_tags_from_required_group": 1, - "required_tag_group_name": { - "object": true - }, - "read_only_banner": { - "object": true - }, - "available_groups": [ - "json array" - ], - "auto_close_hours": { - "object": true - }, - "auto_close_based_on_last_post": false, - "group_permissions": [ - "json array" - ], - "email_in": { - "object": true - }, - "email_in_allow_strangers": false, - "mailinglist_mirror": false, - "all_topics_wiki": false, - "allow_unlimited_owner_edits_on_first_post": false, - "can_delete": true, - "allow_badges": true, - "topic_featured_link_allowed": true, - "search_priority": 0, - "default_slow_mode_seconds": { - "object": true - }, - "uploaded_logo": { - "object": true - }, - "uploaded_background": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse3": [ - { - "startTime": 1676891419914, - "executionTime": 273, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 419, - "automatic": false, - "name": "Group1676891419914", - "user_count": 0, - "mentionable_level": 0, - "messageable_level": 0, - "visibility_level": 0, - "primary_group": false, - "title": { - "object": true - }, - "grant_trust_level": { - "object": true - }, - "incoming_email": { - "object": true - }, - "has_messages": false, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "bio_raw": { - "object": true - }, - "bio_cooked": { - "object": true - }, - "bio_excerpt": { - "object": true - }, - "public_admission": false, - "public_exit": false, - "allow_membership_requests": false, - "full_name": { - "object": true - }, - "default_notification_level": 3, - "membership_request_template": { - "object": true - }, - "members_visibility_level": 0, - "can_see_members": true, - "can_admin_group": true, - "publish_read_state": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse7": [ - { - "startTime": 1676891420188, - "executionTime": 1124, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 767, - "name": "UserName LastName", - "username": "nodeqa", - "avatar_template": "/letter_avatar_proxy/v4/letter/n/d78d45/{size}.png", - "created_at": "2023-02-20T11:10:20.863Z", - "cooked": "

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "post_number": 1, - "post_type": 1, - "updated_at": "2023-02-20T11:10:20.863Z", - "reply_count": 0, - "reply_to_post_number": { - "object": true - }, - "quote_count": 0, - "incoming_link_count": 0, - "reads": 0, - "readers_count": 0, - "score": 0, - "yours": true, - "topic_id": 764, - "topic_slug": "post-1676891420193", - "display_username": "UserName LastName", - "primary_group_name": { - "object": true - }, - "flair_name": { - "object": true - }, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "version": 1, - "can_edit": true, - "can_delete": false, - "can_recover": false, - "can_wiki": true, - "user_title": { - "object": true - }, - "bookmarked": false, - "raw": "Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)", - "actions_summary": [ - "json array" - ], - "moderator": false, - "admin": true, - "staff": true, - "user_id": 1, - "draft_sequence": 0, - "hidden": false, - "trust_level": 1, - "deleted_at": { - "object": true - }, - "user_deleted": false, - "edit_reason": { - "object": true - }, - "can_view_edit_history": true, - "wiki": false, - "reviewable_id": { - "object": true - }, - "reviewable_score_count": 0, - "reviewable_score_pending_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1676891421312, - "executionTime": 15, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "username": "Username934" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse1": [ - { - "startTime": 1676891421327, - "executionTime": 426, - "source": [ - { - "previousNode": "Discourse" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 383, - "name": "UpdatedCategory1676891419295", - "color": "FF6D5A", - "text_color": "0000FF", - "slug": "category1676891419295", - "topic_count": 0, - "post_count": 0, - "position": 382, - "description": { - "object": true - }, - "description_text": { - "object": true - }, - "description_excerpt": { - "object": true - }, - "topic_url": "/t/about-the-updatedcategory1676891419295-category/763", - "read_restricted": false, - "permission": { - "object": true - }, - "notification_level": 1, - "can_edit": true, - "topic_template": { - "object": true - }, - "has_children": { - "object": true - }, - "sort_order": { - "object": true - }, - "sort_ascending": { - "object": true - }, - "show_subcategory_list": false, - "num_featured_topics": 3, - "default_view": { - "object": true - }, - "subcategory_list_style": "rows_with_featured_topics", - "default_top_period": "all", - "default_list_filter": "all", - "minimum_required_tags": 0, - "navigate_to_first_post_after_read": false, - "custom_fields": { - "object": true - }, - "min_tags_from_required_group": 1, - "required_tag_group_name": { - "object": true - }, - "read_only_banner": { - "object": true - }, - "available_groups": [ - "json array" - ], - "auto_close_hours": { - "object": true - }, - "auto_close_based_on_last_post": false, - "group_permissions": [ - "json array" - ], - "email_in": { - "object": true - }, - "email_in_allow_strangers": false, - "mailinglist_mirror": false, - "all_topics_wiki": false, - "allow_unlimited_owner_edits_on_first_post": false, - "can_delete": true, - "allow_badges": true, - "topic_featured_link_allowed": true, - "search_priority": 0, - "default_slow_mode_seconds": { - "object": true - }, - "uploaded_logo": { - "object": true - }, - "uploaded_background": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse4": [ - { - "startTime": 1676891421755, - "executionTime": 254, - "source": [ - { - "previousNode": "Discourse3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse14": [ - { - "startTime": 1676891422010, - "executionTime": 204, - "source": [ - { - "previousNode": "Discourse3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": "OK", - "usernames": [ - "json array" - ], - "emails": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse8": [ - { - "startTime": 1676891422214, - "executionTime": 461, - "source": [ - { - "previousNode": "Discourse7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 767, - "name": "UserName LastName", - "username": "nodeqa", - "avatar_template": "/letter_avatar_proxy/v4/letter/n/d78d45/{size}.png", - "created_at": "2023-02-20T11:10:20.863Z", - "cooked": "

updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "post_number": 1, - "post_type": 1, - "updated_at": "2023-02-20T11:10:22.550Z", - "reply_count": 0, - "reply_to_post_number": { - "object": true - }, - "quote_count": 0, - "incoming_link_count": 0, - "reads": 1, - "readers_count": 0, - "score": 0, - "yours": true, - "topic_id": 764, - "topic_slug": "post-1676891420193", - "display_username": "UserName LastName", - "primary_group_name": { - "object": true - }, - "flair_name": { - "object": true - }, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "version": 1, - "can_edit": true, - "can_delete": false, - "can_recover": false, - "can_wiki": true, - "user_title": { - "object": true - }, - "bookmarked": false, - "raw": "updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "actions_summary": [ - "json array" - ], - "moderator": false, - "admin": true, - "staff": true, - "user_id": 1, - "draft_sequence": 1, - "hidden": false, - "trust_level": 1, - "deleted_at": { - "object": true - }, - "user_deleted": false, - "edit_reason": { - "object": true - }, - "can_view_edit_history": true, - "wiki": false, - "reviewable_id": { - "object": true - }, - "reviewable_score_count": 0, - "reviewable_score_pending_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse11": [ - { - "startTime": 1676891422676, - "executionTime": 238, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": false, - "message": "Username must be unique" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse2": [ - { - "startTime": 1676891422914, - "executionTime": 981, - "source": [ - { - "previousNode": "Discourse1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1, - "name": "Uncategorized", - "color": "0088CC", - "text_color": "FFFFFF", - "slug": "uncategorized", - "topic_count": 377, - "post_count": 0, - "position": 0, - "description": "Topics that don't need a category, or don't fit into any other existing category.", - "description_text": "Topics that don't need a category, or don't fit into any other existing category.", - "description_excerpt": "Topics that don't need a category, or don't fit into any other existing category.", - "topic_url": { - "object": true - }, - "read_restricted": false, - "permission": 1, - "notification_level": 1, - "can_edit": true, - "topic_template": { - "object": true - }, - "has_children": false, - "sort_order": { - "object": true - }, - "sort_ascending": { - "object": true - }, - "show_subcategory_list": false, - "num_featured_topics": 3, - "default_view": { - "object": true - }, - "subcategory_list_style": "rows_with_featured_topics", - "default_top_period": "all", - "default_list_filter": "all", - "minimum_required_tags": 0, - "navigate_to_first_post_after_read": false, - "topics_day": 0, - "topics_week": 0, - "topics_month": 0, - "topics_year": 0, - "topics_all_time": 377, - "is_uncategorized": true, - "subcategory_ids": [ - "json array" - ], - "uploaded_logo": { - "object": true - }, - "uploaded_background": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse5": [ - { - "startTime": 1676891423896, - "executionTime": 159, - "source": [ - { - "previousNode": "Discourse4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 419, - "automatic": false, - "name": "UpGroup1676891419914", - "user_count": 1, - "mentionable_level": 0, - "messageable_level": 0, - "visibility_level": 0, - "primary_group": false, - "title": { - "object": true - }, - "grant_trust_level": { - "object": true - }, - "incoming_email": { - "object": true - }, - "has_messages": false, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "bio_raw": { - "object": true - }, - "bio_cooked": { - "object": true - }, - "bio_excerpt": { - "object": true - }, - "public_admission": false, - "public_exit": false, - "allow_membership_requests": false, - "full_name": { - "object": true - }, - "default_notification_level": 3, - "membership_request_template": { - "object": true - }, - "is_group_user": true, - "members_visibility_level": 0, - "can_see_members": true, - "can_admin_group": true, - "publish_read_state": false, - "is_group_owner_display": false, - "mentionable": true, - "messageable": true, - "automatic_membership_email_domains": { - "object": true - }, - "smtp_server": { - "object": true - }, - "smtp_port": { - "object": true - }, - "smtp_ssl": { - "object": true - }, - "smtp_enabled": false, - "smtp_updated_at": { - "object": true - }, - "smtp_updated_by": { - "object": true - }, - "imap_server": { - "object": true - }, - "imap_port": { - "object": true - }, - "imap_ssl": { - "object": true - }, - "imap_mailbox_name": "", - "imap_mailboxes": [ - "json array" - ], - "imap_enabled": false, - "imap_updated_at": { - "object": true - }, - "imap_updated_by": { - "object": true - }, - "email_username": { - "object": true - }, - "email_password": { - "object": true - }, - "imap_last_error": { - "object": true - }, - "imap_old_emails": { - "object": true - }, - "imap_new_emails": { - "object": true - }, - "message_count": 0, - "allow_unknown_sender_topic_replies": false, - "watching_category_ids": [ - "json array" - ], - "tracking_category_ids": [ - "json array" - ], - "watching_first_post_category_ids": [ - "json array" - ], - "regular_category_ids": [ - "json array" - ], - "muted_category_ids": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse15": [ - { - "startTime": 1676891424055, - "executionTime": 155, - "source": [ - { - "previousNode": "Discourse14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": "OK", - "usernames": [ - "json array" - ], - "skipped_usernames": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse9": [ - { - "startTime": 1676891424211, - "executionTime": 180, - "source": [ - { - "previousNode": "Discourse8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 767, - "name": "UserName LastName", - "username": "nodeqa", - "avatar_template": "/letter_avatar_proxy/v4/letter/n/d78d45/{size}.png", - "created_at": "2023-02-20T11:10:20.863Z", - "cooked": "

updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "post_number": 1, - "post_type": 1, - "updated_at": "2023-02-20T11:10:22.550Z", - "reply_count": 0, - "reply_to_post_number": { - "object": true - }, - "quote_count": 0, - "incoming_link_count": 0, - "reads": 1, - "readers_count": 0, - "score": 0, - "yours": true, - "topic_id": 764, - "topic_slug": "post-1676891420193", - "display_username": "UserName LastName", - "primary_group_name": { - "object": true - }, - "flair_name": { - "object": true - }, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "version": 1, - "can_edit": true, - "can_delete": false, - "can_recover": false, - "can_wiki": true, - "user_title": { - "object": true - }, - "bookmarked": false, - "raw": "updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "actions_summary": [ - "json array" - ], - "moderator": false, - "admin": true, - "staff": true, - "user_id": 1, - "hidden": false, - "trust_level": 1, - "deleted_at": { - "object": true - }, - "user_deleted": false, - "edit_reason": { - "object": true - }, - "can_view_edit_history": true, - "wiki": false, - "reviewable_id": { - "object": true - }, - "reviewable_score_count": 0, - "reviewable_score_pending_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse12": [ - { - "startTime": 1676891424391, - "executionTime": 319, - "source": [ - { - "previousNode": "Discourse11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "user_badges": [ - "json array" - ], - "user": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse6": [ - { - "startTime": 1676891424710, - "executionTime": 198, - "source": [ - { - "previousNode": "Discourse5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1, - "automatic": true, - "name": "admins", - "display_name": "admins", - "user_count": 2, - "mentionable_level": 0, - "messageable_level": 0, - "visibility_level": 1, - "primary_group": false, - "title": { - "object": true - }, - "grant_trust_level": { - "object": true - }, - "incoming_email": { - "object": true - }, - "has_messages": false, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "bio_raw": { - "object": true - }, - "bio_cooked": { - "object": true - }, - "bio_excerpt": { - "object": true - }, - "public_admission": false, - "public_exit": false, - "allow_membership_requests": false, - "full_name": { - "object": true - }, - "default_notification_level": 3, - "membership_request_template": { - "object": true - }, - "is_group_user": true, - "members_visibility_level": 0, - "can_see_members": true, - "can_admin_group": true, - "publish_read_state": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse10": [ - { - "startTime": 1676891424909, - "executionTime": 2222, - "source": [ - { - "previousNode": "Discourse9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 767, - "name": "UserName LastName", - "username": "nodeqa", - "avatar_template": "/letter_avatar_proxy/v4/letter/n/d78d45/{size}.png", - "created_at": "2023-02-20T11:10:20.863Z", - "cooked": "

updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "post_number": 1, - "post_type": 1, - "updated_at": "2023-02-20T11:10:22.550Z", - "reply_count": 0, - "reply_to_post_number": { - "object": true - }, - "quote_count": 0, - "incoming_link_count": 0, - "reads": 1, - "readers_count": 0, - "score": 0, - "yours": true, - "topic_id": 764, - "topic_slug": "post-1676891420193", - "topic_title": "Post 1676891420193", - "topic_html_title": "Post 1676891420193", - "category_id": 1, - "display_username": "UserName LastName", - "primary_group_name": { - "object": true - }, - "flair_name": { - "object": true - }, - "flair_url": { - "object": true - }, - "flair_bg_color": { - "object": true - }, - "flair_color": { - "object": true - }, - "version": 1, - "can_edit": true, - "can_delete": false, - "can_recover": false, - "can_wiki": true, - "user_title": { - "object": true - }, - "bookmarked": false, - "raw": "updated

Content Mon Feb 20 2023 12:10:20 GMT+0100 (Central European Standard Time)

", - "actions_summary": [ - "json array" - ], - "moderator": false, - "admin": true, - "staff": true, - "user_id": 1, - "hidden": false, - "trust_level": 1, - "deleted_at": { - "object": true - }, - "user_deleted": false, - "edit_reason": { - "object": true - }, - "can_view_edit_history": true, - "wiki": false, - "reviewable_id": { - "object": true - }, - "reviewable_score_count": 0, - "reviewable_score_pending_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Discourse13": [ - { - "startTime": 1676891427131, - "executionTime": 1526, - "source": [ - { - "previousNode": "Discourse12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 239, - "username": "nodeqaadmin", - "name": "UserName LastName", - "avatar_template": "/letter_avatar_proxy/v4/letter/n/7c8e57/{size}.png", - "active": true, - "admin": true, - "moderator": false, - "last_seen_at": "2022-03-07T14:54:51.733Z", - "last_emailed_at": { - "object": true - }, - "created_at": "2022-03-07T12:59:28.671Z", - "last_seen_age": 30226535.62024173, - "last_emailed_age": { - "object": true - }, - "created_at_age": 30233458.68280304, - "trust_level": 0, - "manual_locked_trust_level": { - "object": true - }, - "flag_level": 0, - "title": { - "object": true - }, - "time_read": 0, - "staged": false, - "days_visited": 1, - "posts_read_count": 0, - "topics_entered": 0, - "post_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Discourse13" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:19.276Z", - "stoppedAt": "2023-02-20T11:10:28.658Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/191-snapshot.json b/test-workflows/snapshots/191-snapshot.json deleted file mode 100644 index 4191adc261..0000000000 --- a/test-workflows/snapshots/191-snapshot.json +++ /dev/null @@ -1,283 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891419759, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MailerLite": [ - { - "startTime": 1676891419760, - "executionTime": 303, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1493465993027103000, - "name": { - "object": true - }, - "email": "fake1676891419779@test.com", - "sent": 0, - "opened": 0, - "opened_rate": 0, - "clicked": 0, - "clicked_rate": 0, - "type": "active", - "country_id": { - "object": true - }, - "signup_ip": "", - "signup_timestamp": "", - "confirmation_ip": "", - "confirmation_timestamp": "", - "fields": [ - "json array" - ], - "webform_subscribe_date": { - "object": true - }, - "date_subscribe": { - "object": true - }, - "date_unsubscribe": { - "object": true - }, - "date_created": "2023-02-20 11:10:19", - "date_updated": "2023-02-20 11:10:20", - "user_agent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MailerLite1": [ - { - "startTime": 1676891420063, - "executionTime": 182, - "source": [ - { - "previousNode": "MailerLite" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1493465993027103000, - "name": "", - "email": "fake1676891419779@test.com", - "sent": 0, - "opened": 0, - "opened_rate": 0, - "clicked": 0, - "clicked_rate": 0, - "type": "active", - "country_id": { - "object": true - }, - "signup_ip": "", - "signup_timestamp": "", - "confirmation_ip": "", - "confirmation_timestamp": "", - "fields": [ - "json array" - ], - "webform_subscribe_date": { - "object": true - }, - "date_subscribe": { - "object": true - }, - "date_unsubscribe": { - "object": true - }, - "date_created": "2023-02-20 11:10:19", - "date_updated": "2023-02-20 11:10:20", - "user_agent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MailerLite2": [ - { - "startTime": 1676891420246, - "executionTime": 219, - "source": [ - { - "previousNode": "MailerLite1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 1493465993027103000, - "name": "UpdatedName1676891420247", - "email": "fake1676891419779@test.com", - "sent": 0, - "opened": 0, - "opened_rate": 0, - "clicked": 0, - "clicked_rate": 0, - "type": "active", - "country_id": { - "object": true - }, - "signup_ip": "", - "signup_timestamp": "", - "confirmation_ip": "", - "confirmation_timestamp": "", - "fields": [ - "json array" - ], - "webform_subscribe_date": { - "object": true - }, - "date_subscribe": { - "object": true - }, - "date_unsubscribe": { - "object": true - }, - "date_created": "2023-02-20 11:10:19", - "date_updated": "2023-02-20 11:10:20", - "user_agent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MailerLite3": [ - { - "startTime": 1676891420466, - "executionTime": 160, - "source": [ - { - "previousNode": "MailerLite2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 968892253701516000, - "name": "", - "email": "nodeqa@n8n.io", - "sent": 0, - "opened": 0, - "opened_rate": 0, - "clicked": 0, - "clicked_rate": 0, - "type": "active", - "country_id": { - "object": true - }, - "signup_ip": { - "object": true - }, - "signup_timestamp": { - "object": true - }, - "confirmation_ip": { - "object": true - }, - "confirmation_timestamp": { - "object": true - }, - "fields": [ - "json array" - ], - "webform_subscribe_date": { - "object": true - }, - "date_subscribe": { - "object": true - }, - "date_unsubscribe": { - "object": true - }, - "date_created": "2021-02-26 16:35:57", - "date_updated": "2021-02-26 16:35:57", - "user_agent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "MailerLite3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:19.756Z", - "stoppedAt": "2023-02-20T11:10:20.627Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/192-snapshot.json b/test-workflows/snapshots/192-snapshot.json deleted file mode 100644 index 3956ef1725..0000000000 --- a/test-workflows/snapshots/192-snapshot.json +++ /dev/null @@ -1,729 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891419969, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost": [ - { - "startTime": 1676891419970, - "executionTime": 146, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "67chhkzc1f8s8fc598jdc6z6nr", - "create_at": 1676891420092, - "update_at": 1676891420092, - "delete_at": 0, - "team_id": "y1p853gfspdrxre5oextbii7wh", - "type": "O", - "display_name": "TestChannel1676891419984", - "name": "testchannel1676891419984", - "header": "", - "purpose": "", - "last_post_at": 0, - "total_msg_count": 0, - "extra_update_at": 0, - "creator_id": "fo4frgcntiy6jfc63wor76kxpy", - "scheme_id": { - "object": true - }, - "props": { - "object": true - }, - "group_constrained": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost13": [ - { - "startTime": 1676891420116, - "executionTime": 208, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "o9f9bza4nj8hbp7xjy1ef9h1ny", - "create_at": 1676891420220, - "update_at": 1676891420220, - "delete_at": 0, - "username": "username1676891420116", - "auth_data": "", - "auth_service": "email", - "email": "fake1676891420117@test.com", - "nickname": "", - "first_name": "", - "last_name": "", - "position": "", - "roles": "system_user", - "notify_props": { - "object": true - }, - "last_password_update": 1676891420220, - "locale": "en", - "timezone": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost1": [ - { - "startTime": 1676891420324, - "executionTime": 102, - "source": [ - { - "previousNode": "Mattermost" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "channel_id": "67chhkzc1f8s8fc598jdc6z6nr", - "user_id": "4yp7tpa3sbgk9qrf38egttbioo", - "roles": "channel_user", - "last_viewed_at": 0, - "msg_count": 0, - "mention_count": 0, - "notify_props": { - "object": true - }, - "last_update_at": 1676891420440, - "scheme_guest": false, - "scheme_user": true, - "scheme_admin": false, - "explicit_roles": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost14": [ - { - "startTime": 1676891420426, - "executionTime": 72, - "source": [ - { - "previousNode": "Mattermost13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "o9f9bza4nj8hbp7xjy1ef9h1ny", - "create_at": 1676891420220, - "update_at": 1676891420220, - "delete_at": 0, - "username": "username1676891420116", - "auth_data": "", - "auth_service": "email", - "email": "fake1676891420117@test.com", - "nickname": "", - "first_name": "", - "last_name": "", - "position": "", - "roles": "system_user", - "locale": "en", - "timezone": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost7": [ - { - "startTime": 1676891420499, - "executionTime": 110, - "source": [ - { - "previousNode": "Mattermost1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "fjpkzppmfjysmpnps1shmzxoxy", - "create_at": 1676891420598, - "update_at": 1676891420598, - "edit_at": 0, - "delete_at": 0, - "is_pinned": false, - "user_id": "fo4frgcntiy6jfc63wor76kxpy", - "channel_id": "67chhkzc1f8s8fc598jdc6z6nr", - "root_id": "", - "parent_id": "", - "original_id": "", - "message": "Message1676891420501", - "type": "", - "props": { - "object": true - }, - "hashtags": "", - "pending_post_id": "", - "reply_count": 0, - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost15": [ - { - "startTime": 1676891420610, - "executionTime": 71, - "source": [ - { - "previousNode": "Mattermost14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "o9f9bza4nj8hbp7xjy1ef9h1ny", - "create_at": 1676891420220, - "update_at": 1676891420220, - "delete_at": 0, - "username": "username1676891420116", - "auth_data": "", - "auth_service": "email", - "email": "fake1676891420117@test.com", - "nickname": "", - "first_name": "", - "last_name": "", - "position": "", - "roles": "system_user", - "locale": "en", - "timezone": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost8": [ - { - "startTime": 1676891420682, - "executionTime": 67, - "source": [ - { - "previousNode": "Mattermost7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "q1oq5ibknjnx5j53ig9dppo88c", - "create_at": 1676891420775, - "update_at": 0, - "edit_at": 0, - "delete_at": 0, - "is_pinned": false, - "user_id": "fo4frgcntiy6jfc63wor76kxpy", - "channel_id": "67chhkzc1f8s8fc598jdc6z6nr", - "root_id": "", - "parent_id": "", - "original_id": "", - "message": "EpheMessage1676891420683", - "type": "system_ephemeral", - "props": { - "object": true - }, - "hashtags": "", - "pending_post_id": "", - "reply_count": 0, - "metadata": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost16": [ - { - "startTime": 1676891420750, - "executionTime": 132, - "source": [ - { - "previousNode": "Mattermost15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "hp6pnfry6tfr8nsjbsowcpunah", - "create_at": 1619769670089, - "update_at": 1619769670089, - "delete_at": 0, - "username": "channelexport", - "auth_data": "", - "auth_service": "", - "email": "channelexport@localhost", - "nickname": "", - "first_name": "Channel Export Bot", - "last_name": "", - "position": "", - "roles": "system_user", - "locale": "en", - "timezone": { - "object": true - }, - "is_bot": true, - "bot_description": "A bot account created by the channel export plugin." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost10": [ - { - "startTime": 1676891420883, - "executionTime": 82, - "source": [ - { - "previousNode": "Mattermost8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "user_id": "fo4frgcntiy6jfc63wor76kxpy", - "post_id": "fjpkzppmfjysmpnps1shmzxoxy", - "emoji_name": "rocket", - "create_at": 1676891420884 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost17": [ - { - "startTime": 1676891420966, - "executionTime": 87, - "source": [ - { - "previousNode": "Mattermost16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost11": [ - { - "startTime": 1676891421054, - "executionTime": 73, - "source": [ - { - "previousNode": "Mattermost10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "user_id": "fo4frgcntiy6jfc63wor76kxpy", - "post_id": "fjpkzppmfjysmpnps1shmzxoxy", - "emoji_name": "rocket", - "create_at": 1676891420884 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost18": [ - { - "startTime": 1676891421127, - "executionTime": 91, - "source": [ - { - "previousNode": "Mattermost17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost12": [ - { - "startTime": 1676891421219, - "executionTime": 81, - "source": [ - { - "previousNode": "Mattermost11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost9": [ - { - "startTime": 1676891421300, - "executionTime": 85, - "source": [ - { - "previousNode": "Mattermost12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost2": [ - { - "startTime": 1676891421385, - "executionTime": 154, - "source": [ - { - "previousNode": "Mattermost9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "fo4frgcntiy6jfc63wor76kxpy", - "create_at": 1619770719466, - "update_at": 1624374690399, - "delete_at": 0, - "username": "nodeqa", - "auth_data": "", - "auth_service": "", - "email": "nodeqa@test.com", - "nickname": "", - "first_name": "", - "last_name": "", - "position": "", - "roles": "system_admin system_user", - "locale": "en", - "timezone": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost3": [ - { - "startTime": 1676891421540, - "executionTime": 76, - "source": [ - { - "previousNode": "Mattermost2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "channel_id": "67chhkzc1f8s8fc598jdc6z6nr", - "member_count": 2, - "guest_count": 0, - "pinnedpost_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost4": [ - { - "startTime": 1676891421616, - "executionTime": 92, - "source": [ - { - "previousNode": "Mattermost3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost5": [ - { - "startTime": 1676891421708, - "executionTime": 90, - "source": [ - { - "previousNode": "Mattermost4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "67chhkzc1f8s8fc598jdc6z6nr", - "create_at": 1676891420092, - "update_at": 1676891421730, - "delete_at": 0, - "team_id": "y1p853gfspdrxre5oextbii7wh", - "type": "O", - "display_name": "TestChannel1676891419984", - "name": "testchannel1676891419984", - "header": "", - "purpose": "", - "last_post_at": 1676891421719, - "total_msg_count": 2, - "extra_update_at": 0, - "creator_id": "fo4frgcntiy6jfc63wor76kxpy", - "scheme_id": { - "object": true - }, - "props": { - "object": true - }, - "group_constrained": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mattermost6": [ - { - "startTime": 1676891421799, - "executionTime": 103, - "source": [ - { - "previousNode": "Mattermost5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "OK" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mattermost6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:19.966Z", - "stoppedAt": "2023-02-20T11:10:21.902Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/194-snapshot.json b/test-workflows/snapshots/194-snapshot.json deleted file mode 100644 index 4254e6ee38..0000000000 --- a/test-workflows/snapshots/194-snapshot.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1726655395077, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailjet": [ - { - "hints": [], - "startTime": 1726655395077, - "executionTime": 146, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Status": "success", - "CustomID": "", - "To": [ - "json array" - ], - "Cc": [ - "json array" - ], - "Bcc": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailjet2": [ - { - "hints": [], - "startTime": 1726655395223, - "executionTime": 0, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailjet1": [ - { - "hints": [], - "startTime": 1726655395223, - "executionTime": 275, - "source": [ - { - "previousNode": "Mailjet" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "Status": "success", - "CustomID": "", - "To": [ - "json array" - ], - "Cc": [ - "json array" - ], - "Bcc": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mailjet1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-09-18T10:29:55.077Z", - "stoppedAt": "2024-09-18T10:29:55.498Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/195-snapshot.json b/test-workflows/snapshots/195-snapshot.json deleted file mode 100644 index 194a8995b1..0000000000 --- a/test-workflows/snapshots/195-snapshot.json +++ /dev/null @@ -1,330 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995018, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker1": [ - { - "startTime": 1747343995018, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 262, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0f42cd20b0617400", - "name": "n8n-qa", - "labels": [ - "json array" - ], - "statuses": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker": [ - { - "startTime": 1747343995280, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 255, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0f42cd2088617400", - "name": "n8n-qa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker2": [ - { - "startTime": 1747343995535, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 392, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0f42ccbcb93d4000", - "username": "node8qa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker3": [ - { - "startTime": 1747343995927, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 760, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "2ce7808ff95c8800", - "number": "2218", - "title": "WorkItem1747343995928", - "description": "", - "status": { - "object": true - }, - "members": [ - "json array" - ], - "watchers": [ - "json array" - ], - "labels": [ - "json array" - ], - "effort": { - "object": true - }, - "impact": { - "object": true - }, - "updatedAt": 1747343996386, - "createdAt": 1747343996386 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker4": [ - { - "startTime": 1747343996687, - "executionIndex": 5, - "source": [ - { - "previousNode": "Kitemaker3" - } - ], - "hints": [], - "executionTime": 270, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "2ce7808ff95c8800", - "number": "2218", - "title": "WorkItem1747343995928", - "description": "", - "status": { - "object": true - }, - "sort": "s", - "members": [ - "json array" - ], - "watchers": [ - "json array" - ], - "labels": [ - "json array" - ], - "comments": [ - "json array" - ], - "effort": { - "object": true - }, - "impact": { - "object": true - }, - "updatedAt": 1747343996386, - "createdAt": 1747343996386 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker5": [ - { - "startTime": 1747343996957, - "executionIndex": 6, - "source": [ - { - "previousNode": "Kitemaker4" - } - ], - "hints": [], - "executionTime": 306, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "0f42cd2103617400", - "title": "Use arrow keys to navigate work items", - "description": "# Things to explore\n\n- [ ] Press the little + sign to the top right to see different types of meta data you can add to work items\n- [ ] Learn some markdown\n - [ ] `#` On an empty line creates a headline (type ## and ### for sub headlines)\n - [ ] Type `**` or `__` before and after a section of text to make it **bold**\n - [ ] Type `*` or `_` before and after a section of text to make it _italic_\n - [ ] Type `´` before and after a section of text to make it `a code block`\n - [ ] Type `*` followed by space on an empty line to make bullet points\n - [ ] Type `[]` followed by space on an empty line to make todo-lists\n - [ ] Type `1.` followed by space on an empty line to make numbered lists\n - [ ] Type `$$` before and after Tex expression $$\\frac{1}{100}$$\n- [ ] Check out our integrations\n- [ ] Make comments (they support everything the description field supports)\n- [ ] Invite your team\n- [ ] Learn hotkeys:\n - [ ] Hovering elements gives you hotkey tips. Hover this sections to see that `D` lets you edit the description\n - [ ] Other times the hotkey hints are in the UI. If you look at the right section of this screen, `R` adds a new comment\n - [ ] Pressing `?` gives you a searchable list of all hotkeys\n - [ ] In the Kitemaker command (open it by pressing `CTRL/CMD+k`) you will also be able to see the hotkeys for the commands\n - [ ] When you have long descriptions use `SPACE` and `SHIFT+SPACE` to scroll up and down\n\n", - "labels": [ - "json array" - ], - "comments": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Kitemaker6": [ - { - "startTime": 1747343997263, - "executionIndex": 7, - "source": [ - { - "previousNode": "Kitemaker5" - } - ], - "hints": [], - "executionTime": 482, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "2ce7808ff95c8800", - "number": "2218", - "title": "UpdatedWorkItem1747343995928", - "description": "", - "status": { - "object": true - }, - "members": [ - "json array" - ], - "watchers": [ - "json array" - ], - "labels": [ - "json array" - ], - "effort": { - "object": true - }, - "impact": { - "object": true - }, - "updatedAt": 1747343997664, - "createdAt": 1747343996386 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Kitemaker6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.018Z", - "stoppedAt": "2025-05-15T21:19:57.745Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/197-snapshot.json b/test-workflows/snapshots/197-snapshot.json deleted file mode 100644 index a740b61e4d..0000000000 --- a/test-workflows/snapshots/197-snapshot.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331895822, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MQTT qos:1": [ - { - "startTime": 1710331895822, - "executionTime": 99, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MQTT1 qos:0": [ - { - "startTime": 1710331895921, - "executionTime": 113, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1710331896034, - "executionTime": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "message": "MQTT-item-message1710331896036" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MQTT2 qos:2": [ - { - "startTime": 1710331896037, - "executionTime": 128, - "source": [ - { - "previousNode": "Function" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "message": "MQTT-item-message1710331896036" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "MQTT2 qos:2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:35.822Z", - "stoppedAt": "2024-03-13T12:11:36.165Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/198-snapshot.json b/test-workflows/snapshots/198-snapshot.json deleted file mode 100644 index 7a9f2545d3..0000000000 --- a/test-workflows/snapshots/198-snapshot.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858549, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1678116858551, - "executionTime": 0, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "boolean": true, - "number": 3 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore5": [ - { - "startTime": 1678116858552, - "executionTime": 728, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "FixedCollection" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore": [ - { - "startTime": 1678116859281, - "executionTime": 207, - "source": [ - { - "previousNode": "Set" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_name": "projects/fixedtestproject/databases/(default)/documents/FixedCollection/YNjhZsY4raBDR2lfdZZ0", - "_id": "YNjhZsY4raBDR2lfdZZ0", - "_createTime": "2023-03-06T15:34:19.490782Z", - "_updateTime": "2023-03-06T15:34:19.490782Z", - "number": "3", - "boolean": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore1": [ - { - "startTime": 1678116859488, - "executionTime": 190, - "source": [ - { - "previousNode": "Google Cloud Firestore" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_name": "projects/fixedtestproject/databases/(default)/documents/FixedCollection/YNjhZsY4raBDR2lfdZZ0", - "_id": "YNjhZsY4raBDR2lfdZZ0", - "_createTime": "2023-03-06T15:34:19.490782Z", - "_updateTime": "2023-03-06T15:34:19.490782Z", - "boolean": true, - "number": "3" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1678116859678, - "executionTime": 1, - "source": [ - { - "previousNode": "Google Cloud Firestore1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "boolean": true, - "number": 100 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore2": [ - { - "startTime": 1678116859679, - "executionTime": 205, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "updateTime": "2021-05-10T08:20:43.439586Z", - "status": { - "object": true - }, - "boolean": true, - "number": 100 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore3": [ - { - "startTime": 1678116859884, - "executionTime": 216, - "source": [ - { - "previousNode": "Google Cloud Firestore2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_name": "projects/fixedtestproject/databases/(default)/documents/FixedCollection/5xovkMwha8R2fHwT9HiW", - "_id": "5xovkMwha8R2fHwT9HiW", - "_createTime": "2021-05-12T15:31:35.922541Z", - "_updateTime": "2021-05-12T15:31:35.922541Z", - "number": "3", - "boolean": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore4": [ - { - "startTime": 1678116860100, - "executionTime": 258, - "source": [ - { - "previousNode": "Google Cloud Firestore3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_name": "projects/fixedtestproject/databases/(default)/documents/FixedCollection/undefined", - "_id": "undefined", - "_createTime": "2021-05-10T08:20:43.439586Z", - "_updateTime": "2021-05-10T08:20:43.439586Z", - "number": "100" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Cloud Firestore6": [ - { - "startTime": 1678116860359, - "executionTime": 246, - "source": [ - { - "previousNode": "Google Cloud Firestore4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Cloud Firestore6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.548Z", - "stoppedAt": "2023-03-06T15:34:20.605Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/199-snapshot.json b/test-workflows/snapshots/199-snapshot.json deleted file mode 100644 index d7be507280..0000000000 --- a/test-workflows/snapshots/199-snapshot.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331896175, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mailcheck": [ - { - "startTime": 1710331896175, - "executionTime": 15896, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "jan@n8n.io", - "trustRate": 100, - "mxExists": true, - "smtpExists": true, - "isNotSmtpCatchAll": true, - "isNotDisposable": true, - "gravatar": { - "object": true - }, - "githubUsername": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mailcheck" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:36.175Z", - "stoppedAt": "2024-03-13T12:11:52.071Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/20-snapshot.json b/test-workflows/snapshots/20-snapshot.json deleted file mode 100644 index 3666c642d5..0000000000 --- a/test-workflows/snapshots/20-snapshot.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385658, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot6": [ - { - "startTime": 1676891385659, - "executionTime": 463, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 14728009312, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot": [ - { - "startTime": 1676891386122, - "executionTime": 539, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "vid": 19501, - "canonical-vid": 19501, - "merged-vids": [ - "json array" - ], - "portal-id": 9435114, - "is-contact": true, - "properties": { - "object": true - }, - "form-submissions": [ - "json array" - ], - "list-memberships": [ - "json array" - ], - "identity-profiles": [ - "json array" - ], - "merge-audits": [ - "json array" - ], - "isNew": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot7": [ - { - "startTime": 1676891386661, - "executionTime": 483, - "source": [ - { - "previousNode": "Hubspot6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 5386687576, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1676891387144, - "executionTime": 515, - "source": [ - { - "previousNode": "Hubspot" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "vid": 19501, - "canonical-vid": 19501, - "merged-vids": [ - "json array" - ], - "portal-id": 9435114, - "is-contact": true, - "properties": { - "object": true - }, - "form-submissions": [ - "json array" - ], - "list-memberships": [ - "json array" - ], - "identity-profiles": [ - "json array" - ], - "merge-audits": [ - "json array" - ], - "isNew": false - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Hubspot9": [ - { - "startTime": 1676891387659, - "executionTime": 200, - "source": [ - { - "previousNode": "Hubspot7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 5441478717, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot2": [ - { - "startTime": 1676891387860, - "executionTime": 274, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "vid": 19501, - "canonical-vid": 19501, - "merged-vids": [ - "json array" - ], - "portal-id": 9435114, - "is-contact": true, - "properties": { - "object": true - }, - "form-submissions": [ - "json array" - ], - "identity-profiles": [ - "json array" - ], - "merge-audits": [ - "json array" - ], - "addedAt": 1641349488565 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot8": [ - { - "startTime": 1676891388134, - "executionTime": 255, - "source": [ - { - "previousNode": "Hubspot9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 12067739738, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1676891388393, - "executionTime": 517, - "source": [ - { - "previousNode": "Hubspot2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "vid": 19501, - "canonical-vid": 19501, - "merged-vids": [ - "json array" - ], - "portal-id": 9435114, - "is-contact": true, - "properties": { - "object": true - }, - "form-submissions": [ - "json array" - ], - "identity-profiles": [ - "json array" - ], - "merge-audits": [ - "json array" - ], - "addedAt": 1641349488565 - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Hubspot10": [ - { - "startTime": 1676891388911, - "executionTime": 561, - "source": [ - { - "previousNode": "Hubspot8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 14728009312, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot3": [ - { - "startTime": 1676891389472, - "executionTime": 263, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "19901", - "properties": { - "object": true - }, - "createdAt": "2022-12-13T09:38:40.693Z", - "updatedAt": "2022-12-13T09:38:55.035Z", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot11": [ - { - "startTime": 1676891389735, - "executionTime": 268, - "source": [ - { - "previousNode": "Hubspot10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "companyId": 14728009312, - "isDeleted": false, - "properties": { - "object": true - }, - "additionalDomains": [ - "json array" - ], - "stateChanges": [ - "json array" - ], - "mergeAudits": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1676891390006, - "executionTime": 1510, - "source": [ - { - "previousNode": "Hubspot3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "19901", - "properties": { - "object": true - }, - "createdAt": "2022-12-13T09:38:40.693Z", - "updatedAt": "2022-12-13T09:38:55.035Z", - "archived": false - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Hubspot12": [ - { - "startTime": 1676891391516, - "executionTime": 303, - "source": [ - { - "previousNode": "Hubspot11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "companyId": 14728009312, - "deleted": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot1": [ - { - "startTime": 1676891391821, - "executionTime": 288, - "source": [ - { - "previousNode": "Function" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "Hubspot1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.654Z", - "stoppedAt": "2023-02-20T11:09:52.112Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/202-snapshot.json b/test-workflows/snapshots/202-snapshot.json deleted file mode 100644 index eb1ea91a80..0000000000 --- a/test-workflows/snapshots/202-snapshot.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1726655396881, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Beeminder": [ - { - "hints": [], - "startTime": 1726655396881, - "executionTime": 2507, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "timestamp": 1726655397, - "value": 1, - "comment": "", - "id": "66eaaba5f0168a005520990a", - "updated_at": 1726655397, - "requestid": { - "object": true - }, - "canonical": "18 1", - "fulltext": "2024-Sep-18 entered at 12:29 by n8nsandbox via api", - "urtext": { - "object": true - }, - "origin": "api", - "creator": "n8nsandbox", - "created_at": "2024-09-18T10:29:57.000Z", - "daystamp": "20240918", - "status": "created" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Beeminder1": [ - { - "hints": [], - "startTime": 1726655399388, - "executionTime": 652, - "source": [ - { - "previousNode": "Beeminder" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "timestamp": 1726655397, - "value": 1, - "comment": "", - "id": "66eaaba5f0168a005520990a", - "updated_at": 1726655397, - "requestid": { - "object": true - }, - "canonical": "18 1", - "fulltext": "2024-Sep-18 entered at 12:29 by n8nsandbox via api", - "urtext": { - "object": true - }, - "origin": "api", - "creator": "n8nsandbox", - "created_at": "2024-09-18T10:29:57.000Z", - "daystamp": "20240918" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Beeminder2": [ - { - "hints": [], - "startTime": 1726655400040, - "executionTime": 5736, - "source": [ - { - "previousNode": "Beeminder1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "timestamp": 1726655397, - "value": 10, - "comment": "", - "id": "66eaaba5f0168a005520990a", - "updated_at": 1726655405, - "requestid": { - "object": true - }, - "canonical": "18 10", - "fulltext": "2024-Sep-18 entered at 12:29 by n8nsandbox via api", - "urtext": { - "object": true - }, - "origin": "api", - "creator": "n8nsandbox", - "created_at": "2024-09-18T10:29:57.000Z", - "daystamp": "20240918" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Beeminder4": [ - { - "hints": [], - "startTime": 1726655405776, - "executionTime": 5760, - "source": [ - { - "previousNode": "Beeminder2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "timestamp": 1726655411, - "value": 3, - "comment": "", - "id": "66eaabb3f0168a0069209095", - "updated_at": 1726655411, - "requestid": { - "object": true - }, - "canonical": "18 3", - "fulltext": "2024-Sep-18 entered at 12:30 by n8nsandbox via api", - "urtext": { - "object": true - }, - "origin": "api", - "creator": "n8nsandbox", - "created_at": "2024-09-18T10:30:11.000Z", - "daystamp": "20240918", - "status": "created" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Beeminder3": [ - { - "hints": [], - "startTime": 1726655411536, - "executionTime": 5731, - "source": [ - { - "previousNode": "Beeminder4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "timestamp": 1726655411, - "value": 3, - "comment": "", - "id": "66eaabb3f0168a0069209095", - "updated_at": 1726655411, - "requestid": { - "object": true - }, - "canonical": "18 3", - "fulltext": "2024-Sep-18 entered at 12:30 by n8nsandbox via api", - "urtext": { - "object": true - }, - "origin": "api", - "creator": "n8nsandbox", - "created_at": "2024-09-18T10:30:11.000Z", - "daystamp": "20240918" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Beeminder3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-09-18T10:29:56.881Z", - "stoppedAt": "2024-09-18T10:30:17.267Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/203-snapshot.json b/test-workflows/snapshots/203-snapshot.json deleted file mode 100644 index 79efb66a31..0000000000 --- a/test-workflows/snapshots/203-snapshot.json +++ /dev/null @@ -1,327 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995157, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle": [ - { - "startTime": 1747343995157, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 318, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 11452, - "name": "n8n test subscription", - "billing_type": "month", - "billing_period": 3, - "initial_price": { - "object": true - }, - "recurring_price": { - "object": true - }, - "trial_days": 14 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle2": [ - { - "startTime": 1747343995475, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 304, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 11451, - "name": "n8n test for Omar", - "description": "a great n8n test product", - "base_price": { - "object": true - }, - "sale_price": { - "object": true - }, - "currency": "USD", - "screenshots": [ - "json array" - ], - "icon": "https://sandbox-static.paddle.com/assets/images/checkout/default_product_icon.png" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle3": [ - { - "startTime": 1747343995779, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 227, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "subscription_id": 101066, - "plan_id": 11452, - "user_id": 3076, - "user_email": "name@example.com", - "marketing_consent": false, - "update_url": "https://sandbox-subscription-management.paddle.com/subscription/101066/hash/250b0346bbd6fb46bebbd6f9c989ffb7333d628b082fe54658658bacf5311bf3/update", - "cancel_url": "https://sandbox-subscription-management.paddle.com/subscription/101066/hash/250b0346bbd6fb46bebbd6f9c989ffb7333d628b082fe54658658bacf5311bf3/cancel", - "state": "paused", - "signup_date": "2021-05-14 08:52:59", - "last_payment": { - "object": true - }, - "linked_subscriptions": [ - "json array" - ], - "custom_data": { - "object": true - }, - "payment_information": { - "object": true - }, - "paused_at": "2022-04-08 00:02:35", - "paused_from": "2022-03-24 00:00:00", - "paused_reason": "delinquent" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle4": [ - { - "startTime": 1747343996006, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 212, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ], - "Paddle1": [ - { - "startTime": 1747343996218, - "executionIndex": 5, - "source": [ - { - "previousNode": "Paddle" - } - ], - "hints": [], - "executionTime": 480, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 11452, - "name": "n8n test subscription", - "billing_type": "month", - "billing_period": 3, - "initial_price": { - "object": true - }, - "recurring_price": { - "object": true - }, - "trial_days": 14 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle5": [ - { - "startTime": 1747343996698, - "executionIndex": 6, - "source": [ - { - "previousNode": "Paddle2" - } - ], - "hints": [], - "executionTime": 226, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "coupon": "76879241" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle6": [ - { - "startTime": 1747343996924, - "executionIndex": 7, - "source": [ - { - "previousNode": "Paddle5" - } - ], - "hints": [], - "executionTime": 216, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "updated": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Paddle7": [ - { - "startTime": 1747343997140, - "executionIndex": 8, - "source": [ - { - "previousNode": "Paddle6" - } - ], - "hints": [], - "executionTime": 338, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "coupon": "722F58E2", - "description": { - "object": true - }, - "discount_type": "flat", - "discount_amount": "5.000000000", - "discount_currency": "USD", - "allowed_uses": 999999, - "times_used": 0, - "is_recurring": false, - "expires": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Paddle7" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.156Z", - "stoppedAt": "2025-05-15T21:19:57.478Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/205-snapshot.json b/test-workflows/snapshots/205-snapshot.json deleted file mode 100644 index e39028457c..0000000000 --- a/test-workflows/snapshots/205-snapshot.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995217, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Pushover": [ - { - "startTime": 1747343995217, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 558, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "info": "no active devices to send to", - "status": 1, - "request": "913c6bfe-1c3d-46c6-9d04-cabd7545d426" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Pushover" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.217Z", - "stoppedAt": "2025-05-15T21:19:55.775Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/208-snapshot.json b/test-workflows/snapshots/208-snapshot.json deleted file mode 100644 index 6d1e3e938a..0000000000 --- a/test-workflows/snapshots/208-snapshot.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891424945, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RocketChat": [ - { - "startTime": 1676891424946, - "executionTime": 155, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ts": 1676891425122, - "channel": "general", - "message": { - "object": true - }, - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "RocketChat" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:10:24.943Z", - "stoppedAt": "2023-02-20T11:10:25.101Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/209-snapshot.json b/test-workflows/snapshots/209-snapshot.json deleted file mode 100644 index 6216e28ad3..0000000000 --- a/test-workflows/snapshots/209-snapshot.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995231, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set job name": [ - { - "startTime": 1747343995231, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "job_name": "nodemation_job_1747343995232" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Transcribe": [ - { - "startTime": 1747343995232, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set job name" - } - ], - "hints": [], - "executionTime": 539, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "CreationTime": 1747343995.631, - "LanguageCode": "en-US", - "Media": { - "object": true - }, - "Settings": { - "object": true - }, - "StartTime": 1747343995.653, - "TranscriptionJobName": "nodemation_job_1747343995232", - "TranscriptionJobStatus": "IN_PROGRESS" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Transcribe1": [ - { - "startTime": 1747343995771, - "executionIndex": 3, - "source": [ - { - "previousNode": "AWS Transcribe" - } - ], - "hints": [], - "executionTime": 368, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "CreationTime": 1747343995.631, - "LanguageCode": "en-US", - "Media": { - "object": true - }, - "Settings": { - "object": true - }, - "StartTime": 1747343995.653, - "Transcript": { - "object": true - }, - "TranscriptionJobName": "nodemation_job_1747343995232", - "TranscriptionJobStatus": "IN_PROGRESS" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Transcribe2": [ - { - "startTime": 1747343996139, - "executionIndex": 4, - "source": [ - { - "previousNode": "AWS Transcribe1" - } - ], - "hints": [], - "executionTime": 551, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "CreationTime": 1747343995.631, - "LanguageCode": "en-US", - "OutputLocationType": "SERVICE_BUCKET", - "StartTime": 1747343995.653, - "TranscriptionJobName": "nodemation_job_1747343995232", - "TranscriptionJobStatus": "IN_PROGRESS" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 30 seconds": [ - { - "startTime": 1747343996690, - "executionIndex": 5, - "source": [ - { - "previousNode": "AWS Transcribe2" - } - ], - "hints": [], - "executionTime": 30001, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "CreationTime": 1747343995.631, - "LanguageCode": "en-US", - "OutputLocationType": "SERVICE_BUCKET", - "StartTime": 1747343995.653, - "TranscriptionJobName": "nodemation_job_1747343995232", - "TranscriptionJobStatus": "IN_PROGRESS" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "AWS Transcribe3": [ - { - "startTime": 1747344026691, - "executionIndex": 6, - "source": [ - { - "previousNode": "Sleep 30 seconds" - } - ], - "hints": [], - "executionTime": 440, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS Transcribe3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.231Z", - "stoppedAt": "2025-05-15T21:20:27.131Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/21-snapshot.json b/test-workflows/snapshots/21-snapshot.json deleted file mode 100644 index e7da28deee..0000000000 --- a/test-workflows/snapshots/21-snapshot.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385716, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot8": [ - { - "startTime": 1676891385718, - "executionTime": 397, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "objectType": "TICKET", - "objectId": 1446939454, - "properties": { - "object": true - }, - "isDeleted": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot": [ - { - "startTime": 1676891386116, - "executionTime": 307, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 12238637873, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot9": [ - { - "startTime": 1676891386423, - "executionTime": 363, - "source": [ - { - "previousNode": "Hubspot8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "objectType": "TICKET", - "objectId": 1446939454, - "properties": { - "object": true - }, - "version": 1, - "isDeleted": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot4": [ - { - "startTime": 1676891386786, - "executionTime": 233, - "source": [ - { - "previousNode": "Hubspot" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 12238637873, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot10": [ - { - "startTime": 1676891387019, - "executionTime": 250, - "source": [ - { - "previousNode": "Hubspot9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "objectType": "TICKET", - "objectId": 1428212240, - "properties": { - "object": true - }, - "isDeleted": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot1": [ - { - "startTime": 1676891387269, - "executionTime": 233, - "source": [ - { - "previousNode": "Hubspot4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 4167790328, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot11": [ - { - "startTime": 1676891387502, - "executionTime": 220, - "source": [ - { - "previousNode": "Hubspot10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "objectType": "TICKET", - "objectId": 1428212240, - "properties": { - "object": true - }, - "isDeleted": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot3": [ - { - "startTime": 1676891387722, - "executionTime": 243, - "source": [ - { - "previousNode": "Hubspot1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "12238377353", - "properties": { - "object": true - }, - "createdAt": "2023-02-20T10:54:32.477Z", - "updatedAt": "2023-02-20T10:54:33.440Z", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot12": [ - { - "startTime": 1676891387965, - "executionTime": 373, - "source": [ - { - "previousNode": "Hubspot11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot5": [ - { - "startTime": 1676891388338, - "executionTime": 271, - "source": [ - { - "previousNode": "Hubspot3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 12238377353, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot7": [ - { - "startTime": 1676891388623, - "executionTime": 263, - "source": [ - { - "previousNode": "Hubspot5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 12238377353, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot2": [ - { - "startTime": 1676891388895, - "executionTime": 242, - "source": [ - { - "previousNode": "Hubspot7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "portalId": 9435114, - "dealId": 12238377353, - "isDeleted": false, - "associations": { - "object": true - }, - "properties": { - "object": true - }, - "stateChanges": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hubspot6": [ - { - "startTime": 1676891389141, - "executionTime": 300, - "source": [ - { - "previousNode": "Hubspot2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Hubspot6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.712Z", - "stoppedAt": "2023-02-20T11:09:49.441Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/212-snapshot.json b/test-workflows/snapshots/212-snapshot.json deleted file mode 100644 index 0323fece44..0000000000 --- a/test-workflows/snapshots/212-snapshot.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995426, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Delete existing dir": [ - { - "startTime": 1747343995426, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 13, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git": [ - { - "startTime": 1747343995439, - "executionIndex": 2, - "source": [ - { - "previousNode": "Delete existing dir" - } - ], - "hints": [], - "executionTime": 515, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git1": [ - { - "startTime": 1747343995954, - "executionIndex": 3, - "source": [ - { - "previousNode": "Git" - } - ], - "hints": [], - "executionTime": 13, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "_file": "/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git2": [ - { - "startTime": 1747343995967, - "executionIndex": 4, - "source": [ - { - "previousNode": "Git1" - } - ], - "hints": [], - "executionTime": 170, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "success": true - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Git7": [ - { - "startTime": 1747343996137, - "executionIndex": 5, - "source": [ - { - "previousNode": "Git2" - } - ], - "hints": [], - "executionTime": 132, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "success": true - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Add file to dir": [ - { - "startTime": 1747343996269, - "executionIndex": 6, - "source": [ - { - "previousNode": "Git7" - } - ], - "hints": [], - "executionTime": 5, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "exitCode": 0, - "stderr": "", - "stdout": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git3": [ - { - "startTime": 1747343996274, - "executionIndex": 7, - "source": [ - { - "previousNode": "Add file to dir" - } - ], - "hints": [], - "executionTime": 147, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git4": [ - { - "startTime": 1747343996421, - "executionIndex": 8, - "source": [ - { - "previousNode": "Git3" - } - ], - "hints": [], - "executionTime": 273, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "not_added": [ - "json array" - ], - "conflicted": [ - "json array" - ], - "created": [ - "json array" - ], - "deleted": [ - "json array" - ], - "modified": [ - "json array" - ], - "renamed": [ - "json array" - ], - "files": [ - "json array" - ], - "staged": [ - "json array" - ], - "ahead": 0, - "behind": 0, - "current": "main", - "tracking": "origin/main", - "detached": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git5": [ - { - "startTime": 1747343996694, - "executionIndex": 9, - "source": [ - { - "previousNode": "Git4" - } - ], - "hints": [], - "executionTime": 24, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git6": [ - { - "startTime": 1747343996718, - "executionIndex": 10, - "source": [ - { - "previousNode": "Git5" - } - ], - "hints": [], - "executionTime": 13, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "hash": "103944f38dc823d0f4a9d0720c9bdbd18528cd21", - "date": "2025-05-15T22:19:56+01:00", - "message": "GitNode commit Thu, 15 May 2025 21:19:56 GMT", - "refs": "HEAD -> main", - "body": "", - "author_name": "nodemationqa", - "author_email": "nodeqa@n8n.io" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git8": [ - { - "startTime": 1747343996731, - "executionIndex": 11, - "source": [ - { - "previousNode": "Git6" - } - ], - "hints": [], - "executionTime": 63, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git9": [ - { - "startTime": 1747343996794, - "executionIndex": 12, - "source": [ - { - "previousNode": "Git8" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git10": [ - { - "startTime": 1747343996794, - "executionIndex": 13, - "source": [ - { - "previousNode": "Git9" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git11": [ - { - "startTime": 1747343996794, - "executionIndex": 14, - "source": [ - { - "previousNode": "Git10" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git12": [ - { - "startTime": 1747343996794, - "executionIndex": 15, - "source": [ - { - "previousNode": "Git11" - } - ], - "hints": [], - "executionTime": 352, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Git13": [ - { - "startTime": 1747343997146, - "executionIndex": 16, - "source": [ - { - "previousNode": "Git12" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Git13" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.426Z", - "stoppedAt": "2025-05-15T21:19:57.146Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/216-snapshot.json b/test-workflows/snapshots/216-snapshot.json deleted file mode 100644 index 32b121b8c9..0000000000 --- a/test-workflows/snapshots/216-snapshot.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995559, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Handle JSON data": [ - { - "startTime": 1747343995559, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "arr": [ - "json array" - ], - "str": "Testing Function Item node", - "num": 1337, - "obj": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Handle Binary data": [ - { - "startTime": 1747343995561, - "executionIndex": 2, - "source": [ - { - "previousNode": "Handle JSON data" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "arr": [ - "json array" - ], - "str": "Testing Function Item node", - "num": 1337, - "obj": { - "object": true - }, - "binaryData": "NIL" - }, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "data": "SGVsbG8gZnJvbSBuOG4gRnVuY3Rpb24gaXRlbSB0ZXN0aW5nIHdvcmtmbG93", - "mimeType": "text", - "fileExtension": "text", - "fileName": "testfile" - } - } - } - ] - ] - } - } - ], - "Handle Static data": [ - { - "startTime": 1747343995562, - "executionIndex": 3, - "source": [ - { - "previousNode": "Handle Binary data" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "arr": [ - "json array" - ], - "str": "Testing Function Item node", - "num": 1337, - "obj": { - "object": true - }, - "binaryData": "NIL", - "globalStaticMessage": "Hello, Global Static Data", - "nodeStaticMessage": "Hello, Node Static Data" - }, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "data": "SGVsbG8gZnJvbSBuOG4gRnVuY3Rpb24gaXRlbSB0ZXN0aW5nIHdvcmtmbG93", - "mimeType": "text", - "fileExtension": "text", - "fileName": "testfile" - } - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Handle Static data" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.559Z", - "stoppedAt": "2025-05-15T21:19:55.565Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/223-snapshot.json b/test-workflows/snapshots/223-snapshot.json deleted file mode 100644 index 97f3eeadc9..0000000000 --- a/test-workflows/snapshots/223-snapshot.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078174417, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "LingvaNex": [ - { - "hints": [], - "startTime": 1738078174417, - "executionTime": 374, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "err": { - "object": true - }, - "result": "Automatisierung" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "LingvaNex" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:29:34.416Z", - "stoppedAt": "2025-01-28T15:29:34.791Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/229-snapshot.json b/test-workflows/snapshots/229-snapshot.json deleted file mode 100644 index 5f16fc811e..0000000000 --- a/test-workflows/snapshots/229-snapshot.json +++ /dev/null @@ -1,664 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747343995588, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive11": [ - { - "startTime": 1747343995588, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 700, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1QBrItvwcOaEONfCcfDHPpdK_BLTEtBNA", - "name": "testFolder" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive14": [ - { - "startTime": 1747343996288, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1739, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1MMAfuJxKmbuzT_JWF98PjJCPxXnxykMW", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive3": [ - { - "startTime": 1747343998027, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1616, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1KbJrxtMCxK4fFq8Cd0_-66dxnW5kSzDN", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive": [ - { - "startTime": 1747343999643, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 536, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1X-5udmSom0Xew6oE2g7Glrd9t7u6srsN", - "name": "testFolder" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive12": [ - { - "startTime": 1747344000179, - "executionIndex": 5, - "source": [ - { - "previousNode": "Google Drive11" - } - ], - "hints": [], - "executionTime": 601, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive15": [ - { - "startTime": 1747344000780, - "executionIndex": 6, - "source": [ - { - "previousNode": "Google Drive14" - } - ], - "hints": [], - "executionTime": 686, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive4": [ - { - "startTime": 1747344001466, - "executionIndex": 7, - "source": [ - { - "previousNode": "Google Drive3" - } - ], - "hints": [], - "executionTime": 543, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive1": [ - { - "startTime": 1747344002009, - "executionIndex": 8, - "source": [ - { - "previousNode": "Google Drive" - } - ], - "hints": [], - "executionTime": 614, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive13": [ - { - "startTime": 1747344002623, - "executionIndex": 9, - "source": [ - { - "previousNode": "Google Drive12" - } - ], - "hints": [], - "executionTime": 464, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1QBrItvwcOaEONfCcfDHPpdK_BLTEtBNA", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive16": [ - { - "startTime": 1747344003087, - "executionIndex": 10, - "source": [ - { - "previousNode": "Google Drive15" - } - ], - "hints": [], - "executionTime": 428, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive5": [ - { - "startTime": 1747344003515, - "executionIndex": 11, - "source": [ - { - "previousNode": "Google Drive4" - } - ], - "hints": [], - "executionTime": 430, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive2": [ - { - "startTime": 1747344003945, - "executionIndex": 12, - "source": [ - { - "previousNode": "Google Drive1" - } - ], - "hints": [], - "executionTime": 450, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1X-5udmSom0Xew6oE2g7Glrd9t7u6srsN", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive17": [ - { - "startTime": 1747344004395, - "executionIndex": 13, - "source": [ - { - "previousNode": "Google Drive16" - } - ], - "hints": [], - "executionTime": 933, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "fileExtension": "txt", - "data": "VGVzdCBGaWxlIENvbnRlbnQ=", - "fileName": "testFile", - "fileSize": "17 B" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive6": [ - { - "startTime": 1747344005328, - "executionIndex": 14, - "source": [ - { - "previousNode": "Google Drive5" - } - ], - "hints": [], - "executionTime": 913, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "fileExtension": "txt", - "data": "VGVzdCBGaWxlIENvbnRlbnQ=", - "fileName": "testFile", - "fileSize": "17 B" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive18": [ - { - "startTime": 1747344006241, - "executionIndex": 15, - "source": [ - { - "previousNode": "Google Drive17" - } - ], - "hints": [], - "executionTime": 881, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1tJSggHaGcdtLmpE_ZVkm_aYBShbeh1d-", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive7": [ - { - "startTime": 1747344007122, - "executionIndex": 16, - "source": [ - { - "previousNode": "Google Drive6" - } - ], - "hints": [], - "executionTime": 746, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1qkiRpLoY_9OrJmfq_ykRfFfy6xEXU1uW", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive19": [ - { - "startTime": 1747344007868, - "executionIndex": 17, - "source": [ - { - "previousNode": "Google Drive18" - } - ], - "hints": [], - "executionTime": 475, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1MMAfuJxKmbuzT_JWF98PjJCPxXnxykMW", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive8": [ - { - "startTime": 1747344008344, - "executionIndex": 18, - "source": [ - { - "previousNode": "Google Drive7" - } - ], - "hints": [], - "executionTime": 485, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1KbJrxtMCxK4fFq8Cd0_-66dxnW5kSzDN", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive10": [ - { - "startTime": 1747344008829, - "executionIndex": 19, - "source": [ - { - "previousNode": "Google Drive19" - } - ], - "hints": [], - "executionTime": 431, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1tJSggHaGcdtLmpE_ZVkm_aYBShbeh1d-", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive9": [ - { - "startTime": 1747344009260, - "executionIndex": 20, - "source": [ - { - "previousNode": "Google Drive8" - } - ], - "hints": [], - "executionTime": 520, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1qkiRpLoY_9OrJmfq_ykRfFfy6xEXU1uW", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Drive9" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.587Z", - "stoppedAt": "2025-05-15T21:20:09.780Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/230-snapshot.json b/test-workflows/snapshots/230-snapshot.json deleted file mode 100644 index 4dc0cd4cfc..0000000000 --- a/test-workflows/snapshots/230-snapshot.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Execute Workflow\"": [ - { - "startTime": 1747343995774, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "VirusTotal HTTP Request": [ - { - "startTime": 1747343995774, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Execute Workflow\"" - } - ], - "hints": [ - { - "message": "To split the contents of ‘data’ into separate items for easier processing, add a ‘Split Out’ node after this one", - "location": "outputPane" - } - ], - "executionTime": 383, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "VirusTotal HTTP Request" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.773Z", - "stoppedAt": "2025-05-15T21:19:56.157Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/231-snapshot.json b/test-workflows/snapshots/231-snapshot.json deleted file mode 100644 index cbebcd3753..0000000000 --- a/test-workflows/snapshots/231-snapshot.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343995790, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Invalid Host header": [ - { - "startTime": 1747343995791, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 64, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "error": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Internal SSL Error?": [ - { - "startTime": 1747343995855, - "executionIndex": 2, - "source": [ - { - "previousNode": "Invalid Host header" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [], - [ - { - "json": { - "error": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Success": [ - { - "startTime": 1747343995857, - "executionIndex": 3, - "source": [ - { - "previousNode": "Internal SSL Error?", - "previousNodeOutput": 1 - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "error": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cross Domain Redirect": [ - { - "startTime": 1747343995857, - "executionIndex": 4, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 992, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "\n\nPowerful Workflow Automation Software & Tools - n8n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\"Hero

Flexible AI workflow automation for technical teams

Build with the precision of code or the speed of drag-n-drop. Host with on-prem control or in-the-cloud convenience. n8n gives you more freedom to implement multi-step AI agents and integrate apps than any other tool.

Plug AI into your own data & over 500 integrations

The fast way to actually get AI working in your business

Build multi-step agents calling custom tools

Create agentic systems on a single screen. Integrate any LLM into your workflows as fast as you can drag-n-drop.

Explore AI

\"Teams
Update Detected Running Custom Unit Testing Update Rolled Back Automatically
IT Team Notified of New Ticket Custom Unit Testing Failed Update Installed
\"Local\"Fully

Self-host everything – including AI models

Protect your data by deploying on-prem.

  • Deploy with Docker

    \n
  • Access the entire source code on Github

    \n
  • Hosted version also available

    \n

Chat with your own data

Use Slack, Teams, SMS, voice, or our embedded chat interface to get accurate answers from your data, create tasks, and complete workflows.

Who held meetings with SpaceX last week?
On Wednesday, Joe updated the status to \"won\" in Salesforce after a Zoom call.
On Thursday, Sue provided on-site setup and closed the ServiceNow ticket.
Create a task in Asana...
\"Code

Code when you need it, UI when you don't

Other tools limit you to either a visual building experience, or code. With n8n, you get the best of both worlds.

  • Write JavaScript or Python - you can always fall back to code

    \n
  • Add libraries from npm or Python for even more power

    \n
  • Paste cURL requests into your workflow

    \n
  • Merge workflow branches, don’t just split them

    \n
\"Thunder\"

Run. Tweak. Repeat

The same short feedback loops that make you smile at your scripts.

  • Re-run single steps without re-running the whole workflow

    \n
  • Replay or mock data to avoid waiting for external systems

    \n
  • Debug fast, with logs in line with your code

    \n
  • Use 1700+ templates to jump-start your project

    \n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n See The Results

Case Studies

\"Delivery

How Delivery Hero saved 200 hours each month with a single ITOps workflow

\n

Read Case Study
\"The

How StepStone finishes 2 weeks’ work in only 2 hours with n8n workflows

\n

Read Case Study
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Enterprise-ready

Secure. Reliable. Collaborative.

Remove inefficiencies across your org by rolling out automation as reliably as you deploy code. Run n8n air-gapped on your servers or on our secure cloud-based solution.

  • Security

    Fully on-prem option, SSO SAML, and LDAP, encrypted secret stores, version control, advanced RBAC permissions.

    \n
  • Performance

    Audit logs & log streaming to 3rd party, workflow history, custom variables, external storage.

    \n
  • Collaboration

    Git Control, isolated environments, multi-user workflows.

    \n

"The idea is that everybody in the organization can use n8n to manage data retrieval or data transformation."

\"Martino

Martino Bonfiglioli

Senior Product Manager

\n
See the case
\"Automation\"
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n n8n embed

Automation for your customers

Wow your customers with access to 500+ app integrations to automate their own workflows. Your branding. Our white-labelled tech. \n

\n\n" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Cross Domain Redirect" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:55.790Z", - "stoppedAt": "2025-05-15T21:19:56.849Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/232-snapshot.json b/test-workflows/snapshots/232-snapshot.json deleted file mode 100644 index 43f064e438..0000000000 --- a/test-workflows/snapshots/232-snapshot.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1709625796309, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Cohere Model": [ - { - "startTime": 1709625796771, - "executionTime": 354, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "How much is 1+1? Only provide the numerical answer without any other text.\n" - ], - "options": { - "signal": {} - } - } - } - ] - ] - } - } - ], - "Cohere Instruct": [ - { - "startTime": 1709625796309, - "executionTime": 1133, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Cohere Model", - "runIndex": 0 - } - ] - } - } - ] - }, - "lastNodeExecuted": "Cohere Instruct" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Cohere Instruct": [ - { - "subRun": [ - { - "node": "Cohere Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-05T08:03:16.304Z", - "stoppedAt": "2024-03-05T08:03:17.443Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/233-snapshot.json b/test-workflows/snapshots/233-snapshot.json deleted file mode 100644 index 0ce9f1f621..0000000000 --- a/test-workflows/snapshots/233-snapshot.json +++ /dev/null @@ -1,961 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "hints": [], - "startTime": 1738078178841, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Code": [ - { - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "startTime": 1738078178841, - "executionTime": 10, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Default Data Loader1": [ - { - "startTime": 1738078178875, - "executionTime": 1144, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Default Data Loader1", - "runIndex": 0 - } - ] - } - } - ], - "Token Splitter1": [ - { - "startTime": 1738078178877, - "executionTime": 1142, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter1", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI4": [ - { - "startTime": 1738078180072, - "executionTime": 2392, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI4", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI4", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1738078183170, - "executionTime": 820, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "test" - } - } - ] - ] - } - } - ], - "Qdrant Vector Store": [ - { - "hints": [], - "startTime": 1738078178851, - "executionTime": 6311, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Populated1": [ - { - "hints": [], - "startTime": 1738078185162, - "executionTime": 10, - "source": [ - { - "previousNode": "Qdrant Vector Store" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wait1": [ - { - "hints": [], - "startTime": 1738078185173, - "executionTime": 10001, - "source": [ - { - "previousNode": "Check Vector Store Populated1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI5": [ - { - "startTime": 1738078195902, - "executionTime": 471, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "Security risks" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI5", - "runIndex": 0 - } - ] - } - } - ], - "Qdrant Vector Store1": [ - { - "hints": [], - "startTime": 1738078195175, - "executionTime": 1652, - "source": [ - { - "previousNode": "Wait1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "document": { - "object": true - }, - "score": 0.34772277 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.34708342 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.3299051 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.31434047 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Retrieval1": [ - { - "hints": [], - "startTime": 1738078196827, - "executionTime": 13, - "source": [ - { - "previousNode": "Qdrant Vector Store1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vector Store Retriever1": [ - { - "startTime": 1738078197496, - "executionTime": 874, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Vector Store Retriever1", - "runIndex": 0 - } - ] - } - } - ], - "Qdrant Vector Store2": [ - { - "startTime": 1738078197496, - "executionTime": 874, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Qdrant Vector Store2", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI3": [ - { - "startTime": 1738078197496, - "executionTime": 437, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI3", - "runIndex": 0 - } - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1738078198377, - "executionTime": 499, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Use the following pieces of context to answer the users question. \nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\n new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2059, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Question and Answer Chain1": [ - { - "hints": [], - "startTime": 1738078196841, - "executionTime": 2036, - "source": [ - { - "previousNode": "Check Vector Store Retrieval1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields1": [ - { - "hints": [], - "startTime": 1738078198877, - "executionTime": 6, - "source": [ - { - "previousNode": "Question and Answer Chain1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Delete Collection": [ - { - "hints": [], - "startTime": 1738078198883, - "executionTime": 490, - "source": [ - { - "previousNode": "Edit Fields1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": true, - "status": "ok", - "time": 0.011831243 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Delete Collection" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Token Splitter1": [ - { - "subRun": [ - { - "node": "Token Splitter1", - "runIndex": 0 - } - ] - } - ], - "Default Data Loader1": [ - { - "subRun": [ - { - "node": "Default Data Loader1", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI4": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI4", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI4", - "runIndex": 1 - } - ] - } - ], - "Embeddings OpenAI5": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI5", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI3": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI3", - "runIndex": 0 - } - ] - } - ], - "Qdrant Vector Store2": [ - { - "subRun": [ - { - "node": "Qdrant Vector Store2", - "runIndex": 0 - } - ] - } - ], - "Vector Store Retriever1": [ - { - "subRun": [ - { - "node": "Vector Store Retriever1", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:29:38.839Z", - "stoppedAt": "2025-01-28T15:29:59.373Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/234-snapshot.json b/test-workflows/snapshots/234-snapshot.json deleted file mode 100644 index 100f0daa6f..0000000000 --- a/test-workflows/snapshots/234-snapshot.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343996141, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Mistral Cloud Chat Model": [ - { - "startTime": 1747343996676, - "executionTime": 200, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "Mistral Cloud Chat", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: How much is 1+1? Only provide the numerical answer without any other text.\n" - ], - "estimatedTokens": 20, - "options": { - "mistral_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "MISTRAL_API_KEY" - ] - }, - "model_name": "mistral-tiny", - "temperature": 0 - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Mistral Cloud Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Mistral Cloud Chat": [ - { - "startTime": 1747343996141, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 735, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Mistral Cloud Chat" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Mistral Cloud Chat Model": [ - { - "subRun": [ - { - "node": "Mistral Cloud Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:56.141Z", - "stoppedAt": "2025-05-15T21:19:56.876Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/235-snapshot.json b/test-workflows/snapshots/235-snapshot.json deleted file mode 100644 index a827dc1550..0000000000 --- a/test-workflows/snapshots/235-snapshot.json +++ /dev/null @@ -1,324 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343996197, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Baseline": [ - { - "startTime": 1747343996197, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "baseline_summary": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Article": [ - { - "startTime": 1747343996197, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set Baseline" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747343996676, - "executionTime": 1640, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 1543, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Summary - Simple - Map": [ - { - "startTime": 1747343996200, - "executionIndex": 3, - "source": [ - { - "previousNode": "Set Article" - } - ], - "hints": [], - "executionTime": 2116, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747343998349, - "executionTime": 1896, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "Evaluate to Baseline", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: You are assessing a submitted answer on a given task or input based on a set of criteria. Here is the data:\n[BEGIN DATA]\n***\n[Input]: Summarize Wikipedia article about the dancing plague of 1518\n***\n[Submission]: The dancing plague of 1518, also known as the dance epidemic, occurred in Strasbourg, Alsace, in the Holy Roman Empire from July to September 1518. Between 50 and 400 people danced uncontrollably for weeks, with theories suggesting stress-induced mass hysteria, ergot poisoning, or religious explanations. The outbreak began with one woman dancing and spread to others, leading to deaths and public concern. The event ended when the dancers were sent to a shrine to pray for absolution. Controversy exists over the number of deaths, with some sources claiming up to fifteen deaths per day. Modern theories include food poisoning from ergot fungi and stress-induced mass hysteria. The event has inspired various works of art and media, including films, songs, and novels.\n***\n[Criteria]: helpfulness: Is the submission helpful, insightful, and appropriate? If so, response Y. If not, respond N.\n***\n[Reference]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.\n***\n[END DATA]\nDoes the submission meet the Criteria? First, write out in a step by step manner your reasoning about each criterion to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character \"Y\" or \"N\" (without quotes or punctuation) on its own line corresponding to the correct answer of whether the submission meets all criteria. At the end, repeat just the letter again by itself on a new line." - ], - "estimatedTokens": 444, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Evaluate to Baseline": [ - { - "startTime": 1747343998316, - "executionIndex": 5, - "source": [ - { - "previousNode": "Summary - Simple - Map" - } - ], - "hints": [], - "executionTime": 1930, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "reasoning": "Step 1: Is the submission helpful?- The submission provides a concise summary of the Wikipedia article about the dancing plague of 1518.- It includes key information such as the location, time period, number of people involved, possible causes, outcomes, and cultural impact.- The submission is informative and covers the main points of the topic.Step 2: Is the submission insightful?- The submission goes beyond just stating facts by mentioning theories about the cause of the dancing plague, controversies surrounding the event, and its cultural influence.- It provides additional context and analysis to enhance understanding of the topic.- The submission offers a well-rounded view of the dancing plague of 1518.Step 3: Is the submission appropriate?- The submission is appropriate for the given task of summarizing the Wikipedia article about the dancing plague of 1518.- It stays focused on the topic and does not include irrelevant information.- The submission is suitable for the intended audience and purpose.", - "value": "Y", - "score": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Evaluate to Baseline" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:56.197Z", - "stoppedAt": "2025-05-15T21:20:00.246Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/236-snapshot.json b/test-workflows/snapshots/236-snapshot.json deleted file mode 100644 index 7a9851e9fa..0000000000 --- a/test-workflows/snapshots/236-snapshot.json +++ /dev/null @@ -1,630 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343996877, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Baseline": [ - { - "startTime": 1747343996877, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "baseline_summary": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Article": [ - { - "startTime": 1747343996877, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set Baseline" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Convert to File": [ - { - "startTime": 1747343996879, - "executionIndex": 3, - "source": [ - { - "previousNode": "Set Article" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "mimeType": "application/json", - "fileType": "json", - "fileExtension": "json", - "data": "W3sidGV4dCI6IlRoZSBkYW5jaW5nIHBsYWd1ZSBvZiAxNTE4LCBvciBkYW5jZSBlcGlkZW1pYyBvZiAxNTE4IChGcmVuY2g6IMOJcGlkw6ltaWUgZGFuc2FudGUgZGUgMTUxOCksIHdhcyBhIGNhc2Ugb2YgZGFuY2luZyBtYW5pYSB0aGF0IG9jY3VycmVkIGluIFN0cmFzYm91cmcsIEFsc2FjZSAobW9kZXJuLWRheSBGcmFuY2UpLCBpbiB0aGUgSG9seSBSb21hbiBFbXBpcmUgZnJvbSBKdWx5IDE1MTggdG8gU2VwdGVtYmVyIDE1MTguIFNvbWV3aGVyZSBiZXR3ZWVuIDUwIGFuZCA0MDAgcGVvcGxlIHRvb2sgdG8gZGFuY2luZyBmb3Igd2Vla3MuIFRoZXJlIGFyZSBtYW55IHRoZW9yaWVzIGJlaGluZCB0aGUgcGhlbm9tZW5vbiwgdGhlIG1vc3QgcG9wdWxhciBiZWluZyBzdHJlc3MtaW5kdWNlZCBtYXNzIGh5c3RlcmlhLCBzdWdnZXN0ZWQgYnkgSm9obiBXYWxsZXIuIE90aGVyIHRoZW9yaWVzIGluY2x1ZGUgZXJnb3QgYW5kIHJlbGlnaW91cyBleHBsYW5hdGlvbnMuIFRoZXJlIGlzIGNvbnRyb3ZlcnN5IGNvbmNlcm5pbmcgdGhlIG51bWJlciBvZiBkZWF0aHMuXG5cbkhpc3RvcnlcbkV2ZW50c1xuVGhlIG91dGJyZWFrIGJlZ2FuIGluIEp1bHkgMTUxOCB3aGVuIGEgd29tYW4gY2FsbGVkIEZyYXUgVHJvZmZlYSBiZWdhbiB0byBkYW5jZSBmZXJ2ZW50bHkgYW5kIHVuY29udHJvbGxhYmx5IGluIGEgc3RyZWV0IGluIFN0cmFzYm91cmcuIFRyb2ZmZWEga2VwdCB1cCB0aGUgY29uc3RhbnQgZGFuY2luZyBmb3IgYSB3ZWVrLiBTb29uLCB0aHJlZSBkb3plbiBvdGhlcnMgam9pbmVkIGluLiBCeSBBdWd1c3QsIHRoZSBcImRhbmNpbmcgcGxhZ3VlXCIgaGFkIGNsYWltZWQgNDAwIHZpY3RpbXMuIERhbmNlcnMgd2VyZSBiZWdpbm5pbmcgdG8gY29sbGFwc2UuIEl0IGlzIHNhaWQgc29tZSBldmVuIGRpZWQgZnJvbSBhIHN0cm9rZSBvciBoZWFydCBhdHRhY2suIE5vIG9uZSBrbmV3IHdoYXQgY2F1c2VkIHRoaXMgcmVhY3Rpb24sIHdoaWNoIG1lYW50IG5vIG9uZSB1bmRlcnN0b29kIGhvdyB0byByZW1lZHkgaXQuIEJ5IGVhcmx5IFNlcHRlbWJlciwgdGhlIG91dGJyZWFrIGJlZ2FuIHRvIHN1YnNpZGUsIHdoZW4gdGhlIGRhbmNlcnMgd2VyZSBzZW50IHRvIGEgbW91bnRhaW4gc2hyaW5lIHRvIHByYXkgZm9yIGFic29sdXRpb24uXG5cbkhpc3RvcmljYWwgZG9jdW1lbnRzLCBpbmNsdWRpbmcgXCJwaHlzaWNpYW4gbm90ZXMsIGNhdGhlZHJhbCBzZXJtb25zLCBsb2NhbCBhbmQgcmVnaW9uYWwgY2hyb25pY2xlcywgYW5kIGV2ZW4gbm90ZXMgaXNzdWVkIGJ5IHRoZSBTdHJhc2JvdXJnIGNpdHkgY291bmNpbFwiIGFyZSBjbGVhciB0aGF0IHRoZSB2aWN0aW1zIGRhbmNlZDsgaXQgaXMgbm90IGtub3duIHdoeS4gSGlzdG9yaWNhbCBzb3VyY2VzIGFncmVlIHRoYXQgdGhlcmUgd2FzIGFuIG91dGJyZWFrIG9mIGRhbmNpbmcgYWZ0ZXIgYSBzaW5nbGUgd29tYW4gc3RhcnRlZCBkYW5jaW5nLCBhbmQgdGhlIGRhbmNpbmcgZGlkIG5vdCBzZWVtIHRvIGRpZSBkb3duLiBJdCBsYXN0ZWQgZm9yIHN1Y2ggYSBsb25nIHRpbWUgdGhhdCBpdCBldmVuIGF0dHJhY3RlZCB0aGUgYXR0ZW50aW9uIG9mIHRoZSBhdXRob3JpdGllczsgdW50aWwgdGhlIGNvdW5jaWwgZ2F2ZSB1cCBhdXRob3JpdHkgdG8gdGhlIHBoeXNpY2lhbnMsIHdobyBwcmVzY3JpYmVkIHRoZSBhZmZsaWN0ZWQgdG8gXCJkYW5jZSB0aGVtc2VsdmVzIGZyZWUgb2YgaXQuXCIgVGhlcmUgYXJlIGNsYWltcyB0aGF0IGd1aWxkIGhhbGxzIHdlcmUgcmVmdXJiaXNoZWQgdG8gYWNjb21tb2RhdGUgdGhlIGRhbmNpbmcsIGFzIHdlbGwgYXMgbXVzaWNpYW5zIGFuZCBzdHJvbmcgcGVvcGxlIHRvIGhlbHAga2VlcCB0aG9zZSBkZWFsaW5nIHdpdGggdGhlIGRhbmNpbmcgbWFuaWEgdG8gc3RheSB1cHJpZ2h0LiBUaGlzIGJhY2tmaXJlZCwgYW5kIHRoZSBjb3VuY2lsIHdhcyBmb3JjZWQgdG8gYmFuIHB1YmxpYyBkYW5jaW5nIGFzIHBlb3BsZSBkYW5jZWQgaW4gZmVhciBpdCB3YXMgYSBwdW5pc2htZW50IGZyb20gU2FpbnQgVml0dXM7IGFuZCB0byBiZSBcImZyZWUgb2Ygc2luXCIgbWFueSBqb2luZWQgaW4gb24gdGhlIGRhbmNpbmcgZXBpZGVtaWMuIFRoZSBjb3VuY2lsIHdlbnQgYXMgZmFyIGFzIHRvIGJhbiBtdXNpYywgYXMgd2VsbC4gVGhvc2Ugd2hvIGRhbmNlZCB3ZXJlIHRoZW4gb3JkZXJlZCB0byBnbyB0byB0aGUgc2hyaW5lIG9mIFNhaW50IFZpdHVzLCB3b3JlIHJlZCBzaG9lcyB0aGF0IHdlcmUgc3ByaW5rbGVkIHdpdGggaG9seSB3YXRlciBhbmQgaGFkIHBhaW50ZWQgY3Jvc3NlcyBvbiB0aGUgdG9wcyBhbmQgc29sZXMuIFRoZXkgYWxzbyBoYWQgdG8gaG9sZCBzbWFsbCBjcm9zc2VzIGluIHRoZWlyIGhhbmRzOyBhbmQgaW5jZW5zZSBhbmQgTGF0aW4gaW5jYW50YXRpb25zIHdlcmUgcGFydCBvZiB0aGlzIFwicml0dWFsLlwiIEFwcGFyZW50bHkgXCJmb3JnaXZlbiBieSBWaXR1cyxcIiB3b3JkIHdhcyBzcHJlYWQgb2YgYSBzdWNjZXNzZnVsIHJpdHVhbCBhbmQgdGhlIERhbmNpbmcgUGxhZ3VlIGhhZCBlbmRlZC5cblxuRXZlbnRzIHNpbWlsYXIgdG8gdGhpcyBhcmUgc2FpZCB0byBoYXZlIG9jY3VycmVkIHRocm91Z2hvdXQgdGhlIG1lZGlldmFsIGFnZSBpbmNsdWRpbmcgMTF0aCBjZW50dXJ5IGluIEvDtmxiaWdrLCBTYXhvbnksIHdoZXJlIGl0IHdhcyBiZWxpZXZlZCB0byBiZSB0aGUgcmVzdWx0IG9mIGRpdmluZSBqdWRnbWVudCAuIEluIDE1dGggY2VudHVyeSBBcHVsaWEsIEl0YWx5LCBhIHdvbWFuIHdhcyBiaXR0ZW4gYnkgYSB0YXJhbnR1bGEsIHRoZSB2ZW5vbSBtYWtpbmcgaGVyIGRhbmNlIGNvbnZ1bHNpdmVseS4gVGhlIG9ubHkgd2F5IHRvIGN1cmUgdGhlIGJpdGUgd2FzIHRvIFwic2hpbW15XCIgYW5kIHRvIGhhdmUgdGhlIHJpZ2h0IHNvcnQgb2YgbXVzaWMgYXZhaWxhYmxlLCB3aGljaCB3YXMgYW4gYWNjZXB0ZWQgcmVtZWR5IGJ5IHNjaG9sYXJzIGxpa2UgQXRoYW5hc2l1cyBLaXJjaGVyLlxuXG5Db250ZW1wb3JhbmVvdXMgZXhwbGFuYXRpb25zIGluY2x1ZGVkIGRlbW9uaWMgcG9zc2Vzc2lvbiBhbmQgb3ZlcmhlYXRlZCBibG9vZC5cblxuVmVyYWNpdHkgb2YgZGVhdGhzXG5Db250cm92ZXJzeSBleGlzdHMgb3ZlciB3aGV0aGVyIHBlb3BsZSB1bHRpbWF0ZWx5IGRhbmNlZCB0byB0aGVpciBkZWF0aHMuIFNvbWUgc291cmNlcyBjbGFpbSB0aGF0IGZvciBhIHBlcmlvZCB0aGUgcGxhZ3VlIGtpbGxlZCBhcm91bmQgZmlmdGVlbiBwZW9wbGUgcGVyIGRheSwgYnV0IHRoZSBzb3VyY2VzIG9mIHRoZSBjaXR5IG9mIFN0cmFzYm91cmcgYXQgdGhlIHRpbWUgb2YgdGhlIGV2ZW50cyBkaWQgbm90IG1lbnRpb24gdGhlIG51bWJlciBvZiBkZWF0aHMsIG9yIGV2ZW4gaWYgdGhlcmUgd2VyZSBmYXRhbGl0aWVzLiBUaGVyZSBkbyBub3QgYXBwZWFyIHRvIGJlIGFueSBzb3VyY2VzIHJlbGF0ZWQgdG8gdGhlIGV2ZW50cyB0aGF0IG1ha2Ugbm90ZSBvZiBhbnkgZmF0YWxpdGllcy4gTmVkIFBlbm5hbnQtUmVhIGFsc28gY2xhaW1zIHRoYXQgdGhlIGZpbmFsIGRlYXRoIHRvbGwgaXMgbm90IGtub3duLCBidXQgaWYgdGhlIGNsYWltcyBvZiBmaWZ0ZWVuIHBlb3BsZSBkeWluZyBwZXIgZGF5IHdlcmUgdHJ1ZSB0aGVuIHRoZSB0b2xsIGNvdWxkIGJlIFwiaW50byB0aGUgaHVuZHJlZHMuXCJcblxuVGhlIG1haW4gc291cmNlIGZvciB0aGUgY2xhaW0gaXMgSm9obiBXYWxsZXIsIHdobyBoYXMgd3JpdHRlbiBzZXZlcmFsIGpvdXJuYWwgYXJ0aWNsZXMgb24gdGhlIHN1YmplY3QgYW5kIHRoZSBib29rIEEgVGltZSB0byBEYW5jZSwgYSBUaW1lIHRvIERpZTogVGhlIEV4dHJhb3JkaW5hcnkgU3Rvcnkgb2YgdGhlIERhbmNpbmcgUGxhZ3VlIG9mIDE1MTguIFRoZSBzb3VyY2VzIGNpdGVkIGJ5IFdhbGxlciB0aGF0IG1lbnRpb24gZGVhdGhzIHdlcmUgYWxsIGZyb20gbGF0ZXIgYWNjb3VudHMgb2YgdGhlIGV2ZW50cy4gVGhlcmUgaXMgYWxzbyB1bmNlcnRhaW50eSBhcm91bmQgdGhlIGlkZW50aXR5IG9mIHRoZSBpbml0aWFsIGRhbmNlciAoZWl0aGVyIGFuIHVubmFtZWQgd29tYW4gb3IgXCJGcmF1IFRyb2ZmZWFcIikgYW5kIHRoZSBudW1iZXIgb2YgZGFuY2VycyBpbnZvbHZlZCAoc29tZXdoZXJlIGJldHdlZW4gNTAgYW5kIDQwMCkuIE9mIHRoZSBzaXggY2hyb25pY2xlIGFjY291bnRzLCBmb3VyIHN1cHBvcnQgTGFkeSBUcm9mZmVhIGFzIHRoZSBmaXJzdCBkYW5jZXIuXG5cbk1vZGVybiB0aGVvcmllc1xuRm9vZCBwb2lzb25pbmdcblNvbWUgYmVsaWV2ZSB0aGUgZGFuY2luZyBjb3VsZCBoYXZlIGJlZW4gYnJvdWdodCBvbiBieSBmb29kIHBvaXNvbmluZyBjYXVzZWQgYnkgdGhlIHRveGljIGFuZCBwc3ljaG9hY3RpdmUgY2hlbWljYWwgcHJvZHVjdHMgb2YgZXJnb3QgZnVuZ2kgKGVyZ290aXNtKSwgd2hpY2ggZ3Jvd3MgY29tbW9ubHkgb24gZ3JhaW5zIChzdWNoIGFzIHJ5ZSkgdXNlZCBmb3IgYmFraW5nIGJyZWFkLiBFcmdvdGFtaW5lIGlzIHRoZSBtYWluIHBzeWNob2FjdGl2ZSBwcm9kdWN0IG9mIGVyZ290IGZ1bmdpOyBpdCBpcyBzdHJ1Y3R1cmFsbHkgcmVsYXRlZCB0byB0aGUgZHJ1ZyBseXNlcmdpYyBhY2lkIGRpZXRoeWxhbWlkZSAoTFNELTI1KSBhbmQgaXMgdGhlIHN1YnN0YW5jZSBmcm9tIHdoaWNoIExTRC0yNSB3YXMgb3JpZ2luYWxseSBzeW50aGVzaXplZC4gVGhlIHNhbWUgZnVuZ3VzIGhhcyBhbHNvIGJlZW4gaW1wbGljYXRlZCBpbiBvdGhlciBtYWpvciBoaXN0b3JpY2FsIGFub21hbGllcywgaW5jbHVkaW5nIHRoZSBTYWxlbSB3aXRjaCB0cmlhbHMuXG5cbkluIFRoZSBMYW5jZXQsIEpvaG4gV2FsbGVyIGFyZ3VlcyB0aGF0IFwidGhpcyB0aGVvcnkgZG9lcyBub3Qgc2VlbSB0ZW5hYmxlLCBzaW5jZSBpdCBpcyB1bmxpa2VseSB0aGF0IHRob3NlIHBvaXNvbmVkIGJ5IGVyZ290IGNvdWxkIGhhdmUgZGFuY2VkIGZvciBkYXlzIGF0IGEgdGltZS4gTm9yIHdvdWxkIHNvIG1hbnkgcGVvcGxlIGhhdmUgcmVhY3RlZCB0byBpdHMgcHN5Y2hvdHJvcGljIGNoZW1pY2FscyBpbiB0aGUgc2FtZSB3YXkuIFRoZSBlcmdvdGlzbSB0aGVvcnkgYWxzbyBmYWlscyB0byBleHBsYWluIHdoeSBhbG1vc3QgZXZlcnkgb3V0YnJlYWsgb2NjdXJyZWQgc29tZXdoZXJlIGFsb25nIHRoZSBSaGluZSBhbmQgTW9zZWxsZSByaXZlcnMsIGFyZWFzIGxpbmtlZCBieSB3YXRlciBidXQgd2l0aCBxdWl0ZSBkaWZmZXJlbnQgY2xpbWF0ZXMgYW5kIGNyb3BzXCIuXG5cblN0cmVzcy1pbmR1Y2VkIG1hc3MgaHlzdGVyaWFcblRoaXMgY291bGQgaGF2ZSBiZWVuIGFuIGV4YW1wbGUgb2YgZnVsbHkgZGV2ZWxvcGVkIGNhc2VzIG9mIHBzeWNob2dlbmljIG1vdmVtZW50IGRpc29yZGVyIGhhcHBlbmluZyBpbiBtYXNzIGh5c3RlcmlhIG9yIG1hc3MgcHN5Y2hvZ2VuaWMgaWxsbmVzcywgd2hpY2ggaW52b2x2ZXMgbWFueSBpbmRpdmlkdWFscyBzdWRkZW5seSBleGhpYml0aW5nIHRoZSBzYW1lIGJpemFycmUgYmVoYXZpb3IuIFRoZSBiZWhhdmlvciBzcHJlYWRzIHJhcGlkbHkgYW5kIGJyb2FkbHkgaW4gYW4gZXBpZGVtaWMgcGF0dGVybi4gVGhpcyBraW5kIG9mIGNvbXBvcnRtZW50IGNvdWxkIGhhdmUgYmVlbiBjYXVzZWQgYnkgZWxldmF0ZWQgbGV2ZWxzIG9mIHBzeWNob2xvZ2ljYWwgc3RyZXNzLCBjYXVzZWQgYnkgdGhlIHJ1dGhsZXNzIHllYXJzIChldmVuIGJ5IHRoZSByb3VnaCBzdGFuZGFyZHMgb2YgdGhlIGVhcmx5IG1vZGVybiBwZXJpb2QpIHRoZSBwZW9wbGUgb2YgQWxzYWNlIHdlcmUgc3VmZmVyaW5nLlxuXG5XYWxsZXIgc3BlY3VsYXRlcyB0aGF0IHRoZSBkYW5jaW5nIHdhcyBcInN0cmVzcy1pbmR1Y2VkIHBzeWNob3Npc1wiIG9uIGEgbWFzcyBsZXZlbCwgc2luY2UgdGhlIHJlZ2lvbiB3aGVyZSB0aGUgcGVvcGxlIGRhbmNlZCB3YXMgcmlkZGxlZCB3aXRoIHN0YXJ2YXRpb24gYW5kIGRpc2Vhc2UsIGFuZCB0aGUgaW5oYWJpdGFudHMgdGVuZGVkIHRvIGJlIHN1cGVyc3RpdGlvdXMuIFNldmVuIG90aGVyIGNhc2VzIG9mIGRhbmNpbmcgcGxhZ3VlIHdlcmUgcmVwb3J0ZWQgaW4gdGhlIHNhbWUgcmVnaW9uIGR1cmluZyB0aGUgbWVkaWV2YWwgZXJhLlxuXG5UaGlzIHBzeWNob2dlbmljIGlsbG5lc3MgY291bGQgaGF2ZSBjcmVhdGVkIGEgY2hvcmVhIChmcm9tIHRoZSBHcmVlayBraG9yZWlhIG1lYW5pbmcgXCJ0byBkYW5jZVwiKSwgYSBzaXR1YXRpb24gY29tcHJpc2luZyByYW5kb20gYW5kIGludHJpY2F0ZSB1bmludGVudGlvbmFsIG1vdmVtZW50cyB0aGF0IGZsaXQgZnJvbSBib2R5IHBhcnQgdG8gYm9keSBwYXJ0LiBEaXZlcnNlIGNob3JlYXMgKFN0LiBWaXR1cycgZGFuY2UsIFN0LiBKb2huJ3MgZGFuY2UsIGFuZCB0YXJhbnRpc20pIHdlcmUgbGFiZWxlZCBpbiB0aGUgTWlkZGxlIEFnZXMgcmVmZXJyaW5nIHRvIHRoZSBpbmRlcGVuZGVudCBlcGlkZW1pY3Mgb2YgXCJkYW5jaW5nIG1hbmlhXCIgdGhhdCBoYXBwZW5lZCBpbiBjZW50cmFsIEV1cm9wZSwgcGFydGljdWxhcmx5IGF0IHRoZSB0aW1lIG9mIHRoZSBwbGFndWUuXG5cblBvcCBjdWx0dXJlIGFuZCBtZWRpYVxuVGhlIGV2ZW50IGluc3BpcmVkIEpvbmF0aGFuIEdsYXplcidzIDIwMjAgc2hvcnQgZmlsbSBTdHJhc2JvdXJnIDE1MTguXG5cbkl0IHdhcyBhbHNvIHRoZSBpbnNwaXJhdGlvbiBiZWhpbmQgdGhlIDIwMjIgY2hvcmFsIHNvbmcgXCJDaG9yZW9tYW5pYVwiIGJ5IEZsb3JlbmNlIGFuZCB0aGUgTWFjaGluZS4gSXQgd2FzIHRoZSB0aGlyZCB0cmFjayBvbiB0aGUgYWxidW0gRGFuY2UgRmV2ZXIsIHdoaWNoIHRvb2sgaXRzIHRpdGxlIGZyb20gdGhlIHNvbmcuXG5cblRoZSBib29rIHNlcmllcyBcIkEgQ29sbGVjdGlvbiBvZiBVdHRlciBTcGVjdWxhdGlvblwiIHJlbGVhc2VkIGEgdGl0bGUgXCJUaGUgRGFuY2luZyBQbGFndWU6IEEgQ29sbGVjdGlvbiBvZiBVdHRlciBTcGVjdWxhdGlvblwiIGluIDIwMjIuIEl0IGlzIGEgZmljdGlvbmFsIGFjY291bnQgYWJvdXQgdGhlIGV2ZW50cyB0aGF0IGhhcHBlbmVkIGluIFN0cmFzYm91cmcuXG5cblRoZSAyMDIzIG5vdmVsLCBUaGUgRGFuY2UgVHJlZSwgYnkgS2lyYW4gTWlsbHdvb2QgSGFyZ3JhdmUgaXMgYSBmaWN0aW9uYWxpemVkIHZlcnNpb24gb2YgdGhlIHN1bW1lciBvZiAxNTE4IGluIFN0cmFzYm91cmcuXG5cblRoZSBldmVudCBpcyBmZWF0dXJlZCBhcyBwYXJ0IG9mIHRoZSBmaXJzdCBzZWFzb24gb2YgV2F0Y2hlciBFbnRlcnRhaW5tZW50J3MgXCJQdXBwZXQgSGlzdG9yeVwiIGluIHRoZSBlcGlzb2RlIFwiVGhlIERhbmNpbmcgUGxhZ3VlXCIuIn1d", - "fileSize": "7.29 kB", - "fileName": "file.json" - } - }, - "pairedItem": [ - { - "item": 0 - } - ] - } - ] - ] - } - } - ], - "OpenAI Chat Model4": [ - { - "startTime": 1747343996893, - "executionTime": 1283, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 787, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 3 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 2 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 4 - } - ] - } - }, - { - "startTime": 1747343996893, - "executionTime": 939, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 772, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747343996893, - "executionTime": 1253, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 787, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747343996893, - "executionTime": 1061, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 772, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747343998179, - "executionTime": 1337, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518 occurred in Strasbourg, Alsace, where between 50 and 400 people danced uncontrollably for weeks. The cause is unknown, with theories ranging from stress-induced mass hysteria to religious explanations. The outbreak eventually subsided when the dancers were sent to a shrine to pray for absolution. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not mention fatalities. Similar events have been reported throughout history, with explanations including demonic possession and overheated blood.\n\nThe Dancing Plague of 1518 in Strasbourg involved a large group of people dancing uncontrollably for days, with theories suggesting it was caused by food poisoning from ergot fungi or stress-induced mass hysteria. John Waller's research questions the ergotism theory and suggests the dancing was a result of stress-induced psychosis. The event has inspired various works of art and media, including films, songs, and novels.\n\nThe dancing plague of 1518 occurred in Strasbourg, Alsace, where between 50 and 400 people danced uncontrollably for weeks. The cause is unknown, with theories ranging from stress-induced mass hysteria to religious explanations. The outbreak eventually subsided when the dancers were sent to a shrine to pray for absolution. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not mention fatalities. Similar events have been reported throughout history, with explanations including demonic possession and overheated blood.\n\nThe Dancing Plague of 1518 in Strasbourg involved a large group of people dancing uncontrollably for days, with theories suggesting it was caused by food poisoning from ergot fungi or stress-induced mass hysteria. John Waller's research questions the ergotism theory and suggests the dancing was a result of stress-induced psychosis. The event has inspired various works of art and media, including films, songs, and novels.\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 413, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Summary - Simple - Map - Binary": [ - { - "startTime": 1747343996879, - "executionIndex": 4, - "source": [ - { - "previousNode": "Convert to File" - } - ], - "hints": [], - "executionTime": 2638, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model5": [ - { - "startTime": 1747343999527, - "executionTime": 1467, - "executionIndex": 11, - "executionStatus": "success", - "source": [ - { - "previousNode": "Evaluate to Baseline", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: You are assessing a submitted answer on a given task or input based on a set of criteria. Here is the data:\n[BEGIN DATA]\n***\n[Input]: Summarize Wikipedia article about the dancing plague of 1518\n***\n[Submission]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks, with theories ranging from stress-induced mass hysteria to religious explanations. The outbreak subsided when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not mention fatalities. Similar events have been reported throughout history, with explanations including demonic possession and overheated blood. John Waller's research questions the ergotism theory and suggests the dancing was a result of stress-induced psychosis. The event has inspired various works of art and media.\n***\n[Criteria]: helpfulness: Is the submission helpful, insightful, and appropriate? If so, response Y. If not, respond N.\n***\n[Reference]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.\n***\n[END DATA]\nDoes the submission meet the Criteria? First, write out in a step by step manner your reasoning about each criterion to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character \"Y\" or \"N\" (without quotes or punctuation) on its own line corresponding to the correct answer of whether the submission meets all criteria. At the end, repeat just the letter again by itself on a new line." - ], - "estimatedTokens": 423, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model5", - "runIndex": 0 - } - ] - } - } - ], - "Evaluate to Baseline": [ - { - "startTime": 1747343999517, - "executionIndex": 10, - "source": [ - { - "previousNode": "Summary - Simple - Map - Binary" - } - ], - "hints": [], - "executionTime": 1479, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "reasoning": "1. Is the submission helpful, insightful, and appropriate?- The submission provides a summary of the Wikipedia article about the dancing plague of 1518, including key details such as the location, number of people involved, possible causes, and outcomes.- The submission mentions various theories surrounding the dancing plague, historical context, and the impact of the event.- The submission is informative and covers the main points of the Wikipedia article accurately.- Overall, the submission is helpful, insightful, and appropriate.Therefore, the submission meets the criteria.", - "value": "Y", - "score": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Evaluate to Baseline" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model4": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 3 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 2 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 4 - } - ] - } - ], - "OpenAI Chat Model5": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model5", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:56.877Z", - "stoppedAt": "2025-05-15T21:20:00.996Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/237-snapshot.json b/test-workflows/snapshots/237-snapshot.json deleted file mode 100644 index f8fa547afa..0000000000 --- a/test-workflows/snapshots/237-snapshot.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343996926, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Azure OpenAI Chat Model": [ - { - "startTime": 1747343996936, - "executionTime": 776, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "Azure OpenAI Chat", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: How much is 1+1? Only provide the numerical answer without any other text.\n" - ], - "estimatedTokens": 20, - "options": { - "azure_endpoint": "https://n8n-ai-us.openai.azure.com/", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "model_kwargs": {}, - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "deployment_name": "gpt4" - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Azure OpenAI Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Azure OpenAI Chat": [ - { - "startTime": 1747343996926, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 787, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Azure OpenAI Chat" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Azure OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "Azure OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:56.926Z", - "stoppedAt": "2025-05-15T21:19:57.713Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/238-snapshot.json b/test-workflows/snapshots/238-snapshot.json deleted file mode 100644 index 84129d0e6b..0000000000 --- a/test-workflows/snapshots/238-snapshot.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343996969, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Model": [ - { - "startTime": 1747343996970, - "executionTime": 422, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "Open AI Instruct", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "How much is 1+1? Only provide the numerical answer without any other text.\n\n" - ], - "estimatedTokens": 18, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-instruct", - "temperature": 0, - "configuration": {}, - "timeout": 60000, - "max_retries": 2 - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Model", - "runIndex": 0 - } - ] - } - } - ], - "Open AI Instruct": [ - { - "startTime": 1747343996969, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 423, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Open AI Instruct" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Model": [ - { - "subRun": [ - { - "node": "OpenAI Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:56.969Z", - "stoppedAt": "2025-05-15T21:19:57.392Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/239-snapshot.json b/test-workflows/snapshots/239-snapshot.json deleted file mode 100644 index 1ccc5a68e7..0000000000 --- a/test-workflows/snapshots/239-snapshot.json +++ /dev/null @@ -1,583 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343997231, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model3": [ - { - "startTime": 1747343997245, - "executionTime": 2299, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Let's first understand the problem and devise a plan to solve the problem. Please output the plan starting with the header \"Plan:\" followed by a numbered list of steps. Please make the plan the minimum number of steps required to answer the query or complete the task accurately and precisely. You have a set of tools at your disposal to help you with this task: calculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator. You must consider these tools when coming up with your plan. If the task is a question, the final step in the plan must be the following: \"Given the above steps taken, please respond to the original query.\" At the end of your plan, say \"\"\nHuman: What is the result of 30 + (10002200 / 100)? Only respond with a number." - ], - "estimatedTokens": 188, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model3", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 2 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 3 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 4 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 5 - } - ] - } - }, - { - "startTime": 1747343999545, - "executionTime": 2549, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Previous steps: []\n\nCurrent objective: Calculate the division part of the expression: 10002200 / 100.\n\n\n\nYou may extract and combine relevant data from your previous steps when responding to me." - ], - "estimatedTokens": 311, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747344002096, - "executionTime": 1416, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Previous steps: []\n\nCurrent objective: Calculate the division part of the expression: 10002200 / 100.\n\nThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):\nThought: To calculate the division part of the expression \\(10002200 / 100\\), I will use the calculator tool.\nAction: \n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"10002200 / 100\"\n}\n```\n\nObservation: 100022\nThought:\n\nYou may extract and combine relevant data from your previous steps when responding to me." - ], - "estimatedTokens": 398, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747344003513, - "executionTime": 2581, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Previous steps: [{\"action\":{\"text\":\"Calculate the division part of the expression: 10002200 / 100.\"},\"result\":{\"response\":\"The result of the division \\\\(10002200 / 100\\\\) is 100022.\"}}]\n\nCurrent objective: Add 30 to the result of step 1.\n\n\n\nYou may extract and combine relevant data from your previous steps when responding to me." - ], - "estimatedTokens": 353, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747344006097, - "executionTime": 1567, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Previous steps: [{\"action\":{\"text\":\"Calculate the division part of the expression: 10002200 / 100.\"},\"result\":{\"response\":\"The result of the division \\\\(10002200 / 100\\\\) is 100022.\"}}]\n\nCurrent objective: Add 30 to the result of step 1.\n\nThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):\nThought: To achieve the current objective, I need to add 30 to the result of step 1, which was 100022.\n\nAction: \n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"100022 + 30\"\n}\n```\n\nObservation: 100052\nThought:\n\nYou may extract and combine relevant data from your previous steps when responding to me." - ], - "estimatedTokens": 441, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747344007667, - "executionTime": 796, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Previous steps: [{\"action\":{\"text\":\"Calculate the division part of the expression: 10002200 / 100.\"},\"result\":{\"response\":\"The result of the division \\\\(10002200 / 100\\\\) is 100022.\"}},{\"action\":{\"text\":\"Add 30 to the result of step 1.\"},\"result\":{\"response\":\"The final result after adding 30 to 100022 is 100052.\"}}]\n\nCurrent objective: Output the final result as a number.\n\n The original question was: What is the result of 30 + (10002200 / 100)? Only respond with a number..\n\n\n\nYou may extract and combine relevant data from your previous steps when responding to me." - ], - "estimatedTokens": 416, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Calculator3": [ - { - "startTime": 1747344002094, - "executionTime": 1, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "100022" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "10002200 / 100" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Calculator3", - "runIndex": 0 - }, - { - "node": "Calculator3", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344006095, - "executionTime": 0, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "100052" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "100022 + 30" - } - } - ] - ] - } - } - ], - "AI Agent3": [ - { - "startTime": 1747343997232, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 11232, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "100052" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AI Agent3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model3": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model3", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 2 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 3 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 4 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 5 - } - ] - } - ], - "Calculator3": [ - { - "subRun": [ - { - "node": "Calculator3", - "runIndex": 0 - }, - { - "node": "Calculator3", - "runIndex": 1 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:57.231Z", - "stoppedAt": "2025-05-15T21:20:08.464Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/240-snapshot.json b/test-workflows/snapshots/240-snapshot.json deleted file mode 100644 index 88ce472aac..0000000000 --- a/test-workflows/snapshots/240-snapshot.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343997401, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Baseline": [ - { - "startTime": 1747343997401, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "baseline_summary": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Article": [ - { - "startTime": 1747343997401, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set Baseline" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model2": [ - { - "startTime": 1747343997407, - "executionTime": 1366, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Refine", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 787, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747343998775, - "executionTime": 1684, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Refine", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Your job is to produce a final summary\nWe have provided an existing summary up to a certain point: \"The dancing plague of 1518 occurred in Strasbourg, Alsace, where between 50 and 400 people danced uncontrollably for weeks. The cause is believed to be stress-induced mass hysteria, with other theories including ergot poisoning and religious explanations. The outbreak began with one woman dancing and spread to others, leading to deaths from strokes or heart attacks. The epidemic ended when the dancers were sent to a shrine to pray for absolution. Similar events have been reported throughout history. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm this.\"\nWe have the opportunity to refine the existing summary\n(only if needed) with some more context below.\n------------\n\"The main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n------------\n\nGiven the new context, refine the original summary\nIf the context isn't useful, return the original summary.\n\nREFINED SUMMARY:" - ], - "estimatedTokens": 957, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Summary - Simple - Refine": [ - { - "startTime": 1747343997404, - "executionIndex": 3, - "source": [ - { - "previousNode": "Set Article" - } - ], - "hints": [], - "executionTime": 3056, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model9": [ - { - "startTime": 1747344000467, - "executionTime": 1037, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "Evaluate to Baseline4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: You are assessing a submitted answer on a given task or input based on a set of criteria. Here is the data:\n[BEGIN DATA]\n***\n[Input]: Summarize Wikipedia article about the dancing plague of 1518\n***\n[Submission]: undefined\n***\n[Criteria]: helpfulness: Is the submission helpful, insightful, and appropriate? If so, response Y. If not, respond N.\n***\n[Reference]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.\n***\n[END DATA]\nDoes the submission meet the Criteria? First, write out in a step by step manner your reasoning about each criterion to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character \"Y\" or \"N\" (without quotes or punctuation) on its own line corresponding to the correct answer of whether the submission meets all criteria. At the end, repeat just the letter again by itself on a new line." - ], - "estimatedTokens": 288, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model9", - "runIndex": 0 - } - ] - } - } - ], - "Evaluate to Baseline4": [ - { - "startTime": 1747344000460, - "executionIndex": 6, - "source": [ - { - "previousNode": "Summary - Simple - Refine" - } - ], - "hints": [], - "executionTime": 1044, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "reasoning": "Step by step reasoning:1. Is the submission helpful, insightful, and appropriate?- The submission provides a concise summary of the Wikipedia article about the dancing plague of 1518, including key details such as the location, number of people involved, possible causes, and outcome.- The submission is informative and relevant to the input provided.- The submission does not contain any irrelevant or misleading information.- Overall, the submission meets the criteria of being helpful, insightful, and appropriate.Therefore, the submission meets the Criteria.", - "value": "Y", - "score": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Evaluate to Baseline4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model2": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - ], - "OpenAI Chat Model9": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model9", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:57.401Z", - "stoppedAt": "2025-05-15T21:20:01.504Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/241-snapshot.json b/test-workflows/snapshots/241-snapshot.json deleted file mode 100644 index 04721efeb8..0000000000 --- a/test-workflows/snapshots/241-snapshot.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1746522731818, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1746522732523, - "executionTime": 920, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful AI assistant.\nHuman: What is the result of 30 + (10002200 / 100)? Only respond with a number." - ], - "estimatedTokens": 33, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1746522733445, - "executionTime": 435, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful AI assistant.\nHuman: What is the result of 30 + (10002200 / 100)? Only respond with a number.\nAI: \nFunction: calculator, 100052" - ], - "estimatedTokens": 43, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Calculator": [ - { - "startTime": 1746522733444, - "executionTime": 1, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "100052" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "30 + (10002200 / 100)" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Calculator", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent": [ - { - "startTime": 1746522731818, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 2063, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "100052", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields": [ - { - "startTime": 1746522733881, - "executionIndex": 5, - "source": [ - { - "previousNode": "AI Agent" - } - ], - "hints": [], - "executionTime": 6, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "calculator_called": true, - "has_correct_output": "true" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - ], - "Calculator": [ - { - "subRun": [ - { - "node": "Calculator", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-06T09:12:11.817Z", - "stoppedAt": "2025-05-06T09:12:13.887Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/242-snapshot.json b/test-workflows/snapshots/242-snapshot.json deleted file mode 100644 index c3ba41e57f..0000000000 --- a/test-workflows/snapshots/242-snapshot.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343997489, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747343997494, - "executionTime": 808, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "Open AI Chat - Output Parsing", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: What are the top 5 states of US by population?\nYou must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n```json\n{\"type\":\"object\",\"properties\":{\"output\":{\"type\":\"object\",\"properties\":{\"state\":{\"type\":\"string\"},\"cities\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false}},\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}\n```\n" - ], - "estimatedTokens": 336, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Structured Output Parser1": [ - { - "startTime": 1747343998303, - "executionTime": 2, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "Open AI Chat - Output Parsing", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "```json\n{\"output\":{\"state\":\"California\",\"cities\":[\"Los Angeles\",\"San Francisco\",\"San Diego\",\"San Jose\",\"Sacramento\"]}}\n```" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - } - ] - } - } - ], - "Open AI Chat - Output Parsing": [ - { - "startTime": 1747343997489, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 817, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Open AI Chat - Output Parsing" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ], - "Structured Output Parser1": [ - { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:57.489Z", - "stoppedAt": "2025-05-15T21:19:58.306Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/243-snapshot.json b/test-workflows/snapshots/243-snapshot.json deleted file mode 100644 index ccd7966f2e..0000000000 --- a/test-workflows/snapshots/243-snapshot.json +++ /dev/null @@ -1,305 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343997730, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model2": [ - { - "startTime": 1747343997733, - "executionTime": 1117, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: What is the result of 30 + (10002200 / 100)? Only respond with a number.\n\n" - ], - "estimatedTokens": 294, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747343998855, - "executionTime": 811, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: What is the result of 30 + (10002200 / 100)? Only respond with a number.\n\nThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):\nQuestion: What is the result of 30 + (10002200 / 100)?\nThought: I need to calculate the division first and then add 30 to the result.\nAction: \n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"30 + (10002200 / 100)\"\n}\n```\n\nObservation: 100052\nThought:" - ], - "estimatedTokens": 394, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Calculator2": [ - { - "startTime": 1747343998851, - "executionTime": 2, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "100052" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "30 + (10002200 / 100)" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Calculator2", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent2": [ - { - "startTime": 1747343997730, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1936, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "100052", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields2": [ - { - "startTime": 1747343999666, - "executionIndex": 5, - "source": [ - { - "previousNode": "AI Agent2" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "calculator_called": true, - "has_correct_output": "true" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model2": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - ], - "Calculator2": [ - { - "subRun": [ - { - "node": "Calculator2", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:57.730Z", - "stoppedAt": "2025-05-15T21:19:59.669Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/244-snapshot.json b/test-workflows/snapshots/244-snapshot.json deleted file mode 100644 index 5729dac27c..0000000000 --- a/test-workflows/snapshots/244-snapshot.json +++ /dev/null @@ -1,431 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343997766, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model4": [ - { - "startTime": 1747343997768, - "executionTime": 2362, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\nget_evens: Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\nget_weather_data: Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Help me plan my day in Berlin, Germany\n1. Check current the weather \n2. Get the upcoming events\n3. Respond with weather and details about the upcoming events\n\nEach tool should only be called once.\n\n" - ], - "estimatedTokens": 380, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1747344000150, - "executionTime": 4919, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\nget_evens: Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\nget_weather_data: Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Help me plan my day in Berlin, Germany\n1. Check current the weather \n2. Get the upcoming events\n3. Respond with weather and details about the upcoming events\n\nEach tool should only be called once.\n\nThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):\nThought: First, I need to check the current weather in Berlin, Germany.\nAction: \n```\n{\n \"action\": \"get_weather_data\",\n \"action_input\": \"Berlin, Germany\"\n}\n```\nObservation: {\n \"response\": \"{\\n \\\"created\\\": \\\"2024-03-04T09:26:23+01:00\\\",\\n \\\"symbolCode\\\": {\\n \\\"next1Hour\\\": \\\"fog\\\"\\n },\\n \\\"temperature\\\": {\\n \\\"value\\\": 5.1,\\n \\\"feelsLike\\\": 4\\n },\\n \\\"precipitation\\\": {\\n \\\"value\\\": 0.0\\n },\\n \\\"wind\\\": {\\n \\\"direction\\\": 275,\\n \\\"speed\\\": 1.7\\n },\\n \\\"status\\\": {\\n \\\"code\\\": \\\"Ok\\\"\\n }\\n}\"\n}\nThought:" - ], - "estimatedTokens": 600, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1747344005077, - "executionTime": 8985, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Answer the following questions as best you can. You have access to the following tools:\n\nget_evens: Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\nget_weather_data: Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".\n\nThe way you use the tools is by specifying a json blob, denoted below by $JSON_BLOB\nSpecifically, this $JSON_BLOB should have a \"action\" key (with the name of the tool to use) and a \"action_input\" key (with the input to the tool going here). \nThe $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:\n\n```\n{\n \"action\": \"calculator\",\n \"action_input\": \"1 + 2\"\n}\n```\n\nALWAYS use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: \n```\n$JSON_BLOB\n```\nObservation: the result of the action\n... (this Thought/Action/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nBegin! Reminder to always use the exact characters `Final Answer` when responding.\nHuman: Help me plan my day in Berlin, Germany\n1. Check current the weather \n2. Get the upcoming events\n3. Respond with weather and details about the upcoming events\n\nEach tool should only be called once.\n\nThis was your previous work (but I haven't seen any of it! I only see what you return as final answer):\nThought: First, I need to check the current weather in Berlin, Germany.\nAction: \n```\n{\n \"action\": \"get_weather_data\",\n \"action_input\": \"Berlin, Germany\"\n}\n```\nObservation: {\n \"response\": \"{\\n \\\"created\\\": \\\"2024-03-04T09:26:23+01:00\\\",\\n \\\"symbolCode\\\": {\\n \\\"next1Hour\\\": \\\"fog\\\"\\n },\\n \\\"temperature\\\": {\\n \\\"value\\\": 5.1,\\n \\\"feelsLike\\\": 4\\n },\\n \\\"precipitation\\\": {\\n \\\"value\\\": 0.0\\n },\\n \\\"wind\\\": {\\n \\\"direction\\\": 275,\\n \\\"speed\\\": 1.7\\n },\\n \\\"status\\\": {\\n \\\"code\\\": \\\"Ok\\\"\\n }\\n}\"\n}\nThought:With the weather in Berlin, Germany being foggy for the next hour, a temperature of 5.1°C (feeling like 4°C), no precipitation, and a light wind from the west at 1.7 m/s, it's a relatively calm and chilly day. Now, I'll check the upcoming events in Berlin to plan the day accordingly.\nAction: \n```\n{\n \"action\": \"get_evens\",\n \"action_input\": \"Berlin, Germany\"\n}\n```\nObservation: {\n \"response\": \"[\\n {\\n \\\"description\\\": \\\"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\\\n\\\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\\\",\\n \\\"name\\\": \\\"Movie Barf: Dune – Part Two\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\\\",\\n \\\"name\\\": \\\"Luboš Pospíšil & 5P\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\\\",\\n \\\"name\\\": \\\"Fight Club\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\\\",\\n \\\"name\\\": \\\"Poor Things\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\\\",\\n \\\"name\\\": \\\"Tribute to World Legends: Michael Jackson\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n }\\n]\"\n}\nThought:" - ], - "estimatedTokens": 1361, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4-turbo-preview", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Get Weather": [ - { - "startTime": 1747344000130, - "executionTime": 18, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "{\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "3956", - "workflowId": "244" - }, - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - } - ], - "Get Events": [ - { - "startTime": 1747344005069, - "executionTime": 6, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "3970", - "workflowId": "244" - }, - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent4": [ - { - "startTime": 1747343997766, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 16296, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "Today in Berlin, Germany, the weather is foggy with a temperature of 5.1°C, feeling like 4°C. There's no precipitation expected, and the wind is light, coming from the west at 1.7 m/s. For activities, there are several interesting events happening:\n\n1. **Movie Barf: Dune – Part Two**: An English-friendly film night featuring *Dune: Part Two* by Denis Villeneuve. The event includes chats with guests and special drink offers.\n2. **Luboš Pospíšil & 5P**: A performance by Luboš Pospíšil with the band 5P.\n3. **Fight Club**: A screening of the iconic film *Fight Club*, offering an insomniac office worker's journey into the world of underground fighting.\n4. **Poor Things**: A film by Yorgos Lanthimos and Emma Stone, telling the fantastical story of Bella Baxter, a young woman brought back to life and her adventures across continents.\n5. **Tribute to World Legends: Michael Jackson**: A jazz tribute concert to Michael Jackson by Bharata Rajnošek.\n\nThese events provide a mix of cinematic experiences, live music, and cultural tributes suitable for a variety of interests." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields6": [ - { - "startTime": 1747344014062, - "executionIndex": 7, - "source": [ - { - "previousNode": "AI Agent4" - } - ], - "hints": [], - "executionTime": 7, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_weather": true, - "has_movie": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model4": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 2 - } - ] - } - ], - "Get Weather": [ - { - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - ], - "Get Events": [ - { - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:57.765Z", - "stoppedAt": "2025-05-15T21:20:14.069Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/245-snapshot.json b/test-workflows/snapshots/245-snapshot.json deleted file mode 100644 index f858d2bcad..0000000000 --- a/test-workflows/snapshots/245-snapshot.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343998385, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AWS Bedrock Chat Model": [ - { - "startTime": 1747343998389, - "executionTime": 1163, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AWS Bedrock Chat", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: How much is 1+1? Only provide the numerical answer without any other text.\n" - ], - "estimatedTokens": 20, - "options": { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain", - "chat_models", - "chat_bedrock_converse", - "ChatBedrockConverse" - ] - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "AWS Bedrock Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "AWS Bedrock Chat": [ - { - "startTime": 1747343998386, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1166, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The answer to the equation 1+1 is 2." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AWS Bedrock Chat" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "AWS Bedrock Chat Model": [ - { - "subRun": [ - { - "node": "AWS Bedrock Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:58.385Z", - "stoppedAt": "2025-05-15T21:19:59.552Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/246-snapshot.json b/test-workflows/snapshots/246-snapshot.json deleted file mode 100644 index 32bfe748b3..0000000000 --- a/test-workflows/snapshots/246-snapshot.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343998710, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747343998712, - "executionTime": 381, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "Open AI Chat", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: How much is 1+1? Only provide the numerical answer without any other text.\n" - ], - "estimatedTokens": 20, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Open AI Chat": [ - { - "startTime": 1747343998711, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 382, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Open AI Chat" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:58.710Z", - "stoppedAt": "2025-05-15T21:19:59.093Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/247-snapshot.json b/test-workflows/snapshots/247-snapshot.json deleted file mode 100644 index 5efdb71f3e..0000000000 --- a/test-workflows/snapshots/247-snapshot.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343998718, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Baseline": [ - { - "startTime": 1747343998718, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "baseline_summary": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Article": [ - { - "startTime": 1747343998718, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set Baseline" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Token Splitter": [ - { - "startTime": 1747343998720, - "executionTime": 3, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Advanced", - "previousNodeRun": 0 - } - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter", - "runIndex": 0 - } - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747343998732, - "executionTime": 1334, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Advanced", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why.\n\n to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said\n\n crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles\n\n also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that\n\n LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintention\n\n superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 1793, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Summary - Advanced": [ - { - "startTime": 1747343998719, - "executionIndex": 3, - "source": [ - { - "previousNode": "Set Article" - } - ], - "hints": [], - "executionTime": 1347, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model8": [ - { - "startTime": 1747344000077, - "executionTime": 1216, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "Evaluate to Baseline3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: You are assessing a submitted answer on a given task or input based on a set of criteria. Here is the data:\n[BEGIN DATA]\n***\n[Input]: Summarize Wikipedia article about the dancing plague of 1518\n***\n[Submission]: The dancing plague of 1518 was a case of dancing mania that occurred in Strasbourg, Alsace, where between 50 and 400 people danced uncontrollably for weeks. The cause of the phenomenon is debated, with theories including stress-induced mass hysteria, ergot poisoning, and religious explanations. The outbreak eventually subsided when the dancers were sent to a shrine to pray for absolution. The veracity of deaths during the plague is disputed, with some sources claiming fatalities while others do not mention any deaths. Modern theories suggest food poisoning from ergot fungi or stress-induced mass hysteria as possible explanations. The event has inspired various works of art and media, including films, songs, and novels.\n***\n[Criteria]: helpfulness: Is the submission helpful, insightful, and appropriate? If so, response Y. If not, respond N.\n***\n[Reference]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.\n***\n[END DATA]\nDoes the submission meet the Criteria? First, write out in a step by step manner your reasoning about each criterion to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character \"Y\" or \"N\" (without quotes or punctuation) on its own line corresponding to the correct answer of whether the submission meets all criteria. At the end, repeat just the letter again by itself on a new line." - ], - "estimatedTokens": 428, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model8", - "runIndex": 0 - } - ] - } - } - ], - "Evaluate to Baseline3": [ - { - "startTime": 1747344000067, - "executionIndex": 6, - "source": [ - { - "previousNode": "Summary - Advanced" - } - ], - "hints": [], - "executionTime": 1228, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "reasoning": "Step by step reasoning:1. Is the submission helpful? - Yes, the submission provides a concise summary of the Wikipedia article about the dancing plague of 1518, including key details such as the location, number of people involved, possible causes, and outcomes.2. Is the submission insightful? - Yes, the submission offers insights into the various theories surrounding the cause of the dancing plague, the controversy over the number of deaths, and the cultural impact of the event.3. Is the submission appropriate? - Yes, the submission is appropriate as it directly addresses the task of summarizing the Wikipedia article about the dancing plague of 1518.Therefore, the submission meets the Criteria.", - "value": "Y", - "score": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Evaluate to Baseline3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Token Splitter": [ - { - "subRun": [ - { - "node": "Token Splitter", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model8": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model8", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:58.718Z", - "stoppedAt": "2025-05-15T21:20:01.295Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/248-snapshot.json b/test-workflows/snapshots/248-snapshot.json deleted file mode 100644 index 16af383ae7..0000000000 --- a/test-workflows/snapshots/248-snapshot.json +++ /dev/null @@ -1,946 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343999184, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Code": [ - { - "startTime": 1747343999184, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Default Data Loader2": [ - { - "startTime": 1747343999190, - "executionTime": 8, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "In-Memory Vector Store", - "previousNodeRun": 0 - } - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Default Data Loader2", - "runIndex": 0 - } - ] - } - } - ], - "Token Splitter2": [ - { - "startTime": 1747343999191, - "executionTime": 7, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Default Data Loader2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter2", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI6": [ - { - "startTime": 1747343999199, - "executionTime": 1399, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "In-Memory Vector Store", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI6", - "runIndex": 0 - } - ] - } - } - ], - "In-Memory Vector Store": [ - { - "startTime": 1747343999186, - "executionIndex": 2, - "source": [ - { - "previousNode": "Code" - } - ], - "hints": [], - "executionTime": 1412, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Populated2": [ - { - "startTime": 1747344000598, - "executionIndex": 6, - "source": [ - { - "previousNode": "In-Memory Vector Store" - } - ], - "hints": [], - "executionTime": 6, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wait": [ - { - "startTime": 1747344000604, - "executionIndex": 7, - "source": [ - { - "previousNode": "Check Vector Store Populated2" - } - ], - "hints": [], - "executionTime": 10001, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI8": [ - { - "startTime": 1747344010606, - "executionTime": 465, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "In-Memory Vector Store1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "Security risks" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI8", - "runIndex": 0 - } - ] - } - } - ], - "In-Memory Vector Store1": [ - { - "startTime": 1747344010605, - "executionIndex": 8, - "source": [ - { - "previousNode": "Wait" - } - ], - "hints": [], - "executionTime": 467, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "document": { - "object": true - }, - "score": 0.34844570501920435 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.34701477848846396 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.32987959970192005 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.31427364434642824 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Retrieval2": [ - { - "startTime": 1747344011072, - "executionIndex": 10, - "source": [ - { - "previousNode": "In-Memory Vector Store1" - } - ], - "hints": [], - "executionTime": 4, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vector Store Retriever2": [ - { - "startTime": 1747344011084, - "executionTime": 489, - "executionIndex": 12, - "executionStatus": "success", - "source": [ - { - "previousNode": "Question and Answer Chain2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "config": { - "tags": [], - "metadata": { - "execution_id": "3953", - "workflow": { - "id": "248", - "name": "InMemoryVectorStore:*", - "active": false - }, - "node": "Question and Answer Chain2" - }, - "recursionLimit": 25, - "runName": "[InMemoryVectorStore:*] Question and Answer Chain2", - "signal": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Vector Store Retriever2", - "runIndex": 0 - } - ] - } - } - ], - "In-Memory Vector Store2": [ - { - "startTime": 1747344011084, - "executionTime": 489, - "executionIndex": 13, - "executionStatus": "success", - "source": [ - { - "previousNode": "Vector Store Retriever2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "In-Memory Vector Store2", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI7": [ - { - "startTime": 1747344011084, - "executionTime": 489, - "executionIndex": 14, - "executionStatus": "success", - "source": [ - { - "previousNode": "In-Memory Vector Store2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI7", - "runIndex": 0 - } - ] - } - } - ], - "OpenAI Chat Model2": [ - { - "startTime": 1747344011576, - "executionTime": 776, - "executionIndex": 15, - "executionStatus": "success", - "source": [ - { - "previousNode": "Question and Answer Chain2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2071, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - } - ] - } - } - ], - "Question and Answer Chain2": [ - { - "startTime": 1747344011076, - "executionIndex": 11, - "source": [ - { - "previousNode": "Check Vector Store Retrieval2" - } - ], - "hints": [], - "executionTime": 1277, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": "80 bytes" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields2": [ - { - "startTime": 1747344012353, - "executionIndex": 16, - "source": [ - { - "previousNode": "Question and Answer Chain2" - } - ], - "hints": [], - "executionTime": 4, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Token Splitter2": [ - { - "subRun": [ - { - "node": "Token Splitter2", - "runIndex": 0 - } - ] - } - ], - "Default Data Loader2": [ - { - "subRun": [ - { - "node": "Default Data Loader2", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI6": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI6", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI8": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI8", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI7": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI7", - "runIndex": 0 - } - ] - } - ], - "In-Memory Vector Store2": [ - { - "subRun": [ - { - "node": "In-Memory Vector Store2", - "runIndex": 0 - } - ] - } - ], - "Vector Store Retriever2": [ - { - "subRun": [ - { - "node": "Vector Store Retriever2", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model2": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:59.184Z", - "stoppedAt": "2025-05-15T21:20:12.357Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/249-snapshot.json b/test-workflows/snapshots/249-snapshot.json deleted file mode 100644 index df2aa3f608..0000000000 --- a/test-workflows/snapshots/249-snapshot.json +++ /dev/null @@ -1,324 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343999564, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Baseline": [ - { - "startTime": 1747343999564, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "baseline_summary": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set Article": [ - { - "startTime": 1747343999564, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set Baseline" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 10, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\"." - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747343999593, - "executionTime": 1462, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Summary - Simple - Stuff", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Write a concise summary of the following:\n\n\n\"The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who\n\ndancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".\"\n\n\nCONCISE SUMMARY:" - ], - "estimatedTokens": 1626, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Summary - Simple - Stuff": [ - { - "startTime": 1747343999574, - "executionIndex": 3, - "source": [ - { - "previousNode": "Set Article" - } - ], - "hints": [], - "executionTime": 1481, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747344001065, - "executionTime": 1074, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "Evaluate to Baseline", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: You are assessing a submitted answer on a given task or input based on a set of criteria. Here is the data:\n[BEGIN DATA]\n***\n[Input]: Summarize Wikipedia article about the dancing plague of 1518\n***\n[Submission]: The dancing plague of 1518 was a case of dancing mania that occurred in Strasbourg, Alsace, where between 50 and 400 people danced uncontrollably for weeks. The cause of the phenomenon is debated, with theories including stress-induced mass hysteria, ergot poisoning, and religious explanations. The outbreak eventually subsided when the dancers were sent to a shrine to pray for absolution. The veracity of deaths during the plague is disputed, with some sources claiming fatalities while others do not mention any deaths. Modern theories suggest food poisoning or stress-induced mass hysteria as possible explanations. The event has inspired various works of art and media, including films, songs, and novels.\n***\n[Criteria]: helpfulness: Is the submission helpful, insightful, and appropriate? If so, response Y. If not, respond N.\n***\n[Reference]: The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.\n***\n[END DATA]\nDoes the submission meet the Criteria? First, write out in a step by step manner your reasoning about each criterion to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character \"Y\" or \"N\" (without quotes or punctuation) on its own line corresponding to the correct answer of whether the submission meets all criteria. At the end, repeat just the letter again by itself on a new line." - ], - "estimatedTokens": 424, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Evaluate to Baseline": [ - { - "startTime": 1747344001055, - "executionIndex": 5, - "source": [ - { - "previousNode": "Summary - Simple - Stuff" - } - ], - "hints": [], - "executionTime": 1086, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "reasoning": "1. Is the submission helpful?- The submission provides a concise summary of the Wikipedia article about the dancing plague of 1518, including key details such as the location, number of people involved, possible causes, and the outcome of the event.- The submission also mentions the controversy surrounding the number of deaths and the inspiration for various works of art and media.- Overall, the submission is informative and covers the main points of the topic.Based on the above analysis, the submission is helpful, insightful, and appropriate.Y", - "value": "Y", - "score": 1 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Evaluate to Baseline" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:59.564Z", - "stoppedAt": "2025-05-15T21:20:02.141Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/250-snapshot.json b/test-workflows/snapshots/250-snapshot.json deleted file mode 100644 index 3e4363a298..0000000000 --- a/test-workflows/snapshots/250-snapshot.json +++ /dev/null @@ -1,946 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747343999763, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Code": [ - { - "startTime": 1747343999763, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Default Data Loader": [ - { - "startTime": 1747343999765, - "executionTime": 6, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "Pinecone Vector Store", - "previousNodeRun": 0 - } - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Default Data Loader", - "runIndex": 0 - } - ] - } - } - ], - "Token Splitter": [ - { - "startTime": 1747343999766, - "executionTime": 4, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Default Data Loader", - "previousNodeRun": 0 - } - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI": [ - { - "startTime": 1747344000511, - "executionTime": 851, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "Pinecone Vector Store", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - } - ] - } - } - ], - "Pinecone Vector Store": [ - { - "startTime": 1747343999765, - "executionIndex": 2, - "source": [ - { - "previousNode": "Code" - } - ], - "hints": [], - "executionTime": 3065, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Populated": [ - { - "startTime": 1747344002830, - "executionIndex": 6, - "source": [ - { - "previousNode": "Pinecone Vector Store" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Wait": [ - { - "startTime": 1747344002832, - "executionIndex": 7, - "source": [ - { - "previousNode": "Check Vector Store Populated" - } - ], - "hints": [], - "executionTime": 15000, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI10": [ - { - "startTime": 1747344017838, - "executionTime": 771, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "Pinecone Vector Store1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is bitcoin?" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI10", - "runIndex": 0 - } - ] - } - } - ], - "Pinecone Vector Store1": [ - { - "startTime": 1747344017832, - "executionIndex": 8, - "source": [ - { - "previousNode": "Wait" - } - ], - "hints": [], - "executionTime": 1228, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "document": { - "object": true - }, - "score": 0.438440055 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.383340061 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.333085746 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.329191238 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Retrieval": [ - { - "startTime": 1747344019060, - "executionIndex": 10, - "source": [ - { - "previousNode": "Pinecone Vector Store1" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vector Store Retriever": [ - { - "startTime": 1747344019067, - "executionTime": 713, - "executionIndex": 12, - "executionStatus": "success", - "source": [ - { - "previousNode": "Question and Answer Chain", - "previousNodeRun": 0 - } - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "config": { - "tags": [], - "metadata": { - "execution_id": "3955", - "workflow": { - "id": "250", - "name": "PineconeVectorStore:*", - "active": false - }, - "node": "Question and Answer Chain" - }, - "recursionLimit": 25, - "runName": "[PineconeVectorStore:*] Question and Answer Chain", - "signal": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Vector Store Retriever", - "runIndex": 0 - } - ] - } - } - ], - "Pinecone Vector Store2": [ - { - "startTime": 1747344019067, - "executionTime": 713, - "executionIndex": 13, - "executionStatus": "success", - "source": [ - { - "previousNode": "Vector Store Retriever", - "previousNodeRun": 0 - } - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Pinecone Vector Store2", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI9": [ - { - "startTime": 1747344019067, - "executionTime": 600, - "executionIndex": 14, - "executionStatus": "success", - "source": [ - { - "previousNode": "Pinecone Vector Store2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI9", - "runIndex": 0 - } - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747344019786, - "executionTime": 362, - "executionIndex": 15, - "executionStatus": "success", - "source": [ - { - "previousNode": "Question and Answer Chain", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2071, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Question and Answer Chain": [ - { - "startTime": 1747344019062, - "executionIndex": 11, - "source": [ - { - "previousNode": "Check Vector Store Retrieval" - } - ], - "hints": [], - "executionTime": 1086, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": "80 bytes" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields": [ - { - "startTime": 1747344020148, - "executionIndex": 16, - "source": [ - { - "previousNode": "Question and Answer Chain" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Token Splitter": [ - { - "subRun": [ - { - "node": "Token Splitter", - "runIndex": 0 - } - ] - } - ], - "Default Data Loader": [ - { - "subRun": [ - { - "node": "Default Data Loader", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI10": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI10", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI9": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI9", - "runIndex": 0 - } - ] - } - ], - "Pinecone Vector Store2": [ - { - "subRun": [ - { - "node": "Pinecone Vector Store2", - "runIndex": 0 - } - ] - } - ], - "Vector Store Retriever": [ - { - "subRun": [ - { - "node": "Vector Store Retriever", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:19:59.763Z", - "stoppedAt": "2025-05-15T21:20:20.150Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/251-snapshot.json b/test-workflows/snapshots/251-snapshot.json deleted file mode 100644 index e4a5bfb741..0000000000 --- a/test-workflows/snapshots/251-snapshot.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747344000257, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747344000262, - "executionTime": 886, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist. However, above all else, all responses must adhere to the format of RESPONSE FORMAT INSTRUCTIONS.\nHuman: TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nRESPONSE FORMAT INSTRUCTIONS\n----------------------------\n\nOutput a JSON markdown code snippet containing a valid JSON object in one of two formats:\n\n**Option 1:**\nUse this if you want the human to use a tool.\nMarkdown code snippet formatted in the following schema:\n\n```json\n{\n \"action\": string, // The action to take. Must be one of [calculator]\n \"action_input\": string // The input to the action. May be a stringified object.\n}\n```\n\n**Option #2:**\nUse this if you want to respond directly and conversationally to the human. Markdown code snippet formatted in the following schema:\n\n```json\n{\n \"action\": \"Final Answer\",\n \"action_input\": string // You should put what you want to return to user here and make sure to use valid json newline characters.\n}\n```\n\nFor both options, remember to always include the surrounding markdown code snippet delimiters (begin with \"```json\" and end with \"```\")!\n\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\nWhat is the result of 30 + (10002200 / 100)? Only respond with a number." - ], - "estimatedTokens": 567, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344001150, - "executionTime": 691, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist. However, above all else, all responses must adhere to the format of RESPONSE FORMAT INSTRUCTIONS.\nHuman: TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\ncalculator: Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.\n\nRESPONSE FORMAT INSTRUCTIONS\n----------------------------\n\nOutput a JSON markdown code snippet containing a valid JSON object in one of two formats:\n\n**Option 1:**\nUse this if you want the human to use a tool.\nMarkdown code snippet formatted in the following schema:\n\n```json\n{\n \"action\": string, // The action to take. Must be one of [calculator]\n \"action_input\": string // The input to the action. May be a stringified object.\n}\n```\n\n**Option #2:**\nUse this if you want to respond directly and conversationally to the human. Markdown code snippet formatted in the following schema:\n\n```json\n{\n \"action\": \"Final Answer\",\n \"action_input\": string // You should put what you want to return to user here and make sure to use valid json newline characters.\n}\n```\n\nFor both options, remember to always include the surrounding markdown code snippet delimiters (begin with \"```json\" and end with \"```\")!\n\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\nWhat is the result of 30 + (10002200 / 100)? Only respond with a number.\nAI: ```json\n{\n \"action\": \"calculator\",\n \"action_input\": \"30 + (10002200 / 100)\"\n}\n```\nHuman: TOOL RESPONSE:\n---------------------\n100052\n\nUSER'S INPUT\n--------------------\n\nOkay, so what is the response to my last comment? If using information obtained from the tools you must mention it explicitly without mentioning the tool names - I have forgotten all TOOL RESPONSES! Remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else." - ], - "estimatedTokens": 675, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Calculator1": [ - { - "startTime": 1747344001148, - "executionTime": 1, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "100052" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "30 + (10002200 / 100)" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Calculator1", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent1": [ - { - "startTime": 1747344000257, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1584, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "The result of your calculation is 100052.", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AI Agent1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - ], - "Calculator1": [ - { - "subRun": [ - { - "node": "Calculator1", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:00.257Z", - "stoppedAt": "2025-05-15T21:20:01.841Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/252-snapshot.json b/test-workflows/snapshots/252-snapshot.json deleted file mode 100644 index dd909a8db0..0000000000 --- a/test-workflows/snapshots/252-snapshot.json +++ /dev/null @@ -1,1719 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "hints": [], - "startTime": 1727952497590, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Code": [ - { - "hints": [], - "startTime": 1727952497590, - "executionTime": 15, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Default Data Loader1": [ - { - "startTime": 1727952497624, - "executionTime": 377, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Token Splitter1": [ - { - "startTime": 1727952497625, - "executionTime": 375, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - } - } - ], - "Embeddings OpenAI4": [ - { - "startTime": 1727952498054, - "executionTime": 608, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - } - } - ], - "Postgres PGVector Store": [ - { - "hints": [], - "startTime": 1727952497605, - "executionTime": 1078, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter1", - "runIndex": 0 - }, - { - "node": "Default Data Loader1", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI4", - "runIndex": 0 - } - ] - } - } - ], - "Default Data Loader3": [ - { - "startTime": 1727952498685, - "executionTime": 8, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Token Splitter3": [ - { - "startTime": 1727952498685, - "executionTime": 7, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - } - } - ], - "Embeddings OpenAI8": [ - { - "startTime": 1727952498712, - "executionTime": 833, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - } - } - ], - "Postgres PGVector Store6": [ - { - "hints": [], - "startTime": 1727952498683, - "executionTime": 876, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter3", - "runIndex": 0 - }, - { - "node": "Default Data Loader3", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI8", - "runIndex": 0 - } - ] - } - } - ], - "Default Data Loader4": [ - { - "startTime": 1727952499561, - "executionTime": 6, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Token Splitter4": [ - { - "startTime": 1727952499561, - "executionTime": 5, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - } - } - ], - "Embeddings OpenAI9": [ - { - "startTime": 1727952499585, - "executionTime": 1173, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - } - } - ], - "Postgres PGVector Store7": [ - { - "hints": [], - "startTime": 1727952499559, - "executionTime": 1215, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter4", - "runIndex": 0 - }, - { - "node": "Default Data Loader4", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI9", - "runIndex": 0 - } - ] - } - } - ], - "Postgres PGVector Store3": [ - { - "startTime": 1727952500811, - "executionTime": 211, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "Some query", - "k": 40 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI": [ - { - "startTime": 1727952500811, - "executionTime": 206, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "Some query" - } - } - ] - ] - } - } - ], - "LangChain Code": [ - { - "hints": [], - "startTime": 1727952500774, - "executionTime": 249, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "documents": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - }, - { - "node": "Postgres PGVector Store3", - "runIndex": 0 - } - ] - } - } - ], - "Edit Fields": [ - { - "hints": [], - "startTime": 1727952501023, - "executionTime": 2, - "source": [ - { - "previousNode": "LangChain Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_correct_length": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vector Store Retriever1": [ - { - "startTime": 1727952501043, - "executionTime": 430, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - } - } - ], - "Postgres PGVector Store2": [ - { - "startTime": 1727952501043, - "executionTime": 430, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 40 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI3": [ - { - "startTime": 1727952501043, - "executionTime": 423, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1727952501482, - "executionTime": 782, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: Use the following pieces of context to answer the users question. \nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\n new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\n\n model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest\n\n1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4\n\n see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early\n\n ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k \n\nBitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution\n\n uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash\n\n, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9\n\n ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 5882, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": {}, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Question and Answer Chain1": [ - { - "hints": [], - "startTime": 1727952501025, - "executionTime": 1240, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI3", - "runIndex": 0 - }, - { - "node": "Postgres PGVector Store2", - "runIndex": 0 - }, - { - "node": "Vector Store Retriever1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - } - ], - "Edit Fields1": [ - { - "hints": [], - "startTime": 1727952502265, - "executionTime": 2, - "source": [ - { - "previousNode": "Question and Answer Chain1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI5": [ - { - "startTime": 1727952502288, - "executionTime": 227, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "n8n_vectors" - } - } - ] - ] - } - } - ], - "Postgres PGVector Store1": [ - { - "hints": [], - "startTime": 1727952502267, - "executionTime": 255, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "document": { - "object": true - }, - "score": 0.827576607465744 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8277368792217039 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8307313815849079 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8333492577075958 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8375973798276553 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8381176336863466 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8473298135602686 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8492151380520884 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8496658981244675 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8727368712425232 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.8730872796125839 - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "document": { - "object": true - }, - "score": 0.886498898267746 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI5", - "runIndex": 0 - } - ] - } - } - ], - "Aggregate": [ - { - "hints": [], - "startTime": 1727952502523, - "executionTime": 0, - "source": [ - { - "previousNode": "Postgres PGVector Store1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "documents": [ - "json array" - ] - }, - "pairedItem": [ - { - "item": 0 - }, - { - "item": 1 - }, - { - "item": 2 - }, - { - "item": 3 - }, - { - "item": 4 - }, - { - "item": 5 - }, - { - "item": 6 - }, - { - "item": 7 - }, - { - "item": 8 - }, - { - "item": 9 - }, - { - "item": 10 - }, - { - "item": 11 - } - ] - } - ] - ] - } - } - ], - "Edit Fields2": [ - { - "hints": [], - "startTime": 1727952502523, - "executionTime": 0, - "source": [ - { - "previousNode": "Aggregate" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_correct_length": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Postgres": [ - { - "hints": [], - "startTime": 1727952502523, - "executionTime": 19, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": [ - { - "item": 0 - } - ] - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Postgres" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Postgres PGVector Store": [ - { - "subRun": [ - { - "node": "Token Splitter1", - "runIndex": 0 - }, - { - "node": "Default Data Loader1", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI4", - "runIndex": 0 - } - ] - } - ], - "Postgres PGVector Store6": [ - { - "subRun": [ - { - "node": "Token Splitter3", - "runIndex": 0 - }, - { - "node": "Default Data Loader3", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI8", - "runIndex": 0 - } - ] - } - ], - "Postgres PGVector Store7": [ - { - "subRun": [ - { - "node": "Token Splitter4", - "runIndex": 0 - }, - { - "node": "Default Data Loader4", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI9", - "runIndex": 0 - } - ] - } - ], - "LangChain Code": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - }, - { - "node": "Postgres PGVector Store3", - "runIndex": 0 - } - ] - } - ], - "Question and Answer Chain1": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI3", - "runIndex": 0 - }, - { - "node": "Postgres PGVector Store2", - "runIndex": 0 - }, - { - "node": "Vector Store Retriever1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ], - "Postgres PGVector Store1": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI5", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-10-03T10:48:17.588Z", - "stoppedAt": "2024-10-03T10:48:22.542Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/253-snapshot.json b/test-workflows/snapshots/253-snapshot.json deleted file mode 100644 index dc337826c8..0000000000 --- a/test-workflows/snapshots/253-snapshot.json +++ /dev/null @@ -1,1821 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747344001053, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Window Buffer Memory1": [ - { - "startTime": 1747344001060, - "executionTime": 0, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent5", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Window Buffer Memory1", - "runIndex": 0 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 1 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 2 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 3 - } - ] - } - }, - { - "startTime": 1747344004762, - "executionTime": 0, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent5", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [], - "output": { - "english_answer": "Magnets are special things that can pull some metals, like iron, towards them. They can stick to your fridge or make toys move without touching them! There are two sides to a magnet: one side is called 'north' and the other is 'south.' If you put two magnets together, the north side of one will stick to the south side of the other, but if you try to put two north sides together, they will push away from each other!", - "czech_answer": "Magnety jsou zvláštní věci, které mohou přitahovat některé kovy, jako je železo. Mohou se přichytit na vaši lednici nebo pohybovat hračkami, aniž byste se jich dotkli! Magnet má dvě strany: jedna se nazývá 'sever' a druhá 'jih.' Když dáte dva magnety k sobě, severní strana jednoho se přichytí k jižní straně druhého, ale když se pokusíte dát dvě severní strany k sobě, budou se od sebe odtlačovat!" - } - } - } - } - ] - ] - } - }, - { - "startTime": 1747344004765, - "executionTime": 0, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - } - }, - { - "startTime": 1747344005687, - "executionTime": 0, - "executionIndex": 10, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [ - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "HumanMessage" - ], - "kwargs": { - "content": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "additional_kwargs": {}, - "response_metadata": {} - } - }, - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "AIMessage" - ], - "kwargs": { - "content": "{\"output\":{\"english_answer\":\"Magnets are special things that can pull some metals, like iron, towards them. They can stick to your fridge or make toys move without touching them! There are two sides to a magnet: one side is called 'north' and the other is 'south.' If you put two magnets together, the north side of one will stick to the south side of the other, but if you try to put two north sides together, they will push away from each other!\",\"czech_answer\":\"Magnety jsou zvláštní věci, které mohou přitahovat některé kovy, jako je železo. Mohou se přichytit na vaši lednici nebo pohybovat hračkami, aniž byste se jich dotkli! Magnet má dvě strany: jedna se nazývá 'sever' a druhá 'jih.' Když dáte dva magnety k sobě, severní strana jednoho se přichytí k jižní straně druhého, ale když se pokusíte dát dvě severní strany k sobě, budou se od sebe odtlačovat!\"}}", - "tool_calls": [], - "invalid_tool_calls": [], - "additional_kwargs": {}, - "response_metadata": {} - } - } - ], - "output": { - "english_answer": "Yes, your name is Oleg!", - "czech_answer": "Ano, vaše jméno je Oleg!" - } - } - } - } - ] - ] - } - } - ], - "OpenAI Chat Model3": [ - { - "startTime": 1747344001063, - "executionTime": 3698, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent5", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Hi, my name is Oleg. Tell me about magnets like I'm 5." - ], - "estimatedTokens": 122, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.1, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model3", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344004773, - "executionTime": 913, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Hi, my name is Oleg. Tell me about magnets like I'm 5.\nAI: {\"output\":{\"english_answer\":\"Magnets are special things that can pull some metals, like iron, towards them. They can stick to your fridge or make toys move without touching them! There are two sides to a magnet: one side is called 'north' and the other is 'south.' If you put two magnets together, the north side of one will stick to the south side of the other, but if you try to put two north sides together, they will push away from each other!\",\"czech_answer\":\"Magnety jsou zvláštní věci, které mohou přitahovat některé kovy, jako je železo. Mohou se přichytit na vaši lednici nebo pohybovat hračkami, aniž byste se jich dotkli! Magnet má dvě strany: jedna se nazývá 'sever' a druhá 'jih.' Když dáte dva magnety k sobě, severní strana jednoho se přichytí k jižní straně druhého, ale když se pokusíte dát dvě severní strany k sobě, budou se od sebe odtlačovat!\"}}\nHuman: Can you still remember my name?" - ], - "estimatedTokens": 373, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.1, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Structured Output Parser1": [ - { - "startTime": 1747344004761, - "executionTime": 0, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent5", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"english_answer\":\"Magnets are special things that can pull some metals, like iron, towards them. They can stick to your fridge or make toys move without touching them! There are two sides to a magnet: one side is called 'north' and the other is 'south.' If you put two magnets together, the north side of one will stick to the south side of the other, but if you try to put two north sides together, they will push away from each other!\",\"czech_answer\":\"Magnety jsou zvláštní věci, které mohou přitahovat některé kovy, jako je železo. Mohou se přichytit na vaši lednici nebo pohybovat hračkami, aniž byste se jich dotkli! Magnet má dvě strany: jedna se nazývá 'sever' a druhá 'jih.' Když dáte dva magnety k sobě, severní strana jednoho se přichytí k jižní straně druhého, ale když se pokusíte dát dvě severní strany k sobě, budou se od sebe odtlačovat!\"}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - }, - { - "node": "Structured Output Parser1", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344005686, - "executionTime": 0, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent3", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"english_answer\":\"Yes, your name is Oleg!\",\"czech_answer\":\"Ano, vaše jméno je Oleg!\"}}" - } - } - ] - ] - } - } - ], - "AI Agent5": [ - { - "startTime": 1747344001053, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 3709, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AI Agent3": [ - { - "startTime": 1747344004762, - "executionIndex": 6, - "source": [ - { - "previousNode": "AI Agent5" - } - ], - "hints": [], - "executionTime": 925, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields1": [ - { - "startTime": 1747344005687, - "executionIndex": 11, - "source": [ - { - "previousNode": "AI Agent3" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contain_both_answers": true, - "recalled_name": "true" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model2": [ - { - "startTime": 1747344005694, - "executionTime": 558, - "executionIndex": 13, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Fetch example website" - ], - "estimatedTokens": 13, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.3, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344006735, - "executionTime": 6742, - "executionIndex": 15, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Fetch example website\nAI: \nTool: \n\n\n Example Domain\n\n \n \n \n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

More information...

\n
\n\n\n" - ], - "estimatedTokens": 378, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.3, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "HTTP Request": [ - { - "startTime": 1747344006253, - "executionTime": 481, - "executionIndex": 14, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent2", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "\n\n\n Example Domain\n\n \n \n \n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

More information...

\n
\n\n\n" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": {} - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "HTTP Request", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent2": [ - { - "startTime": 1747344005690, - "executionIndex": 12, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 7788, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "Here is the content of the example website:\n\n```html\n\n\n\n Example Domain\n\n \n \n \n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

More information...

\n
\n\n\n```\n\n### Summary of the Content:\n- **Title**: Example Domain\n- **Description**: This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n- **Link**: [More information...](https://www.iana.org/domains/example) \n\nThe page has a simple layout with a heading, a paragraph, and a link.", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields9": [ - { - "startTime": 1747344013478, - "executionIndex": 16, - "source": [ - { - "previousNode": "AI Agent2" - } - ], - "hints": [], - "executionTime": 4, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "empty_args": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747344013488, - "executionTime": 791, - "executionIndex": 18, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!']." - ], - "estimatedTokens": 32, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.3, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344014286, - "executionTime": 710, - "executionIndex": 20, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].\nAI: \nTool: This, Is, An, Array!" - ], - "estimatedTokens": 46, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.3, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Code Tool": [ - { - "startTime": 1747344014280, - "executionTime": 4, - "executionIndex": 19, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "This, Is, An, Array!" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": { - "strings_array": [ - "This", - "Is", - "An", - "Array!" - ] - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Code Tool", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent1": [ - { - "startTime": 1747344013482, - "executionIndex": 17, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1515, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "The JSON array has been converted to a single string: \"This, Is, An, Array!\"", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields8": [ - { - "startTime": 1747344014997, - "executionIndex": 21, - "source": [ - { - "previousNode": "AI Agent1" - } - ], - "hints": [], - "executionTime": 8, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "passed_array_parameter": { - "object": true - }, - "has_correct_length": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747344015011, - "executionTime": 612, - "executionIndex": 23, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Tell me about M.C. Escher" - ], - "estimatedTokens": 91, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.1, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344015633, - "executionTime": 1154, - "executionIndex": 25, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Tell me about M.C. Escher\nAI: \nTool: {\n \"response\": \"Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\\n\\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\\n\\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\\n\\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\\n\\nExhibitions\\n\\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]\"\n}" - ], - "estimatedTokens": 867, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0.1, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Search Wiki": [ - { - "startTime": 1747344015624, - "executionTime": 7, - "executionIndex": 24, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\n\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\n\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\n\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\n\nExhibitions\n\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "M.C. Escher" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "3991", - "workflowId": "253" - }, - "subRun": [ - { - "node": "Search Wiki", - "runIndex": 0 - } - ] - } - } - ], - "Structured Output Parser": [ - { - "startTime": 1747344016787, - "executionTime": 1, - "executionIndex": 26, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"name\":\"Maurits Cornelis Escher\",\"birthDate\":\"1898-06-17\",\"deathDate\":\"1972-03-27\",\"nationality\":\"Dutch\",\"profession\":\"Graphic Artist\",\"notableWorks\":[\"Relativity\",\"Waterfall\",\"Ascending and Descending\",\"Drawing Hands\",\"Metamorphosis II\"]}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent": [ - { - "startTime": 1747344015005, - "executionIndex": 22, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1784, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields7": [ - { - "startTime": 1747344016789, - "executionIndex": 27, - "source": [ - { - "previousNode": "AI Agent" - } - ], - "hints": [], - "executionTime": 8, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_birth_date": true, - "has_death_date": "true", - "has_name": "true", - "has_works": "false" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model4": [ - { - "startTime": 1747344016801, - "executionTime": 1075, - "executionIndex": 29, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once." - ], - "estimatedTokens": 50, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344017902, - "executionTime": 5549, - "executionIndex": 32, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.\nAI: \nTool: {\n \"response\": \"{\\n \\\"created\\\": \\\"2024-03-04T09:26:23+01:00\\\",\\n \\\"symbolCode\\\": {\\n \\\"next1Hour\\\": \\\"fog\\\"\\n },\\n \\\"temperature\\\": {\\n \\\"value\\\": 5.1,\\n \\\"feelsLike\\\": 4\\n },\\n \\\"precipitation\\\": {\\n \\\"value\\\": 0.0\\n },\\n \\\"wind\\\": {\\n \\\"direction\\\": 275,\\n \\\"speed\\\": 1.7\\n },\\n \\\"status\\\": {\\n \\\"code\\\": \\\"Ok\\\"\\n }\\n}\"\n}\nTool: {\n \"response\": \"[\\n {\\n \\\"description\\\": \\\"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\\\n\\\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\\\",\\n \\\"name\\\": \\\"Movie Barf: Dune – Part Two\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\\\",\\n \\\"name\\\": \\\"Luboš Pospíšil & 5P\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\\\",\\n \\\"name\\\": \\\"Fight Club\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\\\",\\n \\\"name\\\": \\\"Poor Things\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\\\",\\n \\\"name\\\": \\\"Tribute to World Legends: Michael Jackson\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n }\\n]\"\n}" - ], - "estimatedTokens": 862, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Get Weather": [ - { - "startTime": 1747344017877, - "executionTime": 22, - "executionIndex": 30, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "{\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "3992", - "workflowId": "253" - }, - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - } - ], - "Get Events": [ - { - "startTime": 1747344017878, - "executionTime": 21, - "executionIndex": 31, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent4", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "3993", - "workflowId": "253" - }, - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent4": [ - { - "startTime": 1747344016797, - "executionIndex": 28, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 6656, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "### Weather in Berlin, Germany\n- **Current Temperature**: 5.1°C (Feels like 4°C)\n- **Weather Condition**: Fog\n- **Wind**: 1.7 m/s from the west (275°)\n- **Precipitation**: None expected\n\n### Upcoming Events in Berlin\n1. **Movie Barf: Dune – Part Two**\n - **Description**: A new English-friendly film night featuring *Dune: Part Two*, where Paul Atreides seeks revenge against the conspirators who destroyed his family. Includes intriguing chats with guests and special drink offers.\n - **End Date**: March 4, 2024, 23:59\n\n2. **Luboš Pospíšil & 5P**\n - **Description**: Performance by Luboš Pospíšil with the band 5P at the cultural house of Barikadníků.\n - **End Date**: March 4, 2024, 23:59\n\n3. **Fight Club**\n - **Description**: A film screening about an insomniac office worker who forms an underground fight club that evolves into something much more.\n - **End Date**: March 4, 2024, 23:59\n\n4. **Poor Things**\n - **Description**: A film about Bella Baxter, a young woman brought back to life by an unorthodox scientist, who embarks on a whirlwind adventure seeking equality and liberation.\n - **End Date**: March 4, 2024, 23:59\n\n5. **Tribute to World Legends: Michael Jackson**\n - **Description**: A concert paying tribute to the King of Pop, Michael Jackson, in a jazz style by Bharata Rajnošek.\n - **End Date**: March 4, 2024, 23:59\n\n### Summary\nYou can enjoy a cozy day in Berlin with foggy weather, perfect for indoor activities. Consider attending one of the film screenings or the Michael Jackson tribute concert for a fun evening!" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields6": [ - { - "startTime": 1747344023453, - "executionIndex": 33, - "source": [ - { - "previousNode": "AI Agent4" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_weather": true, - "has_movie": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Window Buffer Memory1": [ - { - "subRun": [ - { - "node": "Window Buffer Memory1", - "runIndex": 0 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 1 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 2 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 3 - } - ] - } - ], - "OpenAI Chat Model3": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model3", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model3", - "runIndex": 1 - } - ] - } - ], - "Structured Output Parser1": [ - { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - }, - { - "node": "Structured Output Parser1", - "runIndex": 1 - } - ] - } - ], - "OpenAI Chat Model2": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - } - ] - } - ], - "HTTP Request": [ - { - "subRun": [ - { - "node": "HTTP Request", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - ], - "Code Tool": [ - { - "subRun": [ - { - "node": "Code Tool", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - ], - "Search Wiki": [ - { - "subRun": [ - { - "node": "Search Wiki", - "runIndex": 0 - } - ] - } - ], - "Structured Output Parser": [ - { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model4": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model4", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model4", - "runIndex": 1 - } - ] - } - ], - "Get Weather": [ - { - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - ], - "Get Events": [ - { - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.053Z", - "stoppedAt": "2025-05-15T21:20:23.454Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/254-snapshot.json b/test-workflows/snapshots/254-snapshot.json deleted file mode 100644 index 2113c3a2e4..0000000000 --- a/test-workflows/snapshots/254-snapshot.json +++ /dev/null @@ -1,1763 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1746522733442, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Window Buffer Memory1": [ - { - "startTime": 1746522733448, - "executionTime": 0, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Window Buffer Memory1", - "runIndex": 0 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 1 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 2 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 3 - } - ] - } - }, - { - "startTime": 1746522736491, - "executionTime": 0, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [], - "output": { - "english_answer": "Magnets are special things that can pull other things towards them. They have a special power inside that makes them able to attract certain objects, like metal. You can play with magnets and see how they stick to things! Some magnets are really strong and can even pick up heavy objects. Magnets are used in lots of things we use every day, like your refrigerator or your toys. Isn't that cool?", - "czech_answer": "Magnety jsou speciální věci, které mohou přitahovat jiné věci k sobě. Mají v sobě zvláštní sílu, která jim umožňuje přitahovat určité předměty, jako je kov. Můžeš si s magnety hrát a vidět, jak se k věcem lepí! Některé magnety jsou opravdu silné a mohou zvedat i těžké předměty. Magnety se používají v mnoha věcech, které používáme každý den, jako je tvá lednice nebo tvé hračky. Není to skvělé?" - } - } - } - } - ] - ] - } - }, - { - "startTime": 1746522736493, - "executionTime": 0, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - } - }, - { - "startTime": 1746522737598, - "executionTime": 0, - "executionIndex": 10, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "Can you still remember my name?", - "system_message": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [ - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "HumanMessage" - ], - "kwargs": { - "content": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "additional_kwargs": {}, - "response_metadata": {} - } - }, - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "AIMessage" - ], - "kwargs": { - "content": "{\"output\":{\"english_answer\":\"Magnets are special things that can pull other things towards them. They have a special power inside that makes them able to attract certain objects, like metal. You can play with magnets and see how they stick to things! Some magnets are really strong and can even pick up heavy objects. Magnets are used in lots of things we use every day, like your refrigerator or your toys. Isn't that cool?\",\"czech_answer\":\"Magnety jsou speciální věci, které mohou přitahovat jiné věci k sobě. Mají v sobě zvláštní sílu, která jim umožňuje přitahovat určité předměty, jako je kov. Můžeš si s magnety hrát a vidět, jak se k věcem lepí! Některé magnety jsou opravdu silné a mohou zvedat i těžké předměty. Magnety se používají v mnoha věcech, které používáme každý den, jako je tvá lednice nebo tvé hračky. Není to skvělé?\"}}", - "tool_calls": [], - "invalid_tool_calls": [], - "additional_kwargs": {}, - "response_metadata": {} - } - } - ], - "output": { - "english_answer": "Yes, your name is Oleg.", - "czech_answer": "Ano, tvé jméno je Oleg." - } - } - } - } - ] - ] - } - } - ], - "Anthropic Chat Model5": [ - { - "startTime": 1746522733451, - "executionTime": 3010, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Hi, my name is Oleg. Tell me about magnets like I'm 5." - ], - "estimatedTokens": 122, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model5", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model5", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1746522736497, - "executionTime": 1100, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise.\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Hi, my name is Oleg. Tell me about magnets like I'm 5.\nAI: {\"output\":{\"english_answer\":\"Magnets are special things that can pull other things towards them. They have a special power inside that makes them able to attract certain objects, like metal. You can play with magnets and see how they stick to things! Some magnets are really strong and can even pick up heavy objects. Magnets are used in lots of things we use every day, like your refrigerator or your toys. Isn't that cool?\",\"czech_answer\":\"Magnety jsou speciální věci, které mohou přitahovat jiné věci k sobě. Mají v sobě zvláštní sílu, která jim umožňuje přitahovat určité předměty, jako je kov. Můžeš si s magnety hrát a vidět, jak se k věcem lepí! Některé magnety jsou opravdu silné a mohou zvedat i těžké předměty. Magnety se používají v mnoha věcech, které používáme každý den, jako je tvá lednice nebo tvé hračky. Není to skvělé?\"}}\nHuman: Can you still remember my name?" - ], - "estimatedTokens": 358, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - } - ], - "Structured Output Parser1": [ - { - "startTime": 1746522736462, - "executionTime": 1, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"english_answer\":\"Magnets are special things that can pull other things towards them. They have a special power inside that makes them able to attract certain objects, like metal. You can play with magnets and see how they stick to things! Some magnets are really strong and can even pick up heavy objects. Magnets are used in lots of things we use every day, like your refrigerator or your toys. Isn't that cool?\",\"czech_answer\":\"Magnety jsou speciální věci, které mohou přitahovat jiné věci k sobě. Mají v sobě zvláštní sílu, která jim umožňuje přitahovat určité předměty, jako je kov. Můžeš si s magnety hrát a vidět, jak se k věcem lepí! Některé magnety jsou opravdu silné a mohou zvedat i těžké předměty. Magnety se používají v mnoha věcech, které používáme každý den, jako je tvá lednice nebo tvé hračky. Není to skvělé?\"}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - }, - { - "node": "Structured Output Parser1", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1746522737598, - "executionTime": 0, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"english_answer\":\"Yes, your name is Oleg.\",\"czech_answer\":\"Ano, tvé jméno je Oleg.\"}}" - } - } - ] - ] - } - } - ], - "AI Agent5": [ - { - "startTime": 1746522733442, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 3049, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AI Agent3": [ - { - "startTime": 1746522736491, - "executionIndex": 6, - "source": [ - { - "previousNode": "AI Agent5" - } - ], - "hints": [], - "executionTime": 1107, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields2": [ - { - "startTime": 1746522737599, - "executionIndex": 11, - "source": [ - { - "previousNode": "AI Agent3" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contain_both_answers": true, - "recalled_name": "true" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Anthropic Chat Model4": [ - { - "startTime": 1746522737608, - "executionTime": 737, - "executionIndex": 13, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Fetch example website" - ], - "estimatedTokens": 13, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model4", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model4", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1746522738869, - "executionTime": 1196, - "executionIndex": 15, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Fetch example website\nAI: [\n {\n \"index\": 0,\n \"type\": \"tool_use\",\n \"id\": \"toolu_016WJuPW6LgQaghP1ZUE1ocR\",\n \"name\": \"HTTP_Request\",\n \"input\": {}\n }\n]\nTool: \n\n\n Example Domain\n\n \n \n \n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

More information...

\n
\n\n\n" - ], - "estimatedTokens": 435, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - } - ], - "HTTP Request": [ - { - "startTime": 1746522738349, - "executionTime": 511, - "executionIndex": 14, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "\n\n\n Example Domain\n\n \n \n \n \n\n\n\n
\n

Example Domain

\n

This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.

\n

More information...

\n
\n\n\n" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": {} - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "HTTP Request", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent2": [ - { - "startTime": 1746522737601, - "executionIndex": 12, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 2470, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "The HTTP_Request tool fetched the content of the example website, which is a simple HTML page with some basic information about the example domain.", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields9": [ - { - "startTime": 1746522740071, - "executionIndex": 16, - "source": [ - { - "previousNode": "AI Agent2" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "empty_args": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Anthropic Chat Model3": [ - { - "startTime": 1746522740079, - "executionTime": 857, - "executionIndex": 18, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!']." - ], - "estimatedTokens": 32, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model3", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model3", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1746522740950, - "executionTime": 611, - "executionIndex": 20, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].\nAI: [\n {\n \"index\": 0,\n \"type\": \"tool_use\",\n \"id\": \"toolu_01Tayi7StUPcjbUZgxFhmTpn\",\n \"name\": \"array_merge\",\n \"input\": \"{\\\"strings_array\\\": [\\\"This\\\",\\\"Is\\\",\\\"An\\\",\\\"Array!\\\"]}\"\n }\n]\nTool: This, Is, An, Array!" - ], - "estimatedTokens": 117, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - } - ], - "Code Tool": [ - { - "startTime": 1746522740940, - "executionTime": 5, - "executionIndex": 19, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "This, Is, An, Array!" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": { - "strings_array": [ - "This", - "Is", - "An", - "Array!" - ] - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Code Tool", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent1": [ - { - "startTime": 1746522740074, - "executionIndex": 17, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1492, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "The JSON array ['This', 'Is', 'An', 'Array!'] has been merged into a single string \"This, Is, An, Array!\".", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields8": [ - { - "startTime": 1746522741566, - "executionIndex": 21, - "source": [ - { - "previousNode": "AI Agent1" - } - ], - "hints": [], - "executionTime": 7, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "passed_array_parameter": { - "object": true - }, - "has_correct_length": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Anthropic Chat Model": [ - { - "startTime": 1746522741582, - "executionTime": 1746, - "executionIndex": 23, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: Tell me about M.C. Escher" - ], - "estimatedTokens": 91, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model", - "runIndex": 0 - } - ] - } - } - ], - "Structured Output Parser": [ - { - "startTime": 1746522743329, - "executionTime": 1, - "executionIndex": 24, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"name\":\"Maurits Cornelis Escher\",\"birthDate\":\"1898-06-17\",\"deathDate\":\"1972-03-27\",\"nationality\":\"Dutch\",\"profession\":\"Graphic artist\",\"notableWorks\":[\"Relativity\",\"Ascending and Descending\",\"Waterfall\",\"Möbius Strip II\"]}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent": [ - { - "startTime": 1746522741573, - "executionIndex": 22, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 1758, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields7": [ - { - "startTime": 1746522743331, - "executionIndex": 25, - "source": [ - { - "previousNode": "AI Agent" - } - ], - "hints": [], - "executionTime": 7, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_birth_date": true, - "has_death_date": "true", - "has_name": "true", - "has_works": "true" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Anthropic Chat Model2": [ - { - "startTime": 1746522743344, - "executionTime": 1095, - "executionIndex": 27, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once." - ], - "estimatedTokens": 50, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model2", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model2", - "runIndex": 1 - }, - { - "node": "Anthropic Chat Model2", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1746522744458, - "executionTime": 1125, - "executionIndex": 29, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.\nAI: [\n {\n \"index\": 0,\n \"type\": \"text\",\n \"text\": \"Okay, let's plan your day in Berlin, Germany. First, let's check the weather:\"\n },\n {\n \"index\": 1,\n \"type\": \"tool_use\",\n \"id\": \"toolu_01Nk7Qi4rM581m5L3FwCnEmw\",\n \"name\": \"get_weather_data\",\n \"input\": \"{\\\"input\\\": \\\"Berlin, Germany\\\"}\"\n }\n]\nTool: {\n \"response\": \"{\\n \\\"created\\\": \\\"2024-03-04T09:26:23+01:00\\\",\\n \\\"symbolCode\\\": {\\n \\\"next1Hour\\\": \\\"fog\\\"\\n },\\n \\\"temperature\\\": {\\n \\\"value\\\": 5.1,\\n \\\"feelsLike\\\": 4\\n },\\n \\\"precipitation\\\": {\\n \\\"value\\\": 0.0\\n },\\n \\\"wind\\\": {\\n \\\"direction\\\": 275,\\n \\\"speed\\\": 1.7\\n },\\n \\\"status\\\": {\\n \\\"code\\\": \\\"Ok\\\"\\n }\\n}\"\n}" - ], - "estimatedTokens": 311, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - }, - { - "startTime": 1746522745610, - "executionTime": 1637, - "executionIndex": 31, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.\nAI: [\n {\n \"index\": 0,\n \"type\": \"text\",\n \"text\": \"Okay, let's plan your day in Berlin, Germany. First, let's check the weather:\"\n },\n {\n \"index\": 1,\n \"type\": \"tool_use\",\n \"id\": \"toolu_01Nk7Qi4rM581m5L3FwCnEmw\",\n \"name\": \"get_weather_data\",\n \"input\": \"{\\\"input\\\": \\\"Berlin, Germany\\\"}\"\n }\n]\nTool: {\n \"response\": \"{\\n \\\"created\\\": \\\"2024-03-04T09:26:23+01:00\\\",\\n \\\"symbolCode\\\": {\\n \\\"next1Hour\\\": \\\"fog\\\"\\n },\\n \\\"temperature\\\": {\\n \\\"value\\\": 5.1,\\n \\\"feelsLike\\\": 4\\n },\\n \\\"precipitation\\\": {\\n \\\"value\\\": 0.0\\n },\\n \\\"wind\\\": {\\n \\\"direction\\\": 275,\\n \\\"speed\\\": 1.7\\n },\\n \\\"status\\\": {\\n \\\"code\\\": \\\"Ok\\\"\\n }\\n}\"\n}\nAI: [\n {\n \"index\": 0,\n \"type\": \"text\",\n \"text\": \"The weather in Berlin today is foggy with a temperature of 5.1°C and a feels-like temperature of 4°C. There is minimal precipitation and light winds.\\n\\nNow let's check for upcoming events in Berlin:\"\n },\n {\n \"index\": 1,\n \"type\": \"tool_use\",\n \"id\": \"toolu_01GtTEjaabpzmERMyV2DpWBb\",\n \"name\": \"get_evens\",\n \"input\": \"{\\\"input\\\": \\\"Berlin, Germany\\\"}\"\n }\n]\nTool: {\n \"response\": \"[\\n {\\n \\\"description\\\": \\\"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\\\n\\\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\\\",\\n \\\"name\\\": \\\"Movie Barf: Dune – Part Two\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\\\",\\n \\\"name\\\": \\\"Luboš Pospíšil & 5P\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\\\",\\n \\\"name\\\": \\\"Fight Club\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\\\",\\n \\\"name\\\": \\\"Poor Things\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n },\\n {\\n \\\"description\\\": \\\"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\\\",\\n \\\"name\\\": \\\"Tribute to World Legends: Michael Jackson\\\",\\n \\\"endDate\\\": \\\"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\\\"\\n }\\n]\"\n}" - ], - "estimatedTokens": 1107, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-haiku-20240307", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 0.1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - } - ], - "Get Weather": [ - { - "startTime": 1746522744442, - "executionTime": 12, - "executionIndex": 28, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "{\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "225", - "workflowId": "254" - }, - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - } - ], - "Get Events": [ - { - "startTime": 1746522745587, - "executionTime": 17, - "executionIndex": 30, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "response": "[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "Berlin, Germany" - } - } - ] - ] - }, - "metadata": { - "subExecution": { - "executionId": "226", - "workflowId": "254" - }, - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - } - ], - "AI Agent4": [ - { - "startTime": 1746522743338, - "executionIndex": 26, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 3913, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "The key upcoming events in Berlin include:\n\n1. \"Movie Barf: Dune - Part Two\" - A film screening and discussion event on March 4th.\n2. \"Luboš Pospíšil & 5P\" - A concert by the band Luboš Pospíšil & 5P on March 14th.\n3. \"Fight Club\" - A screening of the classic film Fight Club.\n4. \"Poor Things\" - A screening of the new film Poor Things.\n5. \"Tribute to World Legends: Michael Jackson\" - A jazz concert paying tribute to Michael Jackson.\n\nLet me know if you need any other information to plan your day in Berlin!", - "intermediateSteps": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Edit Fields6": [ - { - "startTime": 1746522747251, - "executionIndex": 32, - "source": [ - { - "previousNode": "AI Agent4" - } - ], - "hints": [], - "executionTime": 5, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "has_weather": false, - "has_movie": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Window Buffer Memory1": [ - { - "subRun": [ - { - "node": "Window Buffer Memory1", - "runIndex": 0 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 1 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 2 - }, - { - "node": "Window Buffer Memory1", - "runIndex": 3 - } - ] - } - ], - "Anthropic Chat Model5": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model5", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model5", - "runIndex": 1 - } - ] - } - ], - "Structured Output Parser1": [ - { - "subRun": [ - { - "node": "Structured Output Parser1", - "runIndex": 0 - }, - { - "node": "Structured Output Parser1", - "runIndex": 1 - } - ] - } - ], - "Anthropic Chat Model4": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model4", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model4", - "runIndex": 1 - } - ] - } - ], - "HTTP Request": [ - { - "subRun": [ - { - "node": "HTTP Request", - "runIndex": 0 - } - ] - } - ], - "Anthropic Chat Model3": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model3", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model3", - "runIndex": 1 - } - ] - } - ], - "Code Tool": [ - { - "subRun": [ - { - "node": "Code Tool", - "runIndex": 0 - } - ] - } - ], - "Anthropic Chat Model": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model", - "runIndex": 0 - } - ] - } - ], - "Structured Output Parser": [ - { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - } - ] - } - ], - "Anthropic Chat Model2": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model2", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model2", - "runIndex": 1 - }, - { - "node": "Anthropic Chat Model2", - "runIndex": 2 - } - ] - } - ], - "Get Weather": [ - { - "subRun": [ - { - "node": "Get Weather", - "runIndex": 0 - } - ] - } - ], - "Get Events": [ - { - "subRun": [ - { - "node": "Get Events", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-06T09:12:13.441Z", - "stoppedAt": "2025-05-06T09:12:27.256Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/255-snapshot.json b/test-workflows/snapshots/255-snapshot.json deleted file mode 100644 index 15de13e3d9..0000000000 --- a/test-workflows/snapshots/255-snapshot.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking ‘Test workflow’": [ - { - "startTime": 1747344001310, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747344001313, - "executionTime": 150, - "executionIndex": 2, - "executionStatus": "error", - "source": [ - { - "previousNode": "Basic LLM Chain", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "json array" - ], - "estimatedTokens": 3, - "options": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "json array" - ], - "estimatedTokens": 3, - "options": { - "object": true - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - }, - "error": { - "message": "The resource you are requesting could not be found", - "timestamp": 1747344001463, - "name": "NodeApiError", - "description": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "context": {}, - "cause": { - "status": 404, - "headers": { - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "9405ad488cd1b881-DUB", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json; charset=utf-8", - "date": "Thu, 15 May 2025 21:20:01 GMT", - "server": "cloudflare", - "set-cookie": "__cf_bm=RxKUPES9cEyDoWlsYmoTb0R_2MnzrTE6J0Dkvn77yFE-1747344001-1.0.1.1-DWgxWjJDJ6mlrytbHI5D5mdX6cG1oppGccnhiiOpAE_S96pwCZY4NuEnJJwGWrH9o9fF9P09A8EwDRwUg0IN8KxyV1CK0GxHHFZi_KkJJkU; path=/; expires=Thu, 15-May-25 21:50:01 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None, _cfuvid=TfxIIk5sfQ6RMO1kRjn1mpAlnxEg7ILyvvyDNqXvpDY-1747344001498-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", - "strict-transport-security": "max-age=31536000; includeSubDomains; preload", - "transfer-encoding": "chunked", - "vary": "Origin", - "x-content-type-options": "nosniff", - "x-request-id": "req_26d1b9de0d7db778c7849a3a6dd99db1" - }, - "request_id": "req_26d1b9de0d7db778c7849a3a6dd99db1", - "error": { - "message": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "type": "invalid_request_error", - "param": null, - "code": "model_not_found" - }, - "code": "model_not_found", - "param": null, - "type": "invalid_request_error", - "lc_error_code": "MODEL_NOT_FOUND", - "attemptNumber": 1, - "retriesLeft": 2 - } - } - } - ], - "Basic LLM Chain": [ - { - "startTime": 1747344001310, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking ‘Test workflow’" - } - ], - "hints": [], - "executionTime": 154, - "executionStatus": "success", - "data": { - "main": [ - [], - [ - { - "json": { - "error": "The resource you are requesting could not be found" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Basic LLM Chain" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.310Z", - "stoppedAt": "2025-05-15T21:20:01.464Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/256-snapshot.json b/test-workflows/snapshots/256-snapshot.json deleted file mode 100644 index 349a9ae7a5..0000000000 --- a/test-workflows/snapshots/256-snapshot.json +++ /dev/null @@ -1,535 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking ‘Test workflow’": [ - { - "startTime": 1747344001481, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747344001486, - "executionTime": 660, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: What happened yesterday?" - ], - "estimatedTokens": 14, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344002730, - "executionTime": 667, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\nHuman: What happened yesterday?\nAI: \nTool: " - ], - "estimatedTokens": 20, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Vector Store Tool": [ - { - "startTime": 1747344002162, - "executionTime": 567, - "executionIndex": 3, - "executionStatus": "error", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_tool": [ - [ - { - "json": { - "query": "What happened on October 23, 2023?" - } - } - ] - ] - }, - "inputOverride": { - "ai_tool": [ - [ - { - "json": { - "query": "What happened on October 23, 2023?" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Vector Store Tool", - "runIndex": 0 - } - ] - }, - "error": { - "message": "The resource you are requesting could not be found", - "timestamp": 1747344002729, - "name": "NodeOperationError", - "description": "The resource you are requesting could not be found", - "context": {}, - "cause": { - "message": "The resource you are requesting could not be found", - "timestamp": 1747344002729, - "name": "NodeApiError", - "description": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "context": {}, - "cause": { - "status": 404, - "headers": { - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "9405ad506891b881-DUB", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json; charset=utf-8", - "date": "Thu, 15 May 2025 21:20:02 GMT", - "server": "cloudflare", - "set-cookie": "__cf_bm=_3t8lA2EICfoAVnY8jS2pZ8vSSfa8N26DkIApllAMH8-1747344002-1.0.1.1-FLg_gCTgMgTTRm3_JoXq9N_TPKW6rr7xWPcCoC_Pa6DtV4BDsZhreK9e7Csam5QfoKEZPRGyDdeLdO7Qow6ZW9hI3ticwUSjDNTQqgwhNKU; path=/; expires=Thu, 15-May-25 21:50:02 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None, _cfuvid=974ecBFWT36IeNWLLAlnKDyMYU2zpqoQnqHSdftSXQE-1747344002766-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", - "strict-transport-security": "max-age=31536000; includeSubDomains; preload", - "transfer-encoding": "chunked", - "vary": "Origin", - "x-content-type-options": "nosniff", - "x-request-id": "req_f04a3a26fad606a682c63896539732e7" - }, - "request_id": "req_f04a3a26fad606a682c63896539732e7", - "error": { - "message": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "type": "invalid_request_error", - "param": null, - "code": "model_not_found" - }, - "code": "model_not_found", - "param": null, - "type": "invalid_request_error", - "lc_error_code": "MODEL_NOT_FOUND", - "attemptNumber": 1, - "retriesLeft": 2 - } - } - } - } - ], - "In-Memory Vector Store": [ - { - "startTime": 1747344002162, - "executionTime": 406, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "Vector Store Tool", - "previousNodeRun": 0 - } - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What happened on October 23, 2023?", - "k": 4 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "In-Memory Vector Store", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI": [ - { - "startTime": 1747344002162, - "executionTime": 406, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "In-Memory Vector Store", - "previousNodeRun": 0 - } - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What happened on October 23, 2023?" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - } - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747344002569, - "executionTime": 160, - "executionIndex": 6, - "executionStatus": "error", - "source": [ - { - "previousNode": "Vector Store Tool", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "json array" - ], - "estimatedTokens": 52, - "options": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "json array" - ], - "estimatedTokens": 52, - "options": { - "object": true - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - }, - "error": { - "message": "The resource you are requesting could not be found", - "timestamp": 1747344002729, - "name": "NodeApiError", - "description": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "context": {}, - "cause": { - "status": 404, - "headers": { - "alt-svc": "h3=\":443\"; ma=86400", - "cf-cache-status": "DYNAMIC", - "cf-ray": "9405ad506891b881-DUB", - "connection": "keep-alive", - "content-encoding": "gzip", - "content-type": "application/json; charset=utf-8", - "date": "Thu, 15 May 2025 21:20:02 GMT", - "server": "cloudflare", - "set-cookie": "__cf_bm=_3t8lA2EICfoAVnY8jS2pZ8vSSfa8N26DkIApllAMH8-1747344002-1.0.1.1-FLg_gCTgMgTTRm3_JoXq9N_TPKW6rr7xWPcCoC_Pa6DtV4BDsZhreK9e7Csam5QfoKEZPRGyDdeLdO7Qow6ZW9hI3ticwUSjDNTQqgwhNKU; path=/; expires=Thu, 15-May-25 21:50:02 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None, _cfuvid=974ecBFWT36IeNWLLAlnKDyMYU2zpqoQnqHSdftSXQE-1747344002766-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", - "strict-transport-security": "max-age=31536000; includeSubDomains; preload", - "transfer-encoding": "chunked", - "vary": "Origin", - "x-content-type-options": "nosniff", - "x-request-id": "req_f04a3a26fad606a682c63896539732e7" - }, - "request_id": "req_f04a3a26fad606a682c63896539732e7", - "error": { - "message": "The model `gpt-4o-mini123` does not exist or you do not have access to it.", - "type": "invalid_request_error", - "param": null, - "code": "model_not_found" - }, - "code": "model_not_found", - "param": null, - "type": "invalid_request_error", - "lc_error_code": "MODEL_NOT_FOUND", - "attemptNumber": 1, - "retriesLeft": 2 - } - } - } - ], - "AI Agent": [ - { - "startTime": 1747344001481, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking ‘Test workflow’" - } - ], - "hints": [], - "executionTime": 1919, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": "I'm unable to retrieve the information about what happened yesterday. Would you like to ask about a specific event or topic?" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AI Agent" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - ], - "Embeddings OpenAI": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI", - "runIndex": 0 - } - ] - } - ], - "In-Memory Vector Store": [ - { - "subRun": [ - { - "node": "In-Memory Vector Store", - "runIndex": 0 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - } - ] - } - ], - "Vector Store Tool": [ - { - "subRun": [ - { - "node": "Vector Store Tool", - "runIndex": 0 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.481Z", - "stoppedAt": "2025-05-15T21:20:03.400Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/257-snapshot.json b/test-workflows/snapshots/257-snapshot.json deleted file mode 100644 index 7e35c56a1f..0000000000 --- a/test-workflows/snapshots/257-snapshot.json +++ /dev/null @@ -1,734 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747344001514, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Simple Memory": [ - { - "startTime": 1747344001519, - "executionTime": 0, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Simple Memory", - "runIndex": 0 - }, - { - "node": "Simple Memory", - "runIndex": 1 - }, - { - "node": "Simple Memory", - "runIndex": 2 - }, - { - "node": "Simple Memory", - "runIndex": 3 - } - ] - } - }, - { - "startTime": 1747344006541, - "executionTime": 0, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [], - "output": { - "resolution": "I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.", - "reasoning": "The user is asking about a check-in time, which could refer to a hotel reservation, flight, appointment, or similar scheduled event. However, I don't have access to any specific reservation systems or the user's personal calendar information. Without additional context about what type of check-in they're referring to and specific booking details, I cannot provide the requested information." - } - } - } - } - ] - ] - } - }, - { - "startTime": 1747344006544, - "executionTime": 0, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - } - }, - { - "startTime": 1747344010996, - "executionTime": 0, - "executionIndex": 12, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [ - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "HumanMessage" - ], - "kwargs": { - "content": "What time is my check-in?", - "additional_kwargs": {}, - "response_metadata": {} - } - }, - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "AIMessage" - ], - "kwargs": { - "content": "{\"output\":{\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\",\"reasoning\":\"The user is asking about a check-in time, which could refer to a hotel reservation, flight, appointment, or similar scheduled event. However, I don't have access to any specific reservation systems or the user's personal calendar information. Without additional context about what type of check-in they're referring to and specific booking details, I cannot provide the requested information.\"}}", - "tool_calls": [], - "invalid_tool_calls": [], - "additional_kwargs": {}, - "response_metadata": {} - } - } - ], - "output": { - "resolution": "I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.", - "reasoning": "The user is asking about a check-in time, but I don't have access to any reservation systems, personal calendars, or booking information. Without specific details about what type of check-in they're referring to (hotel, flight, appointment, etc.) and relevant booking information, I cannot provide the requested information. I need to ask for clarification to properly assist." - } - } - } - } - ] - ] - } - } - ], - "Anthropic Chat Model": [ - { - "startTime": 1747344001520, - "executionTime": 5020, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: What time is my check-in?" - ], - "estimatedTokens": 90, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-7-sonnet-20250219", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Anthropic Chat Model", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344006545, - "executionTime": 4451, - "executionIndex": 9, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsageEstimate": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: What time is my check-in?\nAI: {\"output\":{\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\",\"reasoning\":\"The user is asking about a check-in time, which could refer to a hotel reservation, flight, appointment, or similar scheduled event. However, I don't have access to any specific reservation systems or the user's personal calendar information. Without additional context about what type of check-in they're referring to and specific booking details, I cannot provide the requested information.\"}}\nHuman: What time is my check-in?" - ], - "estimatedTokens": 251, - "options": { - "anthropic_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - }, - "model": "claude-3-7-sonnet-20250219", - "anthropic_api_url": "https://api.anthropic.com", - "max_tokens": 2048, - "temperature": 1, - "top_k": -1, - "top_p": -1, - "invocation_kwargs": {}, - "api_key": { - "lc": 1, - "type": "secret", - "id": [ - "ANTHROPIC_API_KEY" - ] - } - } - } - } - ] - ] - } - } - ], - "Auto-fixing Output Parser": [ - { - "startTime": 1747344006540, - "executionTime": 1, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"reasoning\":\"The user is asking about a check-in time, which could refer to a hotel reservation, flight, appointment, or similar scheduled event. However, I don't have access to any specific reservation systems or the user's personal calendar information. Without additional context about what type of check-in they're referring to and specific booking details, I cannot provide the requested information.\",\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\"}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Auto-fixing Output Parser", - "runIndex": 0 - }, - { - "node": "Auto-fixing Output Parser", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344010996, - "executionTime": 0, - "executionIndex": 10, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"reasoning\":\"The user is asking about a check-in time, but I don't have access to any reservation systems, personal calendars, or booking information. Without specific details about what type of check-in they're referring to (hotel, flight, appointment, etc.) and relevant booking information, I cannot provide the requested information. I need to ask for clarification to properly assist.\",\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\"}}" - } - } - ] - ] - } - } - ], - "Structured Output Parser": [ - { - "startTime": 1747344006540, - "executionTime": 1, - "executionIndex": 5, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"reasoning\":\"The user is asking about a check-in time, which could refer to a hotel reservation, flight, appointment, or similar scheduled event. However, I don't have access to any specific reservation systems or the user's personal calendar information. Without additional context about what type of check-in they're referring to and specific booking details, I cannot provide the requested information.\",\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\"}}" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - }, - { - "node": "Structured Output Parser", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344010996, - "executionTime": 0, - "executionIndex": 11, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "{\"output\":{\"reasoning\":\"The user is asking about a check-in time, but I don't have access to any reservation systems, personal calendars, or booking information. Without specific details about what type of check-in they're referring to (hotel, flight, appointment, etc.) and relevant booking information, I cannot provide the requested information. I need to ask for clarification to properly assist.\",\"resolution\":\"I don't have access to your reservation or booking information. To help you find your check-in time, could you please provide more details about what type of check-in you're referring to (hotel, flight, appointment, etc.) and any booking reference or confirmation number you might have? With that information, I can better assist you or direct you to the appropriate resource.\"}}" - } - } - ] - ] - } - } - ], - "AI Agent": [ - { - "startTime": 1747344001514, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 5027, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AI Agent1": [ - { - "startTime": 1747344006541, - "executionIndex": 7, - "source": [ - { - "previousNode": "AI Agent" - } - ], - "hints": [], - "executionTime": 4455, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AI Agent1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Simple Memory": [ - { - "subRun": [ - { - "node": "Simple Memory", - "runIndex": 0 - }, - { - "node": "Simple Memory", - "runIndex": 1 - }, - { - "node": "Simple Memory", - "runIndex": 2 - }, - { - "node": "Simple Memory", - "runIndex": 3 - } - ] - } - ], - "Anthropic Chat Model": [ - { - "subRun": [ - { - "node": "Anthropic Chat Model", - "runIndex": 0 - }, - { - "node": "Anthropic Chat Model", - "runIndex": 1 - } - ] - } - ], - "Structured Output Parser": [ - { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - }, - { - "node": "Structured Output Parser", - "runIndex": 1 - } - ] - } - ], - "Auto-fixing Output Parser": [ - { - "subRun": [ - { - "node": "Auto-fixing Output Parser", - "runIndex": 0 - }, - { - "node": "Auto-fixing Output Parser", - "runIndex": 1 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.514Z", - "stoppedAt": "2025-05-15T21:20:10.996Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/258-snapshot.json b/test-workflows/snapshots/258-snapshot.json deleted file mode 100644 index b1f70c0bd4..0000000000 --- a/test-workflows/snapshots/258-snapshot.json +++ /dev/null @@ -1,980 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "startTime": 1747344001828, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Simple Memory": [ - { - "startTime": 1747344001833, - "executionTime": 0, - "executionIndex": 2, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Simple Memory", - "runIndex": 0 - }, - { - "node": "Simple Memory", - "runIndex": 1 - }, - { - "node": "Simple Memory", - "runIndex": 2 - }, - { - "node": "Simple Memory", - "runIndex": 3 - } - ] - } - }, - { - "startTime": 1747344003839, - "executionTime": 0, - "executionIndex": 8, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [], - "output": { - "resolution": "Please check your booking confirmation for your check-in time.", - "reasoning": "The customer requested information about their check-in time, which is typically included in their booking confirmation. Therefore, directing them to that document is the best course of action." - } - } - } - } - ] - ] - } - }, - { - "startTime": 1747344003846, - "executionTime": 0, - "executionIndex": 10, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "loadMemoryVariables", - "values": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - } - } - } - ] - ] - } - }, - { - "startTime": 1747344007006, - "executionTime": 0, - "executionIndex": 16, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "chatHistory": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_memory": [ - [ - { - "json": { - "action": "saveContext", - "input": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer." - }, - "output": { - "input": "What time is my check-in?", - "system_message": "You are a helpful assistant", - "formatting_instructions": "IMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.", - "chat_history": [ - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "HumanMessage" - ], - "kwargs": { - "content": "What time is my check-in?", - "additional_kwargs": {}, - "response_metadata": {} - } - }, - { - "lc": 1, - "type": "constructor", - "id": [ - "langchain_core", - "messages", - "AIMessage" - ], - "kwargs": { - "content": "{\"output\":{\"resolution\":\"Please check your booking confirmation for your check-in time.\",\"reasoning\":\"The customer requested information about their check-in time, which is typically included in their booking confirmation. Therefore, directing them to that document is the best course of action.\"}}", - "tool_calls": [], - "invalid_tool_calls": [], - "additional_kwargs": {}, - "response_metadata": {} - } - } - ], - "output": { - "resolution": "Please provide details such as the hotel name, booking reference number, or any other relevant information to assist with your check-in time.", - "reasoning": "The customer did not provide sufficient information regarding their booking, which is needed to determine the correct check-in time. Requesting additional details ensures that we can offer accurate assistance." - } - } - } - } - ] - ] - } - } - ], - "OpenAI Chat Model": [ - { - "startTime": 1747344001835, - "executionTime": 738, - "executionIndex": 3, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: What time is my check-in?" - ], - "estimatedTokens": 90, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-2024-05-13", - "temperature": 0, - "max_retries": 3, - "timeout": 60000, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344003848, - "executionTime": 990, - "executionIndex": 11, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are a helpful assistant\n\nIMPORTANT: For your response to user, you MUST use the `format_final_json_response` tool with your complete answer formatted according to the required schema. Do not attempt to format the JSON manually - always use this tool. Your response will be rejected if it is not properly formatted through this tool. Only use this tool once you are ready to provide your final answer.\nHuman: What time is my check-in?\nAI: {\"output\":{\"resolution\":\"Please check your booking confirmation for your check-in time.\",\"reasoning\":\"The customer requested information about their check-in time, which is typically included in their booking confirmation. Therefore, directing them to that document is the best course of action.\"}}\nHuman: What time is my check-in?" - ], - "estimatedTokens": 154, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-2024-05-13", - "temperature": 0, - "max_retries": 3, - "timeout": 60000, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Auto-fixing Output Parser": [ - { - "startTime": 1747344002573, - "executionTime": 1265, - "executionIndex": 4, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "I don't have access to your personal information, including your check-in time. Please refer to your booking confirmation or contact the relevant service provider for this information." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Auto-fixing Output Parser", - "runIndex": 0 - }, - { - "node": "Auto-fixing Output Parser", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344004839, - "executionTime": 2166, - "executionIndex": 12, - "executionStatus": "success", - "source": [ - { - "previousNode": "AI Agent1", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "To provide you with the correct check-in time, I would need more information about your booking. Please provide details such as the hotel name, booking reference number, or any other relevant information." - } - } - ] - ] - } - } - ], - "Structured Output Parser": [ - { - "startTime": 1747344002574, - "executionTime": 0, - "executionIndex": 5, - "executionStatus": "error", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "I don't have access to your personal information, including your check-in time. Please refer to your booking confirmation or contact the relevant service provider for this information." - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "I don't have access to your personal information, including your check-in time. Please refer to your booking confirmation or contact the relevant service provider for this information." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - }, - { - "node": "Structured Output Parser", - "runIndex": 1 - }, - { - "node": "Structured Output Parser", - "runIndex": 2 - }, - { - "node": "Structured Output Parser", - "runIndex": 3 - } - ] - }, - "error": { - "message": "Model output doesn't fit required format", - "timestamp": 1747344002574, - "name": "NodeOperationError", - "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings", - "context": {}, - "cause": { - "level": "warning", - "tags": { - "packageName": "@n8n" - } - } - } - }, - { - "startTime": 1747344003837, - "executionTime": 1, - "executionIndex": 7, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "```json\n{\"output\":{\"resolution\":\"Please check your booking confirmation for your check-in time.\",\"reasoning\":\"The customer requested information about their check-in time, which is typically included in their booking confirmation. Therefore, directing them to that document is the best course of action.\"}}\n```" - } - } - ] - ] - } - }, - { - "startTime": 1747344004839, - "executionTime": 0, - "executionIndex": 13, - "executionStatus": "error", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "To provide you with the correct check-in time, I would need more information about your booking. Please provide details such as the hotel name, booking reference number, or any other relevant information." - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "To provide you with the correct check-in time, I would need more information about your booking. Please provide details such as the hotel name, booking reference number, or any other relevant information." - } - } - ] - ] - }, - "error": { - "message": "Model output doesn't fit required format", - "timestamp": 1747344004839, - "name": "NodeOperationError", - "description": "To continue the execution when this happens, change the 'On Error' parameter in the root node's settings", - "context": {}, - "cause": { - "level": "warning", - "tags": { - "packageName": "@n8n" - } - } - } - }, - { - "startTime": 1747344007005, - "executionTime": 0, - "executionIndex": 15, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "response": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_outputParser": [ - [ - { - "json": { - "action": "parse", - "text": "```json\n{\n \"output\": {\n \"resolution\": \"Please provide details such as the hotel name, booking reference number, or any other relevant information to assist with your check-in time.\",\n \"reasoning\": \"The customer did not provide sufficient information regarding their booking, which is needed to determine the correct check-in time. Requesting additional details ensures that we can offer accurate assistance.\"\n }\n}\n```" - } - } - ] - ] - } - } - ], - "OpenAI Chat Model1": [ - { - "startTime": 1747344002576, - "executionTime": 1261, - "executionIndex": 6, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Instructions:\n--------------\nYou must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n```json\n{\"type\":\"object\",\"properties\":{\"output\":{\"type\":\"object\",\"properties\":{\"resolution\":{\"type\":\"string\",\"description\":\"The customer-facing resolution or response that should be communicated to the customer\"},\"reasoning\":{\"type\":\"string\",\"description\":\"Detailed explanation of the solution and reasoning for internal use\"}},\"required\":[\"resolution\",\"reasoning\"],\"additionalProperties\":{}}},\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}\n```\n\n--------------\nCompletion:\n--------------\nI don't have access to your personal information, including your check-in time. Please refer to your booking confirmation or contact the relevant service provider for this information.\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\nUnexpected token 'I', \"I don't ha\"... is not valid JSON\n\nTroubleshooting URL: https://js.langchain.com/docs/troubleshooting/errors/OUTPUT_PARSING_FAILURE/\n\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions:" - ], - "estimatedTokens": 471, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - }, - { - "startTime": 1747344004841, - "executionTime": 2164, - "executionIndex": 14, - "executionStatus": "success", - "source": [ - { - "previousNode": "Auto-fixing Output Parser", - "previousNodeRun": 0 - } - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "Human: Instructions:\n--------------\nYou must format your output as a JSON value that adheres to a given \"JSON Schema\" instance.\n\n\"JSON Schema\" is a declarative language that allows you to annotate and validate JSON documents.\n\nFor example, the example \"JSON Schema\" instance {{\"properties\": {{\"foo\": {{\"description\": \"a list of test words\", \"type\": \"array\", \"items\": {{\"type\": \"string\"}}}}}}, \"required\": [\"foo\"]}}}}\nwould match an object with one required property, \"foo\". The \"type\" property specifies \"foo\" must be an \"array\", and the \"description\" property semantically describes it as \"a list of test words\". The items within \"foo\" must be strings.\nThus, the object {{\"foo\": [\"bar\", \"baz\"]}} is a well-formatted instance of this example \"JSON Schema\". The object {{\"properties\": {{\"foo\": [\"bar\", \"baz\"]}}}} is not well-formatted.\n\nYour output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!\n\nHere is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:\n```json\n{\"type\":\"object\",\"properties\":{\"output\":{\"type\":\"object\",\"properties\":{\"resolution\":{\"type\":\"string\",\"description\":\"The customer-facing resolution or response that should be communicated to the customer\"},\"reasoning\":{\"type\":\"string\",\"description\":\"Detailed explanation of the solution and reasoning for internal use\"}},\"required\":[\"resolution\",\"reasoning\"],\"additionalProperties\":{}}},\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}\n```\n\n--------------\nCompletion:\n--------------\nTo provide you with the correct check-in time, I would need more information about your booking. Please provide details such as the hotel name, booking reference number, or any other relevant information.\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\nUnexpected token 'T', \"To provide\"... is not valid JSON\n\nTroubleshooting URL: https://js.langchain.com/docs/troubleshooting/errors/OUTPUT_PARSING_FAILURE/\n\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions:" - ], - "estimatedTokens": 477, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-4o-mini", - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "AI Agent": [ - { - "startTime": 1747344001828, - "executionIndex": 1, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "hints": [], - "executionTime": 2011, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "AI Agent1": [ - { - "startTime": 1747344003839, - "executionIndex": 9, - "source": [ - { - "previousNode": "AI Agent" - } - ], - "hints": [], - "executionTime": 3167, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "AI Agent1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Simple Memory": [ - { - "subRun": [ - { - "node": "Simple Memory", - "runIndex": 0 - }, - { - "node": "Simple Memory", - "runIndex": 1 - }, - { - "node": "Simple Memory", - "runIndex": 2 - }, - { - "node": "Simple Memory", - "runIndex": 3 - } - ] - } - ], - "OpenAI Chat Model": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model", - "runIndex": 1 - } - ] - } - ], - "Structured Output Parser": [ - { - "subRun": [ - { - "node": "Structured Output Parser", - "runIndex": 0 - }, - { - "node": "Structured Output Parser", - "runIndex": 1 - }, - { - "node": "Structured Output Parser", - "runIndex": 2 - }, - { - "node": "Structured Output Parser", - "runIndex": 3 - } - ] - } - ], - "OpenAI Chat Model1": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model1", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model1", - "runIndex": 1 - } - ] - } - ], - "Auto-fixing Output Parser": [ - { - "subRun": [ - { - "node": "Auto-fixing Output Parser", - "runIndex": 0 - }, - { - "node": "Auto-fixing Output Parser", - "runIndex": 1 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.828Z", - "stoppedAt": "2025-05-15T21:20:07.006Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/259-snapshot.json b/test-workflows/snapshots/259-snapshot.json deleted file mode 100644 index dfb8163b75..0000000000 --- a/test-workflows/snapshots/259-snapshot.json +++ /dev/null @@ -1,1380 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "When clicking \"Test workflow\"": [ - { - "hints": [], - "startTime": 1741788353186, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Code": [ - { - "hints": [ - { - "message": "To make sure expressions after this node work, return the input items that produced each output item. More info", - "location": "outputPane" - } - ], - "startTime": 1741788353187, - "executionTime": 11, - "source": [ - { - "previousNode": "When clicking \"Test workflow\"" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Default Data Loader2": [ - { - "startTime": 1741788353215, - "executionTime": 900, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_document": [ - [ - { - "json": { - "response": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "inputOverride": { - "ai_document": [ - [ - { - "json": { - "text": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Default Data Loader2", - "runIndex": 0 - } - ] - } - } - ], - "Token Splitter2": [ - { - "startTime": 1741788353215, - "executionTime": 899, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_textSplitter": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_textSplitter": [ - [ - { - "json": { - "textSplitter": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Token Splitter2", - "runIndex": 0 - } - ] - } - } - ], - "Embeddings OpenAI6": [ - { - "startTime": 1741788354115, - "executionTime": 1416, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "documents": [ - "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution", - " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash", - " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest", - "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need", - " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing", - " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the", - " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs", - " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early", - " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k ", - " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=", - "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4", - ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - ] - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI6", - "runIndex": 0 - } - ] - } - } - ], - "In-Memory Vector Store": [ - { - "hints": [], - "startTime": 1741788353198, - "executionTime": 2335, - "source": [ - { - "previousNode": "Code" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k " - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": " ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": "1008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "metadata": { - "object": true - }, - "pageContent": ", X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Check Vector Store Populated2": [ - { - "hints": [], - "startTime": 1741788355533, - "executionTime": 22, - "source": [ - { - "previousNode": "In-Memory Vector Store" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_length_matches": true, - "has_content": true, - "has_meta": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Vector Store Retriever2": [ - { - "startTime": 1741788355568, - "executionTime": 851, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "config": { - "handlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "inheritableHandlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "tags": [ - "retriever" - ], - "inheritableTags": [], - "metadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.3" - }, - "inheritableMetadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.3" - }, - "name": "callback_manager", - "_parentRunId": "3b7e540a-2f07-47e8-ab8d-6fde6ebeb4a5" - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Vector Store Retriever2", - "runIndex": 0 - }, - { - "node": "Vector Store Retriever2", - "runIndex": 1 - }, - { - "node": "Vector Store Retriever2", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1741788357754, - "executionTime": 678, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "config": { - "handlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "inheritableHandlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "tags": [ - "retriever" - ], - "inheritableTags": [], - "metadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.4" - }, - "inheritableMetadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.4" - }, - "name": "callback_manager", - "_parentRunId": "c589ca8c-9526-4512-b88a-1e4cbdbcf607" - } - } - } - ] - ] - }, - "metadata": {} - }, - { - "startTime": 1741788358866, - "executionTime": 513, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_retriever": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_retriever": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "config": { - "tags": [], - "metadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.5" - }, - "recursionLimit": 25, - "signal": {}, - "callbacks": { - "handlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "inheritableHandlers": [ - { - "lc": 1, - "type": "not_implemented", - "id": [ - "langchain_core", - "callbacks", - "langchain_tracer", - "LangChainTracer" - ] - } - ], - "tags": [ - "seq:step:2" - ], - "inheritableTags": [], - "metadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.5" - }, - "inheritableMetadata": { - "execution_id": "138", - "workflow": { - "id": "259", - "name": "ChainQA", - "active": false - }, - "node": "Question and Answer Chain 1.5" - }, - "name": "callback_manager", - "_parentRunId": "49e2e7a0-6e6b-41b2-a74d-f7dbe71055fa" - } - } - } - } - ] - ] - }, - "metadata": {} - } - ], - "In-Memory Vector Store2": [ - { - "startTime": 1741788355569, - "executionTime": 848, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "In-Memory Vector Store2", - "runIndex": 0 - }, - { - "node": "In-Memory Vector Store2", - "runIndex": 1 - }, - { - "node": "In-Memory Vector Store2", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1741788357754, - "executionTime": 677, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - } - }, - { - "startTime": 1741788358867, - "executionTime": 511, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_vectorStore": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_vectorStore": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "k": 4 - } - } - ] - ] - } - } - ], - "Embeddings OpenAI7": [ - { - "startTime": 1741788355569, - "executionTime": 842, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "Embeddings OpenAI7", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI7", - "runIndex": 1 - }, - { - "node": "Embeddings OpenAI7", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1741788357754, - "executionTime": 677, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - } - }, - { - "startTime": 1741788358867, - "executionTime": 511, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_embedding": [ - [ - { - "json": { - "response": [ - "json array" - ] - } - } - ] - ] - }, - "inputOverride": { - "ai_embedding": [ - [ - { - "json": { - "query": "What is the size of a block header with no transactions? Respond only with number of bytes." - } - } - ] - ] - } - } - ], - "OpenAI Chat Model2": [ - { - "startTime": 1741788357187, - "executionTime": 559, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2071, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - }, - "metadata": { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 2 - } - ] - } - }, - { - "startTime": 1741788358443, - "executionTime": 408, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2071, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - }, - { - "startTime": 1741788359403, - "executionTime": 550, - "executionStatus": "success", - "source": [ - null - ], - "data": { - "ai_languageModel": [ - [ - { - "json": { - "response": { - "object": true - }, - "tokenUsage": { - "object": true - } - } - } - ] - ] - }, - "inputOverride": { - "ai_languageModel": [ - [ - { - "json": { - "messages": [ - "System: You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the\n\n next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing\n\n confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs\n\n-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need\nHuman: What is the size of a block header with no transactions? Respond only with number of bytes." - ], - "estimatedTokens": 2071, - "options": { - "openai_api_key": { - "lc": 1, - "type": "secret", - "id": [ - "OPENAI_API_KEY" - ] - }, - "model": "gpt-3.5-turbo-0125", - "temperature": 0, - "timeout": 60000, - "max_retries": 2, - "configuration": { - "baseURL": "https://api.openai.com/v1" - }, - "model_kwargs": {} - } - } - } - ] - ] - } - } - ], - "Question and Answer Chain 1.3": [ - { - "hints": [], - "startTime": 1741788355555, - "executionTime": 2193, - "source": [ - { - "previousNode": "Check Vector Store Populated2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Question and Answer Chain 1.4": [ - { - "hints": [], - "startTime": 1741788357748, - "executionTime": 1104, - "source": [ - { - "previousNode": "Check Vector Store Populated2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Question and Answer Chain 1.5": [ - { - "hints": [], - "startTime": 1741788358852, - "executionTime": 1103, - "source": [ - { - "previousNode": "Check Vector Store Populated2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": "80 bytes" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "hints": [], - "startTime": 1741788359955, - "executionTime": 17, - "source": [ - { - "previousNode": "Question and Answer Chain 1.3" - }, - { - "previousNode": "Question and Answer Chain 1.4" - }, - { - "previousNode": "Question and Answer Chain 1.5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "response": { - "object": true - } - }, - "pairedItem": { - "item": 0, - "input": 1 - } - }, - { - "json": { - "response": "80 bytes" - }, - "pairedItem": { - "item": 0, - "input": 2 - } - } - ] - ] - } - } - ], - "Edit Fields2": [ - { - "hints": [], - "startTime": 1741788359972, - "executionTime": 10, - "source": [ - { - "previousNode": "Merge" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 1 - } - }, - { - "json": { - "output_matches": true - }, - "pairedItem": { - "item": 2 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Edit Fields2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": { - "Token Splitter2": [ - { - "subRun": [ - { - "node": "Token Splitter2", - "runIndex": 0 - } - ] - } - ], - "Default Data Loader2": [ - { - "subRun": [ - { - "node": "Default Data Loader2", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI6": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI6", - "runIndex": 0 - } - ] - } - ], - "Embeddings OpenAI7": [ - { - "subRun": [ - { - "node": "Embeddings OpenAI7", - "runIndex": 0 - }, - { - "node": "Embeddings OpenAI7", - "runIndex": 1 - }, - { - "node": "Embeddings OpenAI7", - "runIndex": 2 - } - ] - } - ], - "In-Memory Vector Store2": [ - { - "subRun": [ - { - "node": "In-Memory Vector Store2", - "runIndex": 0 - }, - { - "node": "In-Memory Vector Store2", - "runIndex": 1 - }, - { - "node": "In-Memory Vector Store2", - "runIndex": 2 - } - ] - } - ], - "Vector Store Retriever2": [ - { - "subRun": [ - { - "node": "Vector Store Retriever2", - "runIndex": 0 - }, - { - "node": "Vector Store Retriever2", - "runIndex": 1 - }, - { - "node": "Vector Store Retriever2", - "runIndex": 2 - } - ] - } - ], - "OpenAI Chat Model2": [ - { - "subRun": [ - { - "node": "OpenAI Chat Model2", - "runIndex": 0 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 1 - }, - { - "node": "OpenAI Chat Model2", - "runIndex": 2 - } - ] - } - ] - }, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-03-12T14:05:53.185Z", - "stoppedAt": "2025-03-12T14:05:59.982Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/26-snapshot.json b/test-workflows/snapshots/26-snapshot.json deleted file mode 100644 index 9aec0b4eda..0000000000 --- a/test-workflows/snapshots/26-snapshot.json +++ /dev/null @@ -1,408 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331918635, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp": [ - { - "startTime": 1710331918635, - "executionTime": 444, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolder1710331918638", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds": [ - { - "startTime": 1710331919079, - "executionTime": 803, - "source": [ - { - "previousNode": "ClickUp" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolder1710331918638", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp1": [ - { - "startTime": 1710331919882, - "executionTime": 471, - "source": [ - { - "previousNode": "Sleep 8 Seconds" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolderUpdated1710331919885", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds1": [ - { - "startTime": 1710331920353, - "executionTime": 803, - "source": [ - { - "previousNode": "ClickUp1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolderUpdated1710331919885", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp2": [ - { - "startTime": 1710331921156, - "executionTime": 1580, - "source": [ - { - "previousNode": "Sleep 8 Seconds1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "34002010", - "name": "test1627629155971", - "orderindex": 2, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds2": [ - { - "startTime": 1710331922737, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "34002010", - "name": "test1627629155971", - "orderindex": 2, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp3": [ - { - "startTime": 1710331923540, - "executionTime": 612, - "source": [ - { - "previousNode": "Sleep 8 Seconds2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolderUpdated1710331919885", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds3": [ - { - "startTime": 1710331924152, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105892", - "name": "testFolderUpdated1710331919885", - "orderindex": 101, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp4": [ - { - "startTime": 1710331924954, - "executionTime": 458, - "source": [ - { - "previousNode": "Sleep 8 Seconds3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ClickUp4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:58.634Z", - "stoppedAt": "2024-03-13T12:12:05.412Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/29-snapshot.json b/test-workflows/snapshots/29-snapshot.json deleted file mode 100644 index 698015295e..0000000000 --- a/test-workflows/snapshots/29-snapshot.json +++ /dev/null @@ -1,561 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331919258, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ClickUp": [ - { - "startTime": 1710331919258, - "executionTime": 1567, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105894", - "name": "Test21710331919261", - "orderindex": 102, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds": [ - { - "startTime": 1710331920826, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90121105894", - "name": "Test21710331919261", - "orderindex": 102, - "override_statuses": false, - "hidden": false, - "space": { - "object": true - }, - "task_count": "0", - "archived": false, - "statuses": [ - "json array" - ], - "lists": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp1": [ - { - "startTime": 1710331921629, - "executionTime": 473, - "source": [ - { - "previousNode": "Sleep 8 Seconds" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901201909617", - "name": "testingList21710331921631", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901201909617.u-8779387.a621f41b-e48a-477a-b1d1-b6bf5f95b97c@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds1": [ - { - "startTime": 1710331922103, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "901201909617", - "name": "testingList21710331921631", - "deleted": false, - "orderindex": 0, - "content": "", - "priority": { - "object": true - }, - "assignee": { - "object": true - }, - "due_date": { - "object": true - }, - "start_date": { - "object": true - }, - "folder": { - "object": true - }, - "space": { - "object": true - }, - "inbound_address": "a.t.901201909617.u-8779387.a621f41b-e48a-477a-b1d1-b6bf5f95b97c@tasks.clickup.com", - "archived": false, - "override_statuses": false, - "statuses": [ - "json array" - ], - "permission_level": "create" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp2": [ - { - "startTime": 1710331922905, - "executionTime": 323, - "source": [ - { - "previousNode": "Sleep 8 Seconds1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90120030547385, - "hist_id": "bf5d7961-3473-4ba7-9ba2-3ccd75f11f4d", - "date": 1710331923158, - "version": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds2": [ - { - "startTime": 1710331923228, - "executionTime": 803, - "source": [ - { - "previousNode": "ClickUp2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 90120030547385, - "hist_id": "bf5d7961-3473-4ba7-9ba2-3ccd75f11f4d", - "date": 1710331923158, - "version": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp3": [ - { - "startTime": 1710331924031, - "executionTime": 408, - "source": [ - { - "previousNode": "Sleep 8 Seconds2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds3": [ - { - "startTime": 1710331924439, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp4": [ - { - "startTime": 1710331925241, - "executionTime": 325, - "source": [ - { - "previousNode": "Sleep 8 Seconds3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90120030547385", - "comment": [ - "json array" - ], - "comment_text": "commentUpdated1710331924035", - "user": { - "object": true - }, - "reactions": [ - "json array" - ], - "date": "1710331923158" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds4": [ - { - "startTime": 1710331925566, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "90120030547385", - "comment": [ - "json array" - ], - "comment_text": "commentUpdated1710331924035", - "user": { - "object": true - }, - "reactions": [ - "json array" - ], - "date": "1710331923158" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp5": [ - { - "startTime": 1710331926369, - "executionTime": 407, - "source": [ - { - "previousNode": "Sleep 8 Seconds4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds5": [ - { - "startTime": 1710331926777, - "executionTime": 802, - "source": [ - { - "previousNode": "ClickUp5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp6": [ - { - "startTime": 1710331927579, - "executionTime": 2324, - "source": [ - { - "previousNode": "Sleep 8 Seconds5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 8 Seconds6": [ - { - "startTime": 1710331929903, - "executionTime": 803, - "source": [ - { - "previousNode": "ClickUp6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "ClickUp7": [ - { - "startTime": 1710331930706, - "executionTime": 426, - "source": [ - { - "previousNode": "Sleep 8 Seconds6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ClickUp7" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:11:59.256Z", - "stoppedAt": "2024-03-13T12:12:11.132Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/32-snapshot.json b/test-workflows/snapshots/32-snapshot.json deleted file mode 100644 index 4139a6ace4..0000000000 --- a/test-workflows/snapshots/32-snapshot.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344001850, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Drift ": [ - { - "startTime": 1747344001850, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 632, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 25164082913, - "createdAt": 1747344002321, - "attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Drift 1": [ - { - "startTime": 1747344002482, - "executionIndex": 2, - "source": [ - { - "previousNode": "Drift " - } - ], - "hints": [], - "executionTime": 527, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 25164082913, - "createdAt": 1747344002321, - "attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Drift 2": [ - { - "startTime": 1747344003010, - "executionIndex": 3, - "source": [ - { - "previousNode": "Drift 1" - } - ], - "hints": [], - "executionTime": 520, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 25164082913, - "createdAt": 1747344002321, - "attributes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Drift 3": [ - { - "startTime": 1747344003530, - "executionIndex": 4, - "source": [ - { - "previousNode": "Drift 2" - } - ], - "hints": [], - "executionTime": 466, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Drift 3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:01.850Z", - "stoppedAt": "2025-05-15T21:20:03.996Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/33-snapshot.json b/test-workflows/snapshots/33-snapshot.json deleted file mode 100644 index 603b454e14..0000000000 --- a/test-workflows/snapshots/33-snapshot.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385930, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zoom": [ - { - "startTime": 1676891385931, - "executionTime": 635, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "uuid": "oRlR90RNTw2pd8VI4b+Wcw==", - "id": 78415116127, - "host_id": "nRgFaftbSnmu0V5MWWIDAA", - "host_email": "nodeqa@n8n.io", - "topic": "test", - "type": 2, - "status": "waiting", - "start_time": "2023-02-20T11:09:46Z", - "duration": 60, - "timezone": "Europe/Paris", - "created_at": "2023-02-20T11:09:46Z", - "start_url": "https://us04web.zoom.us/s/78415116127?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJhdWQiOiJjbGllbnRzbSIsInVpZCI6Im5SZ0ZhZnRiU25tdTBWNU1XV0lEQUEiLCJpc3MiOiJ3ZWIiLCJzayI6IjAiLCJzdHkiOjEwMCwid2NkIjoidXMwNCIsImNsdCI6MCwibW51bSI6Ijc4NDE1MTE2MTI3IiwiZXhwIjoxNjc2ODk4NTg2LCJpYXQiOjE2NzY4OTEzODYsImFpZCI6IjFHdXNnSGsxVFAyVVFvUDRNVkU1UlEiLCJjaWQiOiIifQ.EwHxHLdTe-vrH2YMZusYTiShmKhzyOtAT4RYH0UnYQ4", - "join_url": "https://us04web.zoom.us/j/78415116127?pwd=xaYBX8khiADyaoIR03LByEVLuRB4IM.1", - "password": "mV6LuA", - "h323_password": "171732", - "pstn_password": "171732", - "encrypted_password": "xaYBX8khiADyaoIR03LByEVLuRB4IM.1", - "settings": { - "object": true - }, - "pre_schedule": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zoom1": [ - { - "startTime": 1676891386566, - "executionTime": 367, - "source": [ - { - "previousNode": "Zoom" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zoom2": [ - { - "startTime": 1676891386933, - "executionTime": 248, - "source": [ - { - "previousNode": "Zoom1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "uuid": "oRlR90RNTw2pd8VI4b+Wcw==", - "id": 78415116127, - "host_id": "nRgFaftbSnmu0V5MWWIDAA", - "topic": "test", - "type": 2, - "start_time": "2023-02-20T11:09:46Z", - "duration": 30, - "timezone": "Europe/Paris", - "created_at": "2023-02-20T11:09:46Z", - "join_url": "https://us04web.zoom.us/j/78415116127?pwd=xaYBX8khiADyaoIR03LByEVLuRB4IM.1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zoom3": [ - { - "startTime": 1676891387181, - "executionTime": 277, - "source": [ - { - "previousNode": "Zoom2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "uuid": "oRlR90RNTw2pd8VI4b+Wcw==", - "id": 78415116127, - "host_id": "nRgFaftbSnmu0V5MWWIDAA", - "host_email": "nodeqa@n8n.io", - "topic": "test", - "type": 2, - "status": "waiting", - "start_time": "2023-02-20T11:09:46Z", - "duration": 30, - "timezone": "Europe/Paris", - "created_at": "2023-02-20T11:09:46Z", - "start_url": "https://us04web.zoom.us/s/78415116127?zak=eyJ0eXAiOiJKV1QiLCJzdiI6IjAwMDAwMSIsInptX3NrbSI6InptX28ybSIsImFsZyI6IkhTMjU2In0.eyJhdWQiOiJjbGllbnRzbSIsInVpZCI6Im5SZ0ZhZnRiU25tdTBWNU1XV0lEQUEiLCJpc3MiOiJ3ZWIiLCJzayI6IjAiLCJzdHkiOjEwMCwid2NkIjoidXMwNCIsImNsdCI6MCwibW51bSI6Ijc4NDE1MTE2MTI3IiwiZXhwIjoxNjc2ODk4NTg3LCJpYXQiOjE2NzY4OTEzODcsImFpZCI6IjFHdXNnSGsxVFAyVVFvUDRNVkU1UlEiLCJjaWQiOiIifQ.T6-x2VI8MjhMP0vG-bNtYKMP8gTL5xrZE5NTha2jmqM", - "join_url": "https://us04web.zoom.us/j/78415116127?pwd=xaYBX8khiADyaoIR03LByEVLuRB4IM.1", - "password": "mV6LuA", - "h323_password": "171732", - "pstn_password": "171732", - "encrypted_password": "xaYBX8khiADyaoIR03LByEVLuRB4IM.1", - "settings": { - "object": true - }, - "pre_schedule": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zoom4": [ - { - "startTime": 1676891387458, - "executionTime": 279, - "source": [ - { - "previousNode": "Zoom3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Zoom4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.929Z", - "stoppedAt": "2023-02-20T11:09:47.737Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/34-snapshot.json b/test-workflows/snapshots/34-snapshot.json deleted file mode 100644 index fb3475c745..0000000000 --- a/test-workflows/snapshots/34-snapshot.json +++ /dev/null @@ -1,544 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385888, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strava": [ - { - "startTime": 1676891385889, - "executionTime": 523, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resource_state": 3, - "athlete": { - "object": true - }, - "name": "TestActivity", - "distance": 0, - "moving_time": 5, - "elapsed_time": 5, - "total_elevation_gain": 0, - "type": "Run", - "sport_type": "Run", - "workout_type": { - "object": true - }, - "id": 8591820220, - "start_date": "2023-02-20T10:09:45Z", - "start_date_local": "2023-02-20T11:09:45Z", - "timezone": "(GMT+01:00) Africa/Tunis", - "utc_offset": 3600, - "location_city": { - "object": true - }, - "location_state": { - "object": true - }, - "location_country": "Tunisia", - "achievement_count": 0, - "kudos_count": 0, - "comment_count": 0, - "athlete_count": 1, - "photo_count": 0, - "map": { - "object": true - }, - "trainer": false, - "commute": false, - "manual": true, - "private": false, - "visibility": "everyone", - "flagged": false, - "gear_id": { - "object": true - }, - "start_latlng": [ - "json array" - ], - "end_latlng": [ - "json array" - ], - "average_speed": 0, - "max_speed": 0, - "has_heartrate": false, - "heartrate_opt_out": false, - "display_hide_heartrate_option": false, - "upload_id": { - "object": true - }, - "external_id": { - "object": true - }, - "from_accepted_tag": false, - "pr_count": 0, - "total_photo_count": 0, - "has_kudoed": false, - "description": { - "object": true - }, - "calories": 0, - "perceived_exertion": { - "object": true - }, - "prefer_perceived_exertion": { - "object": true - }, - "segment_efforts": [ - "json array" - ], - "best_efforts": [ - "json array" - ], - "photos": { - "object": true - }, - "stats_visibility": [ - "json array" - ], - "hide_from_home": false, - "embed_token": "8dda88c56f0b4c907a917db2e642635586e4c338", - "similar_activities": { - "object": true - }, - "available_zones": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strava4": [ - { - "startTime": 1676891386412, - "executionTime": 202, - "source": [ - { - "previousNode": "Strava" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {} - } - ] - ] - } - } - ], - "Strava3": [ - { - "startTime": 1676891386614, - "executionTime": 423, - "source": [ - { - "previousNode": "Strava" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resource_state": 3, - "athlete": { - "object": true - }, - "name": "TestActivity", - "distance": 0, - "moving_time": 5, - "elapsed_time": 5, - "total_elevation_gain": 0, - "type": "Run", - "sport_type": "Run", - "workout_type": { - "object": true - }, - "id": 8591820220, - "start_date": "2023-02-20T10:09:45Z", - "start_date_local": "2023-02-20T11:09:45Z", - "timezone": "(GMT+01:00) Africa/Tunis", - "utc_offset": 3600, - "location_city": { - "object": true - }, - "location_state": { - "object": true - }, - "location_country": "Tunisia", - "achievement_count": 0, - "kudos_count": 0, - "comment_count": 0, - "athlete_count": 1, - "photo_count": 0, - "map": { - "object": true - }, - "trainer": false, - "commute": false, - "manual": true, - "private": false, - "visibility": "everyone", - "flagged": false, - "gear_id": { - "object": true - }, - "start_latlng": [ - "json array" - ], - "end_latlng": [ - "json array" - ], - "average_speed": 0, - "max_speed": 0, - "has_heartrate": false, - "heartrate_opt_out": false, - "display_hide_heartrate_option": false, - "upload_id": { - "object": true - }, - "external_id": { - "object": true - }, - "from_accepted_tag": false, - "pr_count": 0, - "total_photo_count": 0, - "has_kudoed": false, - "description": { - "object": true - }, - "calories": 0, - "perceived_exertion": { - "object": true - }, - "prefer_perceived_exertion": { - "object": true - }, - "segment_efforts": [ - "json array" - ], - "best_efforts": [ - "json array" - ], - "photos": { - "object": true - }, - "stats_visibility": [ - "json array" - ], - "hide_from_home": false, - "embed_token": "8dda88c56f0b4c907a917db2e642635586e4c338", - "similar_activities": { - "object": true - }, - "available_zones": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strava5": [ - { - "startTime": 1676891387037, - "executionTime": 196, - "source": [ - { - "previousNode": "Strava4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {} - } - ] - ] - } - } - ], - "Strava1": [ - { - "startTime": 1676891387233, - "executionTime": 416, - "source": [ - { - "previousNode": "Strava3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resource_state": -1, - "athlete": { - "object": true - }, - "name": "TestActivity", - "distance": 0, - "moving_time": 5, - "elapsed_time": 5, - "total_elevation_gain": 0, - "type": "Ride", - "sport_type": "Ride", - "workout_type": { - "object": true - }, - "id": 8591820220, - "start_date": "2023-02-20T10:09:45Z", - "start_date_local": "2023-02-20T11:09:45Z", - "timezone": "(GMT+01:00) Africa/Tunis", - "utc_offset": 3600, - "location_city": { - "object": true - }, - "location_state": { - "object": true - }, - "location_country": "Tunisia", - "achievement_count": 0, - "kudos_count": 0, - "comment_count": 0, - "athlete_count": 1, - "photo_count": 0, - "map": { - "object": true - }, - "trainer": false, - "commute": false, - "manual": true, - "private": false, - "visibility": "everyone", - "flagged": false, - "gear_id": { - "object": true - }, - "start_latlng": [ - "json array" - ], - "end_latlng": [ - "json array" - ], - "average_speed": 0, - "max_speed": 0, - "has_heartrate": false, - "heartrate_opt_out": false, - "display_hide_heartrate_option": false, - "upload_id": { - "object": true - }, - "external_id": { - "object": true - }, - "from_accepted_tag": false, - "pr_count": 0, - "total_photo_count": 0, - "has_kudoed": false, - "description": { - "object": true - }, - "calories": 0, - "perceived_exertion": { - "object": true - }, - "prefer_perceived_exertion": { - "object": true - }, - "segment_efforts": [ - "json array" - ], - "photos": { - "object": true - }, - "stats_visibility": [ - "json array" - ], - "hide_from_home": false, - "embed_token": "8dda88c56f0b4c907a917db2e642635586e4c338", - "available_zones": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Strava6": [ - { - "startTime": 1676891387649, - "executionTime": 187, - "source": [ - { - "previousNode": "Strava5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {} - } - ] - ] - } - } - ], - "Strava2": [ - { - "startTime": 1676891387836, - "executionTime": 227, - "source": [ - { - "previousNode": "Strava1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resource_state": 2, - "athlete": { - "object": true - }, - "name": "TestActivity", - "distance": 0, - "moving_time": 5, - "elapsed_time": 5, - "total_elevation_gain": 0, - "type": "Ride", - "sport_type": "Ride", - "workout_type": { - "object": true - }, - "id": 8591820220, - "start_date": "2023-02-20T10:09:45Z", - "start_date_local": "2023-02-20T11:09:45Z", - "timezone": "(GMT+01:00) Africa/Tunis", - "utc_offset": 3600, - "location_city": { - "object": true - }, - "location_state": { - "object": true - }, - "location_country": "Tunisia", - "achievement_count": 0, - "kudos_count": 0, - "comment_count": 0, - "athlete_count": 1, - "photo_count": 0, - "map": { - "object": true - }, - "trainer": false, - "commute": false, - "manual": true, - "private": false, - "visibility": "everyone", - "flagged": false, - "gear_id": { - "object": true - }, - "start_latlng": [ - "json array" - ], - "end_latlng": [ - "json array" - ], - "average_speed": 0, - "max_speed": 0, - "has_heartrate": false, - "heartrate_opt_out": false, - "display_hide_heartrate_option": false, - "upload_id": { - "object": true - }, - "external_id": { - "object": true - }, - "from_accepted_tag": false, - "pr_count": 0, - "total_photo_count": 0, - "has_kudoed": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Strava2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.886Z", - "stoppedAt": "2023-02-20T11:09:48.063Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/35-snapshot.json b/test-workflows/snapshots/35-snapshot.json deleted file mode 100644 index 41e57df854..0000000000 --- a/test-workflows/snapshots/35-snapshot.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344002190, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack": [ - { - "startTime": 1747344002190, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 121, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "", - "phone": "", - "skype": "", - "real_name": "nodeqa", - "real_name_normalized": "nodeqa", - "display_name": "", - "display_name_normalized": "", - "fields": { - "object": true - }, - "status_text": "Testing...", - "status_emoji": ":speech_balloon:", - "status_emoji_display_info": [ - "json array" - ], - "status_expiration": 0, - "avatar_hash": "gc81277605b1", - "email": "nodeqa@n8n.io", - "image_24": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-24.png", - "image_32": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-32.png", - "image_48": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-48.png", - "image_72": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png", - "image_192": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-192.png", - "image_512": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-512.png", - "status_text_canonical": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack13": [ - { - "startTime": 1747344002311, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 253, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "channel": "C01MZ82T9TR", - "ts": "1747344002.517089", - "message": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack1": [ - { - "startTime": 1747344002564, - "executionIndex": 3, - "source": [ - { - "previousNode": "Slack" - } - ], - "hints": [], - "executionTime": 250, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "", - "phone": "", - "skype": "", - "real_name": "nodeqa", - "real_name_normalized": "nodeqa", - "display_name": "", - "display_name_normalized": "", - "fields": { - "object": true - }, - "status_text": "Testing...", - "status_emoji": ":speech_balloon:", - "status_emoji_display_info": [ - "json array" - ], - "status_expiration": 0, - "avatar_hash": "gc81277605b1", - "email": "nodeqa@n8n.io", - "image_24": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-24.png", - "image_32": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-32.png", - "image_48": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-48.png", - "image_72": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png", - "image_192": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-192.png", - "image_512": "https://secure.gravatar.com/avatar/c81277605b129fdafaacede5ae34e07c.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-512.png", - "status_text_canonical": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack18": [ - { - "startTime": 1747344002814, - "executionIndex": 4, - "source": [ - { - "previousNode": "Slack13" - } - ], - "hints": [], - "executionTime": 165, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack24": [ - { - "startTime": 1747344002979, - "executionIndex": 5, - "source": [ - { - "previousNode": "Slack13" - } - ], - "hints": [], - "executionTime": 138, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "presence": "away", - "online": false, - "auto_away": false, - "manual_away": false, - "connection_count": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack19": [ - { - "startTime": 1747344003117, - "executionIndex": 6, - "source": [ - { - "previousNode": "Slack18" - } - ], - "hints": [], - "executionTime": 223, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "type": "message", - "message": { - "object": true - }, - "channel": "C01MZ82T9TR" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack25": [ - { - "startTime": 1747344003340, - "executionIndex": 7, - "source": [ - { - "previousNode": "Slack24" - } - ], - "hints": [], - "executionTime": 189, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "U01NE1E8FFU", - "team_id": "T01MZ82R8NB", - "name": "nodeqa", - "deleted": false, - "color": "9f69e7", - "real_name": "nodeqa", - "tz": "Europe/Brussels", - "tz_label": "Central European Summer Time", - "tz_offset": 7200, - "profile": { - "object": true - }, - "is_admin": true, - "is_owner": true, - "is_primary_owner": true, - "is_restricted": false, - "is_ultra_restricted": false, - "is_bot": false, - "is_app_user": false, - "updated": 1747344002, - "is_email_confirmed": true, - "has_2fa": false, - "who_can_share_contact_card": "EVERYONE" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack20": [ - { - "startTime": 1747344003529, - "executionIndex": 8, - "source": [ - { - "previousNode": "Slack19" - } - ], - "hints": [], - "executionTime": 152, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack14": [ - { - "startTime": 1747344003681, - "executionIndex": 9, - "source": [ - { - "previousNode": "Slack20" - } - ], - "hints": [], - "executionTime": 214, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "permalink": "https://n8n-qa.slack.com/archives/C01MZ82T9TR/p1747344002517089", - "channel": "C01MZ82T9TR" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack15": [ - { - "startTime": 1747344003895, - "executionIndex": 10, - "source": [ - { - "previousNode": "Slack14" - } - ], - "hints": [], - "executionTime": 233, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "channel": "C01MZ82T9TR", - "ts": "1747344002.517089", - "text": "Message Updated ", - "message": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack16": [ - { - "startTime": 1747344004128, - "executionIndex": 11, - "source": [ - { - "previousNode": "Slack15" - } - ], - "hints": [], - "executionTime": 222, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "message_ts": "1747344004.002900" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack17": [ - { - "startTime": 1747344004351, - "executionIndex": 12, - "source": [ - { - "previousNode": "Slack16" - } - ], - "hints": [], - "executionTime": 208, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true, - "channel": "C01MZ82T9TR", - "ts": "1747344002.517089" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Slack17" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:02.189Z", - "stoppedAt": "2025-05-15T21:20:04.559Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/36-snapshot.json b/test-workflows/snapshots/36-snapshot.json deleted file mode 100644 index 16b6d7df90..0000000000 --- a/test-workflows/snapshots/36-snapshot.json +++ /dev/null @@ -1,1007 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344002707, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack10": [ - { - "startTime": 1747344002707, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 466, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "F08SQHFSW92", - "created": 1747344002, - "timestamp": 1747344002, - "name": "-.txt", - "title": "Untitled", - "mimetype": "text/plain", - "filetype": "text", - "pretty_type": "Plain Text", - "user": "U01NE1E8FFU", - "user_team": "T01MZ82R8NB", - "editable": true, - "size": 72, - "mode": "snippet", - "is_external": false, - "external_type": "", - "is_public": true, - "public_url_shared": false, - "display_as_bot": false, - "username": "", - "url_private": "https://files.slack.com/files-pri/T01MZ82R8NB-F08SQHFSW92/-.txt", - "url_private_download": "https://files.slack.com/files-pri/T01MZ82R8NB-F08SQHFSW92/download/-.txt", - "permalink": "https://n8n-qa.slack.com/files/U01NE1E8FFU/F08SQHFSW92/-.txt", - "permalink_public": "https://slack-files.com/T01MZ82R8NB-F08SQHFSW92-b62bcefe91", - "edit_link": "https://n8n-qa.slack.com/files/U01NE1E8FFU/F08SQHFSW92/-.txt/edit", - "preview": "Test file upload Thu May 15 2025 22:20:02 GMT+0100 (Irish Standard Time)", - "preview_highlight": "
\n
\n
Test file upload Thu May 15 2025 22:20:02 GMT+0100 (Irish Standard Time)
\n
\n
\n", - "lines": 1, - "lines_more": 0, - "preview_is_truncated": false, - "comments_count": 0, - "is_starred": false, - "shares": { - "object": true - }, - "channels": [ - "json array" - ], - "groups": [ - "json array" - ], - "ims": [ - "json array" - ], - "has_more_shares": false, - "has_rich_preview": false, - "file_access": "visible" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack2": [ - { - "startTime": 1747344003173, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 584, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "testchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "testchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344003395, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "last_read": "0000000000.000000", - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ], - "priority": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack24": [ - { - "startTime": 1747344003757, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 133, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack11": [ - { - "startTime": 1747344003890, - "executionIndex": 4, - "source": [ - { - "previousNode": "Slack10" - } - ], - "hints": [], - "executionTime": 164, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ], - "Slack9": [ - { - "startTime": 1747344004055, - "executionIndex": 5, - "source": [ - { - "previousNode": "Slack2" - } - ], - "hints": [], - "executionTime": 562, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344004305, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "last_read": "0000000000.000000", - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack21": [ - { - "startTime": 1747344004617, - "executionIndex": 6, - "source": [ - { - "previousNode": "Slack24" - } - ], - "hints": [], - "executionTime": 220, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack3": [ - { - "startTime": 1747344004837, - "executionIndex": 7, - "source": [ - { - "previousNode": "Slack9" - } - ], - "hints": [], - "executionTime": 189, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344004977, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": false, - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack22": [ - { - "startTime": 1747344005026, - "executionIndex": 8, - "source": [ - { - "previousNode": "Slack21" - } - ], - "hints": [], - "executionTime": 131, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "type": "channel", - "channel": "C01MZ82T9TR", - "date_create": 1747344004 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack4": [ - { - "startTime": 1747344005157, - "executionIndex": 9, - "source": [ - { - "previousNode": "Slack3" - } - ], - "hints": [], - "executionTime": 268, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344005369, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": false, - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack23": [ - { - "startTime": 1747344005425, - "executionIndex": 10, - "source": [ - { - "previousNode": "Slack22" - } - ], - "hints": [], - "executionTime": 257, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack5": [ - { - "startTime": 1747344005682, - "executionIndex": 11, - "source": [ - { - "previousNode": "Slack4" - } - ], - "hints": [], - "executionTime": 206, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344005369, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "last_read": "0000000000.000000", - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack13": [ - { - "startTime": 1747344005888, - "executionIndex": 12, - "source": [ - { - "previousNode": "Slack5" - } - ], - "hints": [], - "executionTime": 267, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344005369, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "last_read": "0000000000.000000", - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack17": [ - { - "startTime": 1747344006155, - "executionIndex": 13, - "source": [ - { - "previousNode": "Slack13" - } - ], - "hints": [], - "executionTime": 268, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack16": [ - { - "startTime": 1747344006423, - "executionIndex": 14, - "source": [ - { - "previousNode": "Slack17" - } - ], - "hints": [], - "executionTime": 497, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C08SK5EM3HT", - "name": "renamedtestchannelzpixicyzv", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1747344003, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "renamedtestchannelzpixicyzv", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1747344005369, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "last_read": "1747344005.401359", - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "previous_names": [ - "json array" - ], - "priority": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack6": [ - { - "startTime": 1747344006920, - "executionIndex": 15, - "source": [ - { - "previousNode": "Slack16" - } - ], - "hints": [], - "executionTime": 216, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "C01MZ82T9TR", - "name": "random", - "is_channel": true, - "is_group": false, - "is_im": false, - "is_mpim": false, - "is_private": false, - "created": 1613575358, - "is_archived": false, - "is_general": false, - "unlinked": 0, - "name_normalized": "random", - "is_shared": false, - "is_org_shared": false, - "is_pending_ext_shared": false, - "pending_shared": [ - "json array" - ], - "context_team_id": "T01MZ82R8NB", - "updated": 1746595136190, - "parent_conversation": { - "object": true - }, - "creator": "U01NE1E8FFU", - "is_ext_shared": false, - "shared_team_ids": [ - "json array" - ], - "pending_connected_team_ids": [ - "json array" - ], - "is_member": true, - "topic": { - "object": true - }, - "purpose": { - "object": true - }, - "properties": { - "object": true - }, - "previous_names": [ - "json array" - ], - "num_members": 2 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack7": [ - { - "startTime": 1747344007136, - "executionIndex": 16, - "source": [ - { - "previousNode": "Slack6" - } - ], - "hints": [], - "executionTime": 207, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "subtype": "channel_join", - "user": "U01NE1E8FFU", - "text": "<@U01NE1E8FFU> has joined the channel", - "type": "message", - "ts": "1747344006.709799" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack18": [ - { - "startTime": 1747344007343, - "executionIndex": 17, - "source": [ - { - "previousNode": "Slack7" - } - ], - "hints": [], - "executionTime": 150, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "subtype": "channel_join", - "user": "U01NE1E8FFU", - "text": "<@U01NE1E8FFU> has joined the channel", - "type": "message", - "ts": "1747344006.709799" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack8": [ - { - "startTime": 1747344007493, - "executionIndex": 18, - "source": [ - { - "previousNode": "Slack18" - } - ], - "hints": [], - "executionTime": 195, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "member": "U01N08LEY9M" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack": [ - { - "startTime": 1747344007688, - "executionIndex": 19, - "source": [ - { - "previousNode": "Slack8" - } - ], - "hints": [], - "executionTime": 279, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack14": [ - { - "startTime": 1747344007967, - "executionIndex": 20, - "source": [ - { - "previousNode": "Slack" - } - ], - "hints": [], - "executionTime": 439, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Slack1": [ - { - "startTime": 1747344008406, - "executionIndex": 21, - "source": [ - { - "previousNode": "Slack14" - } - ], - "hints": [], - "executionTime": 283, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ok": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Slack1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:02.706Z", - "stoppedAt": "2025-05-15T21:20:08.689Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/37-snapshot.json b/test-workflows/snapshots/37-snapshot.json deleted file mode 100644 index 6e62adb609..0000000000 --- a/test-workflows/snapshots/37-snapshot.json +++ /dev/null @@ -1,1205 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344003419, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab": [ - { - "startTime": 1747344003419, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 610, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 24497029, - "description": { - "object": true - }, - "name": "nodemationQA", - "name_with_namespace": "nodeqa / nodemationQA", - "path": "nodemationqa", - "path_with_namespace": "nodeqa/nodemationqa", - "created_at": "2021-02-18T08:25:21.075Z", - "default_branch": "master", - "tag_list": [ - "json array" - ], - "ssh_url_to_repo": "git@gitlab.com:nodeqa/nodemationqa.git", - "http_url_to_repo": "https://gitlab.com/nodeqa/nodemationqa.git", - "web_url": "https://gitlab.com/nodeqa/nodemationqa", - "readme_url": "https://gitlab.com/nodeqa/nodemationqa/-/blob/master/README.md", - "forks_count": 0, - "avatar_url": { - "object": true - }, - "star_count": 0, - "last_activity_at": "2025-05-15T21:11:56.291Z", - "namespace": { - "object": true - }, - "container_registry_image_prefix": "registry.gitlab.com/nodeqa/nodemationqa", - "_links": { - "object": true - }, - "marked_for_deletion_at": { - "object": true - }, - "marked_for_deletion_on": { - "object": true - }, - "packages_enabled": true, - "empty_repo": false, - "archived": false, - "visibility": "private", - "resolve_outdated_diff_discussions": false, - "container_expiration_policy": { - "object": true - }, - "repository_object_format": "sha1", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "jobs_enabled": true, - "snippets_enabled": true, - "container_registry_enabled": true, - "service_desk_enabled": true, - "service_desk_address": "contact-project+nodeqa-nodemationqa-24497029-issue-@incoming.gitlab.com", - "can_create_merge_request_in": true, - "issues_access_level": "enabled", - "repository_access_level": "enabled", - "merge_requests_access_level": "enabled", - "forking_access_level": "enabled", - "wiki_access_level": "enabled", - "builds_access_level": "enabled", - "snippets_access_level": "enabled", - "pages_access_level": "private", - "analytics_access_level": "enabled", - "container_registry_access_level": "enabled", - "security_and_compliance_access_level": "private", - "releases_access_level": "enabled", - "environments_access_level": "enabled", - "feature_flags_access_level": "enabled", - "infrastructure_access_level": "enabled", - "monitor_access_level": "enabled", - "model_experiments_access_level": "enabled", - "model_registry_access_level": "enabled", - "emails_disabled": false, - "emails_enabled": true, - "shared_runners_enabled": true, - "lfs_enabled": true, - "creator_id": 8226562, - "import_url": { - "object": true - }, - "import_type": { - "object": true - }, - "import_status": "none", - "import_error": { - "object": true - }, - "open_issues_count": 2632, - "description_html": "", - "updated_at": "2025-05-15T21:19:09.484Z", - "ci_default_git_depth": 50, - "ci_delete_pipelines_in_seconds": { - "object": true - }, - "ci_forward_deployment_enabled": true, - "ci_forward_deployment_rollback_allowed": true, - "ci_job_token_scope_enabled": false, - "ci_separated_caches": true, - "ci_allow_fork_pipelines_to_run_in_parent_project": true, - "ci_id_token_sub_claim_components": [ - "json array" - ], - "build_git_strategy": "fetch", - "keep_latest_artifact": true, - "restrict_user_defined_variables": false, - "ci_pipeline_variables_minimum_override_role": "developer", - "runner_token_expiration_interval": { - "object": true - }, - "group_runners_enabled": true, - "auto_cancel_pending_pipelines": "enabled", - "build_timeout": 3600, - "auto_devops_enabled": false, - "auto_devops_deploy_strategy": "continuous", - "ci_push_repository_for_job_token_allowed": false, - "ci_config_path": "", - "public_jobs": true, - "shared_with_groups": [ - "json array" - ], - "only_allow_merge_if_pipeline_succeeds": false, - "allow_merge_on_skipped_pipeline": { - "object": true - }, - "request_access_enabled": true, - "only_allow_merge_if_all_discussions_are_resolved": false, - "remove_source_branch_after_merge": true, - "printing_merge_request_link_enabled": true, - "merge_method": "merge", - "merge_request_title_regex": { - "object": true - }, - "squash_option": "default_off", - "enforce_auth_checks_on_uploads": true, - "suggestion_commit_message": { - "object": true - }, - "merge_commit_template": { - "object": true - }, - "squash_commit_template": { - "object": true - }, - "issue_branch_template": { - "object": true - }, - "warn_about_potentially_unwanted_characters": true, - "autoclose_referenced_issues": true, - "max_artifacts_size": { - "object": true - }, - "external_authorization_classification_label": "", - "requirements_enabled": false, - "requirements_access_level": "enabled", - "security_and_compliance_enabled": true, - "compliance_frameworks": [ - "json array" - ], - "permissions": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab2": [ - { - "startTime": 1747344004029, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 555, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 167427044, - "iid": 2633, - "project_id": 24497029, - "title": "Issue - Thu May 15 2025", - "description": "QA Test on Thu May 15 2025", - "state": "opened", - "created_at": "2025-05-15T21:20:04.389Z", - "updated_at": "2025-05-15T21:20:04.389Z", - "closed_at": { - "object": true - }, - "closed_by": { - "object": true - }, - "labels": [ - "json array" - ], - "milestone": { - "object": true - }, - "assignees": [ - "json array" - ], - "author": { - "object": true - }, - "type": "ISSUE", - "assignee": { - "object": true - }, - "user_notes_count": 0, - "merge_requests_count": 0, - "upvotes": 0, - "downvotes": 0, - "due_date": { - "object": true - }, - "confidential": false, - "discussion_locked": { - "object": true - }, - "issue_type": "issue", - "web_url": "https://gitlab.com/nodeqa/nodemationqa/-/issues/2633", - "time_stats": { - "object": true - }, - "task_completion_status": { - "object": true - }, - "blocking_issues_count": 0, - "has_tasks": true, - "task_status": "0 of 0 checklist items completed", - "_links": { - "object": true - }, - "references": { - "object": true - }, - "severity": "UNKNOWN", - "subscribed": true, - "moved_to_id": { - "object": true - }, - "imported": false, - "imported_from": "none", - "service_desk_reply_to": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab7": [ - { - "startTime": 1747344004584, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 909, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Release1747344004587", - "tag_name": "Release-tag-test1747344004589", - "description": { - "object": true - }, - "created_at": "2025-05-15T21:20:05.363Z", - "released_at": "2025-05-15T21:20:05.363Z", - "upcoming_release": false, - "author": { - "object": true - }, - "commit": { - "object": true - }, - "commit_path": "/nodeqa/nodemationqa/-/commit/dd2f13c1cc94dfd37e0c3063841860c5d0ae7252", - "tag_path": "/nodeqa/nodemationqa/-/tags/Release-tag-test1747344004589", - "assets": { - "object": true - }, - "evidences": [ - "json array" - ], - "_links": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab8": [ - { - "startTime": 1747344005493, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 626, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 24497628, - "description": "Project created for gitlab node QA teting", - "name": "QATestProject", - "name_with_namespace": "n8n qa / QATestProject", - "path": "qatestproject", - "path_with_namespace": "n8nqa/qatestproject", - "created_at": "2021-02-18T08:40:49.130Z", - "default_branch": "main", - "tag_list": [ - "json array" - ], - "ssh_url_to_repo": "git@gitlab.com:n8nqa/qatestproject.git", - "http_url_to_repo": "https://gitlab.com/n8nqa/qatestproject.git", - "web_url": "https://gitlab.com/n8nqa/qatestproject", - "readme_url": { - "object": true - }, - "forks_count": 0, - "avatar_url": { - "object": true - }, - "star_count": 0, - "last_activity_at": "2023-04-30T00:20:13.620Z", - "namespace": { - "object": true - }, - "container_registry_image_prefix": "registry.gitlab.com/n8nqa/qatestproject", - "_links": { - "object": true - }, - "marked_for_deletion_at": { - "object": true - }, - "marked_for_deletion_on": { - "object": true - }, - "packages_enabled": true, - "empty_repo": true, - "archived": false, - "visibility": "private", - "owner": { - "object": true - }, - "resolve_outdated_diff_discussions": false, - "container_expiration_policy": { - "object": true - }, - "repository_object_format": "sha1", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "jobs_enabled": true, - "snippets_enabled": true, - "container_registry_enabled": true, - "service_desk_enabled": true, - "service_desk_address": "contact-project+n8nqa-qatestproject-24497628-issue-@incoming.gitlab.com", - "can_create_merge_request_in": true, - "issues_access_level": "enabled", - "repository_access_level": "enabled", - "merge_requests_access_level": "enabled", - "forking_access_level": "enabled", - "wiki_access_level": "enabled", - "builds_access_level": "enabled", - "snippets_access_level": "enabled", - "pages_access_level": "private", - "analytics_access_level": "enabled", - "container_registry_access_level": "enabled", - "security_and_compliance_access_level": "private", - "releases_access_level": "enabled", - "environments_access_level": "enabled", - "feature_flags_access_level": "enabled", - "infrastructure_access_level": "enabled", - "monitor_access_level": "enabled", - "model_experiments_access_level": "enabled", - "model_registry_access_level": "enabled", - "emails_disabled": false, - "emails_enabled": true, - "shared_runners_enabled": true, - "lfs_enabled": true, - "creator_id": 8226562, - "import_url": { - "object": true - }, - "import_type": { - "object": true - }, - "import_status": "none", - "open_issues_count": 2, - "description_html": "

Project created for gitlab node QA teting

", - "updated_at": "2024-01-16T16:24:11.955Z", - "ci_default_git_depth": 50, - "ci_delete_pipelines_in_seconds": { - "object": true - }, - "ci_forward_deployment_enabled": true, - "ci_forward_deployment_rollback_allowed": true, - "ci_job_token_scope_enabled": false, - "ci_separated_caches": true, - "ci_allow_fork_pipelines_to_run_in_parent_project": true, - "ci_id_token_sub_claim_components": [ - "json array" - ], - "build_git_strategy": "fetch", - "keep_latest_artifact": true, - "restrict_user_defined_variables": false, - "ci_pipeline_variables_minimum_override_role": "developer", - "runner_token_expiration_interval": { - "object": true - }, - "group_runners_enabled": true, - "auto_cancel_pending_pipelines": "enabled", - "build_timeout": 3600, - "auto_devops_enabled": false, - "auto_devops_deploy_strategy": "continuous", - "ci_push_repository_for_job_token_allowed": false, - "runners_token": "GR1348941pyFzz2y953wFx1bxKt4A", - "ci_config_path": "", - "public_jobs": true, - "shared_with_groups": [ - "json array" - ], - "only_allow_merge_if_pipeline_succeeds": false, - "allow_merge_on_skipped_pipeline": { - "object": true - }, - "request_access_enabled": true, - "only_allow_merge_if_all_discussions_are_resolved": false, - "remove_source_branch_after_merge": true, - "printing_merge_request_link_enabled": true, - "merge_method": "merge", - "merge_request_title_regex": { - "object": true - }, - "squash_option": "default_off", - "enforce_auth_checks_on_uploads": true, - "suggestion_commit_message": { - "object": true - }, - "merge_commit_template": { - "object": true - }, - "squash_commit_template": { - "object": true - }, - "issue_branch_template": { - "object": true - }, - "warn_about_potentially_unwanted_characters": true, - "autoclose_referenced_issues": true, - "max_artifacts_size": { - "object": true - }, - "external_authorization_classification_label": "", - "requirements_enabled": false, - "requirements_access_level": "enabled", - "security_and_compliance_enabled": true, - "compliance_frameworks": [ - "json array" - ], - "permissions": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab1": [ - { - "startTime": 1747344006119, - "executionIndex": 5, - "source": [ - { - "previousNode": "Gitlab" - } - ], - "hints": [], - "executionTime": 1674, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 167427044, - "iid": 2633, - "project_id": 24497029, - "title": "Issue - Thu May 15 2025", - "description": "QA Test on Thu May 15 2025", - "state": "opened", - "created_at": "2025-05-15T21:20:04.389Z", - "updated_at": "2025-05-15T21:20:04.389Z", - "closed_at": { - "object": true - }, - "closed_by": { - "object": true - }, - "labels": [ - "json array" - ], - "milestone": { - "object": true - }, - "assignees": [ - "json array" - ], - "author": { - "object": true - }, - "type": "ISSUE", - "assignee": { - "object": true - }, - "user_notes_count": 0, - "merge_requests_count": 0, - "upvotes": 0, - "downvotes": 0, - "due_date": { - "object": true - }, - "confidential": false, - "discussion_locked": { - "object": true - }, - "issue_type": "issue", - "web_url": "https://gitlab.com/nodeqa/nodemationqa/-/issues/2633", - "time_stats": { - "object": true - }, - "task_completion_status": { - "object": true - }, - "blocking_issues_count": 0, - "has_tasks": true, - "task_status": "0 of 0 checklist items completed", - "_links": { - "object": true - }, - "references": { - "object": true - }, - "severity": "UNKNOWN", - "moved_to_id": { - "object": true - }, - "imported": false, - "imported_from": "none", - "service_desk_reply_to": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab3": [ - { - "startTime": 1747344007793, - "executionIndex": 6, - "source": [ - { - "previousNode": "Gitlab2" - } - ], - "hints": [], - "executionTime": 410, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 2507656340, - "type": { - "object": true - }, - "body": "Comment on issue - Thu May 15 2025 22:20:07 GMT+0100 (Irish Standard Time)", - "author": { - "object": true - }, - "created_at": "2025-05-15T21:20:08.100Z", - "updated_at": "2025-05-15T21:20:08.100Z", - "system": false, - "noteable_id": 167427044, - "noteable_type": "Issue", - "project_id": 24497029, - "resolvable": false, - "confidential": false, - "internal": false, - "imported": false, - "imported_from": "none", - "noteable_iid": 2633, - "commands_changes": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab9": [ - { - "startTime": 1747344008203, - "executionIndex": 7, - "source": [ - { - "previousNode": "Gitlab7" - } - ], - "hints": [], - "executionTime": 618, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Release1747344004587", - "tag_name": "Release-tag-test1747344004589", - "description": { - "object": true - }, - "created_at": "2025-05-15T21:20:05.363Z", - "released_at": "2025-05-15T21:20:05.363Z", - "upcoming_release": false, - "author": { - "object": true - }, - "commit": { - "object": true - }, - "commit_path": "/nodeqa/nodemationqa/-/commit/dd2f13c1cc94dfd37e0c3063841860c5d0ae7252", - "tag_path": "/nodeqa/nodemationqa/-/tags/Release-tag-test1747344004589", - "assets": { - "object": true - }, - "evidences": [ - "json array" - ], - "_links": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab4": [ - { - "startTime": 1747344008821, - "executionIndex": 8, - "source": [ - { - "previousNode": "Gitlab3" - } - ], - "hints": [], - "executionTime": 613, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 167427044, - "iid": 2633, - "project_id": 24497029, - "title": "Issue - Thu May 15 2025", - "description": "Edited QA Test on Thu May 15 2025", - "state": "opened", - "created_at": "2025-05-15T21:20:04.389Z", - "updated_at": "2025-05-15T21:20:09.169Z", - "closed_at": { - "object": true - }, - "closed_by": { - "object": true - }, - "labels": [ - "json array" - ], - "milestone": { - "object": true - }, - "assignees": [ - "json array" - ], - "author": { - "object": true - }, - "type": "ISSUE", - "assignee": { - "object": true - }, - "user_notes_count": 1, - "merge_requests_count": 0, - "upvotes": 0, - "downvotes": 0, - "due_date": { - "object": true - }, - "confidential": false, - "discussion_locked": { - "object": true - }, - "issue_type": "issue", - "web_url": "https://gitlab.com/nodeqa/nodemationqa/-/issues/2633", - "time_stats": { - "object": true - }, - "task_completion_status": { - "object": true - }, - "blocking_issues_count": 0, - "has_tasks": true, - "task_status": "0 of 0 checklist items completed", - "_links": { - "object": true - }, - "references": { - "object": true - }, - "severity": "UNKNOWN", - "subscribed": true, - "moved_to_id": { - "object": true - }, - "imported": false, - "imported_from": "none", - "service_desk_reply_to": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab10": [ - { - "startTime": 1747344009434, - "executionIndex": 9, - "source": [ - { - "previousNode": "Gitlab9" - } - ], - "hints": [], - "executionTime": 662, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Release1747344004587", - "tag_name": "Release-tag-test1747344004589", - "description": { - "object": true - }, - "created_at": "2025-05-15T21:20:05.363Z", - "released_at": "2025-05-15T21:20:05.363Z", - "upcoming_release": false, - "author": { - "object": true - }, - "commit": { - "object": true - }, - "commit_path": "/nodeqa/nodemationqa/-/commit/dd2f13c1cc94dfd37e0c3063841860c5d0ae7252", - "tag_path": "/nodeqa/nodemationqa/-/tags/Release-tag-test1747344004589", - "assets": { - "object": true - }, - "evidences": [ - "json array" - ], - "_links": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab5": [ - { - "startTime": 1747344010096, - "executionIndex": 10, - "source": [ - { - "previousNode": "Gitlab4" - } - ], - "hints": [], - "executionTime": 581, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 167427044, - "iid": 2633, - "project_id": 24497029, - "title": "Issue - Thu May 15 2025", - "description": "Edited QA Test on Thu May 15 2025", - "state": "opened", - "created_at": "2025-05-15T21:20:04.389Z", - "updated_at": "2025-05-15T21:20:09.169Z", - "closed_at": { - "object": true - }, - "closed_by": { - "object": true - }, - "labels": [ - "json array" - ], - "milestone": { - "object": true - }, - "assignees": [ - "json array" - ], - "author": { - "object": true - }, - "type": "ISSUE", - "assignee": { - "object": true - }, - "user_notes_count": 1, - "merge_requests_count": 0, - "upvotes": 0, - "downvotes": 0, - "due_date": { - "object": true - }, - "confidential": false, - "discussion_locked": { - "object": true - }, - "issue_type": "issue", - "web_url": "https://gitlab.com/nodeqa/nodemationqa/-/issues/2633", - "time_stats": { - "object": true - }, - "task_completion_status": { - "object": true - }, - "blocking_issues_count": 0, - "has_tasks": true, - "task_status": "0 of 0 checklist items completed", - "_links": { - "object": true - }, - "references": { - "object": true - }, - "severity": "UNKNOWN", - "subscribed": true, - "moved_to_id": { - "object": true - }, - "imported": false, - "imported_from": "none", - "service_desk_reply_to": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab11": [ - { - "startTime": 1747344010677, - "executionIndex": 11, - "source": [ - { - "previousNode": "Gitlab10" - } - ], - "hints": [], - "executionTime": 497, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "UpdatedRelease1747344004587", - "tag_name": "Release-tag-test1747344004589", - "description": { - "object": true - }, - "created_at": "2025-05-15T21:20:05.363Z", - "released_at": "2025-05-15T21:20:05.363Z", - "upcoming_release": false, - "author": { - "object": true - }, - "commit": { - "object": true - }, - "commit_path": "/nodeqa/nodemationqa/-/commit/dd2f13c1cc94dfd37e0c3063841860c5d0ae7252", - "tag_path": "/nodeqa/nodemationqa/-/tags/Release-tag-test1747344004589", - "assets": { - "object": true - }, - "evidences": [ - "json array" - ], - "_links": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab6": [ - { - "startTime": 1747344011174, - "executionIndex": 12, - "source": [ - { - "previousNode": "Gitlab5" - } - ], - "hints": [], - "executionTime": 505, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 167427044, - "iid": 2633, - "project_id": 24497029, - "title": "Issue - Thu May 15 2025", - "description": "Edited QA Test on Thu May 15 2025", - "state": "opened", - "created_at": "2025-05-15T21:20:04.389Z", - "updated_at": "2025-05-15T21:20:09.169Z", - "closed_at": { - "object": true - }, - "closed_by": { - "object": true - }, - "labels": [ - "json array" - ], - "milestone": { - "object": true - }, - "assignees": [ - "json array" - ], - "author": { - "object": true - }, - "type": "ISSUE", - "assignee": { - "object": true - }, - "user_notes_count": 1, - "merge_requests_count": 0, - "upvotes": 0, - "downvotes": 0, - "due_date": { - "object": true - }, - "confidential": false, - "discussion_locked": { - "object": true - }, - "issue_type": "issue", - "web_url": "https://gitlab.com/nodeqa/nodemationqa/-/issues/2633", - "time_stats": { - "object": true - }, - "task_completion_status": { - "object": true - }, - "blocking_issues_count": 0, - "has_tasks": true, - "task_status": "0 of 0 checklist items completed", - "_links": { - "object": true - }, - "references": { - "object": true - }, - "severity": "UNKNOWN", - "subscribed": true, - "moved_to_id": { - "object": true - }, - "imported": false, - "imported_from": "none", - "service_desk_reply_to": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gitlab12": [ - { - "startTime": 1747344011679, - "executionIndex": 13, - "source": [ - { - "previousNode": "Gitlab11" - } - ], - "hints": [], - "executionTime": 479, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "UpdatedRelease1747344004587", - "tag_name": "Release-tag-test1747344004589", - "description": { - "object": true - }, - "created_at": "2025-05-15T21:20:05.363Z", - "released_at": "2025-05-15T21:20:05.363Z", - "upcoming_release": false, - "author": { - "object": true - }, - "commit": { - "object": true - }, - "commit_path": "/nodeqa/nodemationqa/-/commit/dd2f13c1cc94dfd37e0c3063841860c5d0ae7252", - "tag_path": "/nodeqa/nodemationqa/-/tags/Release-tag-test1747344004589", - "assets": { - "object": true - }, - "evidences": [ - "json array" - ], - "_links": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Gitlab12" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:03.418Z", - "stoppedAt": "2025-05-15T21:20:12.158Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/38-snapshot.json b/test-workflows/snapshots/38-snapshot.json deleted file mode 100644 index 21ed8f5542..0000000000 --- a/test-workflows/snapshots/38-snapshot.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891387033, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Medium": [ - { - "startTime": 1676891387034, - "executionTime": 642, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "537ba1e07580", - "title": "Medium node TestQA Draft Mon, 20 Feb 2023 11:09:47 GMT", - "authorId": "14cdac018d33eefeb5cc1a5acbb70b7a7baea3b748f4a7183f782fb3dcac8b393", - "url": "https://medium.com/@nodeqa/537ba1e07580", - "canonicalUrl": "", - "publishStatus": "draft", - "license": "", - "licenseUrl": "https://policy.medium.com/medium-terms-of-service-9db0094a1e0f", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Medium1": [ - { - "startTime": 1676891387677, - "executionTime": 430, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "f639e888aee4", - "name": "TestPublication[n8n]", - "description": "test", - "url": "https://medium.com/testpublication-n8n", - "imageUrl": "https://cdn-images-1.medium.com/fit/c/400/400/1*F027-8q7ncDC6CAC5c4ong.png" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Medium1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:47.032Z", - "stoppedAt": "2023-02-20T11:09:48.107Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/40-snapshot.json b/test-workflows/snapshots/40-snapshot.json deleted file mode 100644 index b9dc786e39..0000000000 --- a/test-workflows/snapshots/40-snapshot.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858578, - "executionTime": 2, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail8": [ - { - "startTime": 1678116858580, - "executionTime": 896, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f2c87140e8", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail4": [ - { - "startTime": 1678116859476, - "executionTime": 340, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "Label_226", - "name": "TestLabel1678116859477", - "messageListVisibility": "show", - "labelListVisibility": "labelShow" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail": [ - { - "startTime": 1678116859816, - "executionTime": 326, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "r30886123786721106", - "message": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail13": [ - { - "startTime": 1678116860142, - "executionTime": 890, - "source": [ - { - "previousNode": "Gmail8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f2c87140e8", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail5": [ - { - "startTime": 1678116861032, - "executionTime": 221, - "source": [ - { - "previousNode": "Gmail4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "CHAT", - "name": "CHAT", - "messageListVisibility": "hide", - "labelListVisibility": "labelHide", - "type": "system" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail1": [ - { - "startTime": 1678116861253, - "executionTime": 392, - "source": [ - { - "previousNode": "Gmail" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "r30886123786721106", - "threadId": "186b78f30f9d05d9", - "labelIds": [ - "json array" - ], - "sizeEstimate": 434, - "headers": { - "object": true - }, - "text": "Draft Test Body\n", - "textAsHtml": "

Draft Test Body

", - "subject": "Draft created at Mon, 06 Mar 2023 15:34:19 GMT", - "date": "2023-03-06T15:34:19.000Z", - "from": { - "object": true - }, - "messageId": "186b78f30f9d05d9", - "html": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail15": [ - { - "startTime": 1678116861645, - "executionTime": 437, - "source": [ - { - "previousNode": "Gmail13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f2c87140e8", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail7": [ - { - "startTime": 1678116862082, - "executionTime": 190, - "source": [ - { - "previousNode": "Gmail5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "Label_226", - "name": "TestLabel1678116859477", - "messageListVisibility": "show", - "labelListVisibility": "labelShow", - "type": "user", - "messagesTotal": 0, - "messagesUnread": 0, - "threadsTotal": 0, - "threadsUnread": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail2": [ - { - "startTime": 1678116862273, - "executionTime": 220, - "source": [ - { - "previousNode": "Gmail1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "r30886123786721106", - "threadId": "186b78f30f9d05d9", - "labelIds": [ - "json array" - ], - "sizeEstimate": 434, - "headers": { - "object": true - }, - "text": "Draft Test Body\n", - "textAsHtml": "

Draft Test Body

", - "subject": "Draft created at Mon, 06 Mar 2023 15:34:19 GMT", - "date": "2023-03-06T15:34:19.000Z", - "from": { - "object": true - }, - "messageId": "186b78f30f9d05d9", - "html": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail9": [ - { - "startTime": 1678116862493, - "executionTime": 320, - "source": [ - { - "previousNode": "Gmail15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f30f9d05d9", - "threadId": "186b78f30f9d05d9", - "labelIds": [ - "json array" - ], - "sizeEstimate": 434, - "headers": { - "object": true - }, - "text": "Draft Test Body\n", - "textAsHtml": "

Draft Test Body

", - "subject": "Draft created at Mon, 06 Mar 2023 15:34:19 GMT", - "date": "2023-03-06T15:34:19.000Z", - "from": { - "object": true - }, - "messageId": "", - "html": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail16": [ - { - "startTime": 1678116862813, - "executionTime": 326, - "source": [ - { - "previousNode": "Gmail7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail3": [ - { - "startTime": 1678116863140, - "executionTime": 423, - "source": [ - { - "previousNode": "Gmail2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail10": [ - { - "startTime": 1678116863563, - "executionTime": 160, - "source": [ - { - "previousNode": "Gmail9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f2c87140e8", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ], - "sizeEstimate": 474, - "headers": { - "object": true - }, - "text": "Email Body Mon, 06 Mar 2023 15:34:18 GMT\n", - "textAsHtml": "

Email Body Mon, 06 Mar 2023 15:34:18 GMT

", - "subject": "Subject Mon, 06 Mar 2023 15:34:18 GMT", - "date": "2023-03-06T15:34:19.000Z", - "to": { - "object": true - }, - "from": { - "object": true - }, - "messageId": "", - "html": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Gmail12": [ - { - "startTime": 1678116863723, - "executionTime": 504, - "source": [ - { - "previousNode": "Gmail10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f41bd42c16", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 Second": [ - { - "startTime": 1678116864227, - "executionTime": 510, - "source": [ - { - "previousNode": "Gmail12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "186b78f41bd42c16", - "threadId": "186b78f2c87140e8", - "labelIds": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Gmail11": [ - { - "startTime": 1678116864738, - "executionTime": 693, - "source": [ - { - "previousNode": "Sleep 0.5 Second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 Second1": [ - { - "startTime": 1678116865431, - "executionTime": 504, - "source": [ - { - "previousNode": "Gmail11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Gmail14": [ - { - "startTime": 1678116865935, - "executionTime": 465, - "source": [ - { - "previousNode": "Sleep 0.5 Second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Gmail14" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.574Z", - "stoppedAt": "2023-03-06T15:34:26.401Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/41-snapshot.json b/test-workflows/snapshots/41-snapshot.json deleted file mode 100644 index 3b7c303de2..0000000000 --- a/test-workflows/snapshots/41-snapshot.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858375, - "executionTime": 2, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar1": [ - { - "startTime": 1678116858378, - "executionTime": 930, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "calendar#event", - "etag": "\"3356233718144000\"", - "id": "47hbcbv038ub5d4rvhu6adpl7c", - "status": "confirmed", - "htmlLink": "https://www.google.com/calendar/event?eid=NDdoYmNidjAzOHViNWQ0cnZodTZhZHBsN2Mgbm9kZThxYUBt", - "created": "2023-03-06T15:34:19.000Z", - "updated": "2023-03-06T15:34:19.072Z", - "description": "Test", - "creator": { - "object": true - }, - "organizer": { - "object": true - }, - "start": { - "object": true - }, - "end": { - "object": true - }, - "iCalUID": "47hbcbv038ub5d4rvhu6adpl7c@google.com", - "sequence": 0, - "reminders": { - "object": true - }, - "eventType": "default" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar": [ - { - "startTime": 1678116859308, - "executionTime": 364, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "available": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar3": [ - { - "startTime": 1678116859673, - "executionTime": 368, - "source": [ - { - "previousNode": "Google Calendar1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "calendar#event", - "etag": "\"3228659471956000\"", - "id": "svnpd5hm5nifk9sgl76vc5o0bk", - "status": "confirmed", - "htmlLink": "https://www.google.com/calendar/event?eid=c3ZucGQ1aG01bmlmazlzZ2w3NnZjNW8wYmsgbm9kZThxYUBt", - "created": "2021-02-26T08:55:33.000Z", - "updated": "2021-02-26T08:55:35.978Z", - "description": "Test", - "colorId": "7", - "creator": { - "object": true - }, - "organizer": { - "object": true - }, - "start": { - "object": true - }, - "end": { - "object": true - }, - "iCalUID": "svnpd5hm5nifk9sgl76vc5o0bk@google.com", - "sequence": 0, - "reminders": { - "object": true - }, - "eventType": "default" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar2": [ - { - "startTime": 1678116860041, - "executionTime": 351, - "source": [ - { - "previousNode": "Google Calendar3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "calendar#event", - "etag": "\"3356233718144000\"", - "id": "47hbcbv038ub5d4rvhu6adpl7c", - "status": "confirmed", - "htmlLink": "https://www.google.com/calendar/event?eid=NDdoYmNidjAzOHViNWQ0cnZodTZhZHBsN2Mgbm9kZThxYUBt", - "created": "2023-03-06T15:34:19.000Z", - "updated": "2023-03-06T15:34:19.072Z", - "description": "Test", - "creator": { - "object": true - }, - "organizer": { - "object": true - }, - "start": { - "object": true - }, - "end": { - "object": true - }, - "iCalUID": "47hbcbv038ub5d4rvhu6adpl7c@google.com", - "sequence": 0, - "reminders": { - "object": true - }, - "eventType": "default" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar4": [ - { - "startTime": 1678116860392, - "executionTime": 639, - "source": [ - { - "previousNode": "Google Calendar2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "calendar#event", - "etag": "\"3356233721642000\"", - "id": "47hbcbv038ub5d4rvhu6adpl7c", - "status": "confirmed", - "htmlLink": "https://www.google.com/calendar/event?eid=NDdoYmNidjAzOHViNWQ0cnZodTZhZHBsN2Mgbm9kZThxYUBt", - "created": "2023-03-06T15:34:19.000Z", - "updated": "2023-03-06T15:34:20.821Z", - "description": "Test", - "colorId": "7", - "creator": { - "object": true - }, - "organizer": { - "object": true - }, - "start": { - "object": true - }, - "end": { - "object": true - }, - "iCalUID": "47hbcbv038ub5d4rvhu6adpl7c@google.com", - "sequence": 0, - "reminders": { - "object": true - }, - "eventType": "default" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Calendar5": [ - { - "startTime": 1678116861031, - "executionTime": 509, - "source": [ - { - "previousNode": "Google Calendar4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Calendar5" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.372Z", - "stoppedAt": "2023-03-06T15:34:21.540Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/42-snapshot.json b/test-workflows/snapshots/42-snapshot.json deleted file mode 100644 index d474a37a67..0000000000 --- a/test-workflows/snapshots/42-snapshot.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858303, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Tasks": [ - { - "startTime": 1678116858304, - "executionTime": 713, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "tasks#task", - "id": "eVRMM3dMeGw5Qjd1a05yTg", - "etag": "\"LTEyMTUzNTM1OTI\"", - "title": "Do Testing", - "updated": "2023-03-06T15:34:19.000Z", - "selfLink": "https://www.googleapis.com/tasks/v1/lists/MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow/tasks/eVRMM3dMeGw5Qjd1a05yTg", - "position": "00000000000000000000", - "status": "needsAction", - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Tasks1": [ - { - "startTime": 1678116859017, - "executionTime": 306, - "source": [ - { - "previousNode": "Google Tasks" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "tasks#task", - "id": "eVRMM3dMeGw5Qjd1a05yTg", - "etag": "\"LTEyMTUzNTM4MDA\"", - "title": "Do Testing", - "updated": "2023-03-06T15:34:19.000Z", - "selfLink": "https://www.googleapis.com/tasks/v1/lists/MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow/tasks/eVRMM3dMeGw5Qjd1a05yTg", - "position": "00000000000000000000", - "status": "completed", - "completed": "2023-03-06T15:34:19.000Z", - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Tasks4": [ - { - "startTime": 1678116859324, - "executionTime": 193, - "source": [ - { - "previousNode": "Google Tasks1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "tasks#task", - "id": "eVRMM3dMeGw5Qjd1a05yTg", - "etag": "\"LTEyMTUzNTM4MDA\"", - "title": "Do Testing", - "updated": "2023-03-06T15:34:19.000Z", - "selfLink": "https://www.googleapis.com/tasks/v1/lists/MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow/tasks/eVRMM3dMeGw5Qjd1a05yTg", - "position": "00000000000000000000", - "status": "completed", - "completed": "2023-03-06T15:34:19.000Z", - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Tasks2": [ - { - "startTime": 1678116859518, - "executionTime": 168, - "source": [ - { - "previousNode": "Google Tasks4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "tasks#task", - "id": "eVRMM3dMeGw5Qjd1a05yTg", - "etag": "\"LTEyMTUzNTM4MDA\"", - "title": "Do Testing", - "updated": "2023-03-06T15:34:19.000Z", - "selfLink": "https://www.googleapis.com/tasks/v1/lists/MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow/tasks/eVRMM3dMeGw5Qjd1a05yTg", - "position": "00000000000000000000", - "status": "completed", - "completed": "2023-03-06T15:34:19.000Z", - "links": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Tasks3": [ - { - "startTime": 1678116859686, - "executionTime": 213, - "source": [ - { - "previousNode": "Google Tasks2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Tasks3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.302Z", - "stoppedAt": "2023-03-06T15:34:19.899Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/43-snapshot.json b/test-workflows/snapshots/43-snapshot.json deleted file mode 100644 index f2c99a64e5..0000000000 --- a/test-workflows/snapshots/43-snapshot.json +++ /dev/null @@ -1,265 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858417, - "executionTime": 2, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Contacts": [ - { - "startTime": 1678116858448, - "executionTime": 1054, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resourceName": "people/c4926459161634783331", - "etag": "%EigBAgMEBQYHCAkKCwwNDg8QERITFBUWFxkfISIjJCUmJy40NTc9Pj9AGgQBAgUHIgxLNHlqR3dpUnBYST0=", - "metadata": { - "object": true - }, - "names": [ - "json array" - ], - "photos": [ - "json array" - ], - "organizations": [ - "json array" - ], - "memberships": [ - "json array" - ], - "contactId": "c4926459161634783331" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 3 seconds": [ - { - "startTime": 1678116859502, - "executionTime": 3025, - "source": [ - { - "previousNode": "Google Contacts" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resourceName": "people/c4926459161634783331", - "etag": "%EigBAgMEBQYHCAkKCwwNDg8QERITFBUWFxkfISIjJCUmJy40NTc9Pj9AGgQBAgUHIgxLNHlqR3dpUnBYST0=", - "metadata": { - "object": true - }, - "names": [ - "json array" - ], - "photos": [ - "json array" - ], - "organizations": [ - "json array" - ], - "memberships": [ - "json array" - ], - "contactId": "c4926459161634783331" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Google Contacts1": [ - { - "startTime": 1678116862527, - "executionTime": 782, - "source": [ - { - "previousNode": "Sleep 3 seconds" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resourceName": "people/c4926459161634783331", - "etag": "%EgUBAi43PRoEAQIFByIMbUdBM3NCWUx0UFE9", - "names": [ - "json array" - ], - "contactId": "c4926459161634783331" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Contacts2": [ - { - "startTime": 1678116863309, - "executionTime": 191, - "source": [ - { - "previousNode": "Google Contacts1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resourceName": "people/c2992217910493048592", - "etag": "%Eh4BAgMFBgcICQoLDA0ODxATFBUWGSEiJS41Nz0+P0AaBAECBQciDHZTVjkvK2I5YWZBPQ==", - "names": { - "object": true - }, - "photos": [ - "json array" - ], - "organizations": [ - "json array" - ], - "memberships": [ - "json array" - ], - "contactId": "c2992217910493048592" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Contacts3": [ - { - "startTime": 1678116863501, - "executionTime": 161, - "source": [ - { - "previousNode": "Google Contacts2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "resourceName": "people/c4926459161634783331", - "etag": "%Eh4BAgMFBgcICQoLDA0ODxATFBUWGSEiJS41Nz0+P0AaBAECBQciDG1HQTNzQllMdFBRPQ==", - "names": { - "object": true - }, - "photos": [ - "json array" - ], - "organizations": [ - "json array" - ], - "memberships": [ - "json array" - ], - "contactId": "c4926459161634783331" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Contacts4": [ - { - "startTime": 1678116863662, - "executionTime": 334, - "source": [ - { - "previousNode": "Google Contacts3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Contacts4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.413Z", - "stoppedAt": "2023-03-06T15:34:23.997Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/44-snapshot.json b/test-workflows/snapshots/44-snapshot.json deleted file mode 100644 index 062b953691..0000000000 --- a/test-workflows/snapshots/44-snapshot.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344003525, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive": [ - { - "startTime": 1747344003525, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 498, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1gadLOxnVKQnXqTeIDoqgAkKvzJP6pHTr", - "name": "testFolder" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive3": [ - { - "startTime": 1747344004023, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1527, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1CTnOyuVQ8YxOWcFDg2hU5KyCDGOMN4cP", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive10": [ - { - "startTime": 1747344005550, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive1": [ - { - "startTime": 1747344005550, - "executionIndex": 4, - "source": [ - { - "previousNode": "Google Drive" - } - ], - "hints": [], - "executionTime": 533, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive4": [ - { - "startTime": 1747344006083, - "executionIndex": 5, - "source": [ - { - "previousNode": "Google Drive3" - } - ], - "hints": [], - "executionTime": 604, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#permission", - "id": "anyoneWithLink", - "type": "anyone", - "role": "reader", - "allowFileDiscovery": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive2": [ - { - "startTime": 1747344006687, - "executionIndex": 6, - "source": [ - { - "previousNode": "Google Drive1" - } - ], - "hints": [], - "executionTime": 497, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1gadLOxnVKQnXqTeIDoqgAkKvzJP6pHTr", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive5": [ - { - "startTime": 1747344007184, - "executionIndex": 7, - "source": [ - { - "previousNode": "Google Drive4" - } - ], - "hints": [], - "executionTime": 493, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive6": [ - { - "startTime": 1747344007677, - "executionIndex": 8, - "source": [ - { - "previousNode": "Google Drive5" - } - ], - "hints": [], - "executionTime": 971, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "1YNeDnFJOaq3mDazf8Ezm3V3K-aIKdmugke2m89Qf3dg", - "name": "oupa" - }, - "binary": { - "data": { - "mimeType": "text/plain", - "fileType": "text", - "fileExtension": "txt", - "data": "VGVzdCBGaWxlIENvbnRlbnQ=", - "fileName": "testFile", - "fileSize": "17 B" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive7": [ - { - "startTime": 1747344008648, - "executionIndex": 9, - "source": [ - { - "previousNode": "Google Drive6" - } - ], - "hints": [], - "executionTime": 830, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "drive#file", - "id": "1GEYV0Db2ABpygxCcKuAtDA35cgtrz4EQ", - "name": "testFile", - "mimeType": "text/plain" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive8": [ - { - "startTime": 1747344009479, - "executionIndex": 10, - "source": [ - { - "previousNode": "Google Drive7" - } - ], - "hints": [], - "executionTime": 420, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1CTnOyuVQ8YxOWcFDg2hU5KyCDGOMN4cP", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Drive9": [ - { - "startTime": 1747344009899, - "executionIndex": 11, - "source": [ - { - "previousNode": "Google Drive8" - } - ], - "hints": [], - "executionTime": 516, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "fileId": "1GEYV0Db2ABpygxCcKuAtDA35cgtrz4EQ", - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Drive9" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:03.524Z", - "stoppedAt": "2025-05-15T21:20:10.415Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/45-snapshot.json b/test-workflows/snapshots/45-snapshot.json deleted file mode 100644 index ac593ed2b3..0000000000 --- a/test-workflows/snapshots/45-snapshot.json +++ /dev/null @@ -1,427 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858649, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Sheets": [ - { - "startTime": 1678116858650, - "executionTime": 2218, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "spreadsheetId": "13KroPsxIAWmV8Q73df1-5OhI0aAG64Ch74waTZqUYhU", - "properties": { - "object": true - }, - "sheets": [ - "json array" - ], - "spreadsheetUrl": "https://docs.google.com/spreadsheets/d/13KroPsxIAWmV8Q73df1-5OhI0aAG64Ch74waTZqUYhU/edit" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1678116860868, - "executionTime": 13, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "test2" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Sheets7": [ - { - "startTime": 1678116860881, - "executionTime": 1007, - "source": [ - { - "previousNode": "Google Sheets" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "spreadsheetId": "13KroPsxIAWmV8Q73df1-5OhI0aAG64Ch74waTZqUYhU", - "sheetId": 826802864, - "title": "Sheet2", - "index": 1, - "sheetType": "GRID", - "gridProperties": { - "object": true - }, - "tabColor": { - "object": true - }, - "tabColorStyle": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Sheets1": [ - { - "startTime": 1678116861889, - "executionTime": 1273, - "source": [ - { - "previousNode": "Function" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Sheets8": [ - { - "startTime": 1678116863162, - "executionTime": 577, - "source": [ - { - "previousNode": "Google Sheets7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "spreadsheetId": "13KroPsxIAWmV8Q73df1-5OhI0aAG64Ch74waTZqUYhU" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Sheets3": [ - { - "startTime": 1678116863740, - "executionTime": 336, - "source": [ - { - "previousNode": "Google Sheets1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Sheets4": [ - { - "startTime": 1678116864076, - "executionTime": 246, - "source": [ - { - "previousNode": "Google Sheets3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 861, - "name": "test1" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1678116864322, - "executionTime": 2, - "source": [ - { - "previousNode": "Google Sheets4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "Updated test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "Updated test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Sheets2": [ - { - "startTime": 1678116864325, - "executionTime": 1044, - "source": [ - { - "previousNode": "Set1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "Updated test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "Updated test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Sheets6": [ - { - "startTime": 1678116865369, - "executionTime": 510, - "source": [ - { - "previousNode": "Google Sheets2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "Updated test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "Updated test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Sheets5": [ - { - "startTime": 1678116865879, - "executionTime": 413, - "source": [ - { - "previousNode": "Google Sheets6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 861, - "name": "Updated test1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": 61, - "name": "Updated test2" - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Sheets5" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.647Z", - "stoppedAt": "2023-03-06T15:34:26.292Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/46-snapshot.json b/test-workflows/snapshots/46-snapshot.json deleted file mode 100644 index 9655ccd0e9..0000000000 --- a/test-workflows/snapshots/46-snapshot.json +++ /dev/null @@ -1,731 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858527, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Books": [ - { - "startTime": 1678116858528, - "executionTime": 1159, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "books#volume", - "id": "tvfyz-4JILwC", - "etag": "o0PPfLNFxNc", - "selfLink": "https://www.googleapis.com/books/v1/volumes/tvfyz-4JILwC", - "volumeInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - }, - "searchInfo": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#volume", - "id": "_CAdswEACAAJ", - "etag": "Q7ewsaDZHyY", - "selfLink": "https://www.googleapis.com/books/v1/volumes/_CAdswEACAAJ", - "volumeInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - }, - "searchInfo": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Books2": [ - { - "startTime": 1678116859687, - "executionTime": 328, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "books#bookshelf", - "id": 7, - "title": "My Google eBooks", - "access": "PRIVATE", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1, - "title": "Purchased", - "access": "PRIVATE", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 5, - "title": "Reviewed", - "access": "PUBLIC", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 6, - "title": "Recently viewed", - "access": "PRIVATE", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 9, - "title": "Browsing history", - "access": "PRIVATE", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 0, - "title": "Favorites", - "access": "PUBLIC", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 3, - "title": "Reading now", - "access": "PUBLIC", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 2, - "title": "To read", - "access": "PUBLIC", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 4, - "title": "Have read", - "access": "PUBLIC", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 8, - "title": "Books for you", - "access": "PRIVATE", - "updated": "2023-03-06T15:34:19.000Z", - "created": "2023-03-06T15:34:19.000Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T15:34:19.000Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Google Books1": [ - { - "startTime": 1678116860015, - "executionTime": 818, - "source": [ - { - "previousNode": "Google Books" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "books#volume", - "id": "tvfyz-4JILwC", - "etag": "6O9J2CN53Ew", - "selfLink": "https://www.googleapis.com/books/v1/volumes/tvfyz-4JILwC", - "volumeInfo": { - "object": true - }, - "userInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#volume", - "id": "_CAdswEACAAJ", - "etag": "jAT797c77bA", - "selfLink": "https://www.googleapis.com/books/v1/volumes/_CAdswEACAAJ", - "volumeInfo": { - "object": true - }, - "userInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - } - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Books3": [ - { - "startTime": 1678116860834, - "executionTime": 3343, - "source": [ - { - "previousNode": "Google Books2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 1 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 2 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 3 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 4 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 5 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 6 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 7 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 8 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 9 - } - }, - { - "json": { - "kind": "books#bookshelf", - "id": 1001, - "title": "FixedBookShelf", - "description": "This a bookshelf create for the test workflows", - "access": "PRIVATE", - "updated": "2023-03-06T11:56:15.625Z", - "created": "2023-03-06T11:56:15.625Z", - "volumeCount": 0, - "volumesLastUpdated": "2023-03-06T11:56:15.622Z" - }, - "pairedItem": { - "item": 10 - } - } - ] - ] - } - } - ], - "Google Books4": [ - { - "startTime": 1678116864177, - "executionTime": 615, - "source": [ - { - "previousNode": "Google Books1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - }, - { - "json": {}, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Books5": [ - { - "startTime": 1678116864792, - "executionTime": 565, - "source": [ - { - "previousNode": "Google Books4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - }, - { - "json": {}, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Books6": [ - { - "startTime": 1678116865358, - "executionTime": 602, - "source": [ - { - "previousNode": "Google Books5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "books#volume", - "id": "_CAdswEACAAJ", - "etag": "9WPBLHtCNPI", - "selfLink": "https://www.googleapis.com/books/v1/volumes/_CAdswEACAAJ", - "volumeInfo": { - "object": true - }, - "userInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "kind": "books#volume", - "id": "_CAdswEACAAJ", - "etag": "QEA8HzqsC+4", - "selfLink": "https://www.googleapis.com/books/v1/volumes/_CAdswEACAAJ", - "volumeInfo": { - "object": true - }, - "userInfo": { - "object": true - }, - "saleInfo": { - "object": true - }, - "accessInfo": { - "object": true - } - }, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Books7": [ - { - "startTime": 1678116865961, - "executionTime": 668, - "source": [ - { - "previousNode": "Google Books6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - }, - { - "json": {}, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ], - "Google Books8": [ - { - "startTime": 1678116866629, - "executionTime": 562, - "source": [ - { - "previousNode": "Google Books7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - }, - { - "json": {}, - "pairedItem": { - "item": 1 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Google Books8" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.524Z", - "stoppedAt": "2023-03-06T15:34:27.191Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/48-snapshot.json b/test-workflows/snapshots/48-snapshot.json deleted file mode 100644 index c4f51c5ded..0000000000 --- a/test-workflows/snapshots/48-snapshot.json +++ /dev/null @@ -1,1071 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344004021, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana2": [ - { - "startTime": 1747344004021, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 686, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267332379092", - "projects": [ - "json array" - ], - "memberships": [ - "json array" - ], - "resource_type": "task", - "created_at": "2025-05-15T21:20:04.296Z", - "modified_at": "2025-05-15T21:20:04.486Z", - "name": "TaskTest", - "notes": "", - "workspace": { - "object": true - }, - "start_at": { - "object": true - }, - "start_on": { - "object": true - }, - "resource_subtype": "default_task", - "due_at": { - "object": true - }, - "due_on": { - "object": true - }, - "completed_at": { - "object": true - }, - "assignee_status": "inbox", - "completed": false, - "actual_time_minutes": 0, - "num_hearts": 0, - "num_likes": 0, - "tags": [ - "json array" - ], - "assignee_section": { - "object": true - }, - "hearted": false, - "liked": false, - "hearts": [ - "json array" - ], - "likes": [ - "json array" - ], - "permalink_url": "https://app.asana.com/1/1177253494675264/project/1199961131280920/task/1210267332379092", - "assignee": { - "object": true - }, - "parent": { - "object": true - }, - "followers": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana14": [ - { - "startTime": 1747344004707, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 371, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1199961026001666", - "email": "nodeqa@n8n.io", - "name": "nodeqa", - "photo": { - "object": true - }, - "resource_type": "user", - "workspaces": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana": [ - { - "startTime": 1747344005078, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 193, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1199961131378839", - "name": "QAtest", - "resource_type": "project" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana3": [ - { - "startTime": 1747344005271, - "executionIndex": 4, - "source": [ - { - "previousNode": "Asana2" - } - ], - "hints": [], - "executionTime": 473, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267332379092", - "projects": [ - "json array" - ], - "memberships": [ - "json array" - ], - "resource_type": "task", - "created_at": "2025-05-15T21:20:04.296Z", - "modified_at": "2025-05-15T21:20:05.610Z", - "name": "UpdatedTestTask", - "notes": "", - "workspace": { - "object": true - }, - "start_at": { - "object": true - }, - "start_on": { - "object": true - }, - "resource_subtype": "default_task", - "due_at": { - "object": true - }, - "due_on": { - "object": true - }, - "completed_at": { - "object": true - }, - "assignee_status": "inbox", - "completed": false, - "actual_time_minutes": 0, - "num_hearts": 0, - "num_likes": 0, - "tags": [ - "json array" - ], - "hearted": false, - "liked": false, - "hearts": [ - "json array" - ], - "likes": [ - "json array" - ], - "assignee_section": { - "object": true - }, - "permalink_url": "https://app.asana.com/1/1177253494675264/project/1199961131280920/task/1210267332379092", - "assignee": { - "object": true - }, - "parent": { - "object": true - }, - "followers": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana15": [ - { - "startTime": 1747344005744, - "executionIndex": 5, - "source": [ - { - "previousNode": "Asana14" - } - ], - "hints": [], - "executionTime": 187, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1202187737680529", - "name": "Adriana Toader", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1202890883228546", - "name": "Ardit Fetahu", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1206933450858036", - "name": "Aya", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1209716676051853", - "name": "bart@n8n.io", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1201317194658352", - "name": "Dale Player", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1209089579490684", - "name": "David Arens", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1209358493509784", - "name": "Gera", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1183698132267547", - "name": "Inte Gration", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1202307247988024", - "name": "ivan", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1206344448463309", - "name": "ivan@n8n.io", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1198750619112603", - "name": "Jan Oberhauser", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1202718728322685", - "name": "John", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1207168924369543", - "name": "luis@n8n.io", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1202718619090236", - "name": "Mary", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1199961026001666", - "name": "nodeqa", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1177656661193880", - "name": "Ronalds Upenieks", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1177253503277681", - "name": "Tanay Pant", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1204568752114666", - "name": "Thomas Support", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1209729434313156", - "name": "tino.zwirs@n8n.io", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "gid": "1202404236960393", - "name": "Tom", - "resource_type": "user" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana1": [ - { - "startTime": 1747344005931, - "executionIndex": 6, - "source": [ - { - "previousNode": "Asana" - } - ], - "hints": [], - "executionTime": 217, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1199961131378839", - "archived": false, - "color": { - "object": true - }, - "completed": false, - "completed_at": { - "object": true - }, - "created_at": "2021-02-19T14:12:58.357Z", - "current_status": { - "object": true - }, - "current_status_update": { - "object": true - }, - "custom_fields": [ - "json array" - ], - "default_access_level": "editor", - "default_view": "list", - "due_on": { - "object": true - }, - "due_date": { - "object": true - }, - "followers": [ - "json array" - ], - "members": [ - "json array" - ], - "minimum_access_level_for_customization": "editor", - "minimum_access_level_for_sharing": "editor", - "modified_at": "2025-05-13T13:32:19.367Z", - "name": "QAtest", - "notes": "", - "owner": { - "object": true - }, - "permalink_url": "https://app.asana.com/1/1177253494675264/project/1199961131378839", - "privacy_setting": "private", - "public": false, - "resource_type": "project", - "start_on": { - "object": true - }, - "team": { - "object": true - }, - "workspace": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana4": [ - { - "startTime": 1747344006148, - "executionIndex": 7, - "source": [ - { - "previousNode": "Asana3" - } - ], - "hints": [], - "executionTime": 862, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana5": [ - { - "startTime": 1747344007010, - "executionIndex": 8, - "source": [ - { - "previousNode": "Asana4" - } - ], - "hints": [], - "executionTime": 365, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1199961131378855", - "name": "✏️ Finish setting up your first project", - "resource_type": "task", - "resource_subtype": "default_task" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana6": [ - { - "startTime": 1747344007375, - "executionIndex": 9, - "source": [ - { - "previousNode": "Asana5" - } - ], - "hints": [], - "executionTime": 209, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267332379092", - "actual_time_minutes": { - "object": true - }, - "assignee": { - "object": true - }, - "assignee_status": "inbox", - "assignee_section": { - "object": true - }, - "completed": false, - "completed_at": { - "object": true - }, - "created_at": "2025-05-15T21:20:04.296Z", - "due_at": { - "object": true - }, - "due_on": { - "object": true - }, - "followers": [ - "json array" - ], - "hearted": false, - "hearts": [ - "json array" - ], - "liked": false, - "likes": [ - "json array" - ], - "memberships": [ - "json array" - ], - "modified_at": "2025-05-15T21:20:06.736Z", - "name": "UpdatedTestTask", - "notes": "", - "num_hearts": 0, - "num_likes": 0, - "parent": { - "object": true - }, - "permalink_url": "https://app.asana.com/1/1177253494675264/project/1199961131378839/task/1210267332379092", - "projects": [ - "json array" - ], - "resource_type": "task", - "start_at": { - "object": true - }, - "start_on": { - "object": true - }, - "tags": [ - "json array" - ], - "resource_subtype": "default_task", - "workspace": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana8": [ - { - "startTime": 1747344007584, - "executionIndex": 10, - "source": [ - { - "previousNode": "Asana6" - } - ], - "hints": [], - "executionTime": 600, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267334811850", - "resource_type": "story", - "created_at": "2025-05-15T21:20:07.929Z", - "num_hearts": 0, - "resource_subtype": "comment_added", - "is_edited": false, - "text": "TestTaskComment", - "type": "comment", - "is_pinned": false, - "source": "api", - "num_likes": 0, - "liked": false, - "hearted": false, - "created_by": { - "object": true - }, - "hearts": [ - "json array" - ], - "likes": [ - "json array" - ], - "previews": [ - "json array" - ], - "is_editable": true, - "target": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana10": [ - { - "startTime": 1747344008184, - "executionIndex": 11, - "source": [ - { - "previousNode": "Asana6" - } - ], - "hints": [], - "executionTime": 709, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana12": [ - { - "startTime": 1747344008893, - "executionIndex": 12, - "source": [ - { - "previousNode": "Asana6" - } - ], - "hints": [], - "executionTime": 471, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana16": [ - { - "startTime": 1747344009364, - "executionIndex": 13, - "source": [ - { - "previousNode": "Asana6" - } - ], - "hints": [], - "executionTime": 1016, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267364252262", - "projects": [ - "json array" - ], - "memberships": [ - "json array" - ], - "resource_type": "task", - "created_at": "2025-05-15T21:20:09.876Z", - "modified_at": "2025-05-15T21:20:10.148Z", - "name": "SubTestTask", - "notes": "", - "assignee": { - "object": true - }, - "start_at": { - "object": true - }, - "start_on": { - "object": true - }, - "resource_subtype": "default_task", - "due_at": { - "object": true - }, - "due_on": { - "object": true - }, - "completed_at": { - "object": true - }, - "assignee_status": "upcoming", - "completed": false, - "actual_time_minutes": 0, - "workspace": { - "object": true - }, - "num_hearts": 0, - "num_likes": 0, - "hearted": false, - "liked": false, - "hearts": [ - "json array" - ], - "likes": [ - "json array" - ], - "parent": { - "object": true - }, - "tags": [ - "json array" - ], - "permalink_url": "https://app.asana.com/1/1177253494675264/project/1199961131378839/task/1210267364252262", - "followers": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana9": [ - { - "startTime": 1747344010380, - "executionIndex": 14, - "source": [ - { - "previousNode": "Asana8" - } - ], - "hints": [], - "executionTime": 742, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana11": [ - { - "startTime": 1747344011122, - "executionIndex": 15, - "source": [ - { - "previousNode": "Asana10" - } - ], - "hints": [], - "executionTime": 584, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana13": [ - { - "startTime": 1747344011706, - "executionIndex": 16, - "source": [ - { - "previousNode": "Asana12" - } - ], - "hints": [], - "executionTime": 598, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana17": [ - { - "startTime": 1747344012305, - "executionIndex": 17, - "source": [ - { - "previousNode": "Asana16" - } - ], - "hints": [], - "executionTime": 451, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "gid": "1210267364252262", - "name": "SubTestTask", - "resource_type": "task", - "resource_subtype": "default_task" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Asana7": [ - { - "startTime": 1747344012756, - "executionIndex": 18, - "source": [ - { - "previousNode": "Asana17" - } - ], - "hints": [], - "executionTime": 573, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Asana7" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:04.020Z", - "stoppedAt": "2025-05-15T21:20:13.329Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/49-snapshot.json b/test-workflows/snapshots/49-snapshot.json deleted file mode 100644 index 2f8ee24512..0000000000 --- a/test-workflows/snapshots/49-snapshot.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891392504, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Bitly": [ - { - "startTime": 1676891392506, - "executionTime": 211, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "2021-02-19T16:45:14+0000", - "id": "bit.ly/3qAXhOP", - "link": "https://bit.ly/3qAXhOP", - "custom_bitlinks": [ - "json array" - ], - "long_url": "https://n8n.io/", - "title": "n8n", - "archived": false, - "tags": [ - "json array" - ], - "deeplinks": [ - "json array" - ], - "references": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Bitly1": [ - { - "startTime": 1676891392718, - "executionTime": 238, - "source": [ - { - "previousNode": "Bitly" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "2021-02-19T16:45:14+0000", - "id": "bit.ly/3qAXhOP", - "link": "https://bit.ly/3qAXhOP", - "custom_bitlinks": [ - "json array" - ], - "long_url": "https://n8n.io/", - "title": "n8n", - "archived": false, - "created_by": "nodeqa", - "client_id": "a5e8cebb233c5d07e5c553e917dffb92fec5264d", - "tags": [ - "json array" - ], - "deeplinks": [ - "json array" - ], - "references": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Bitly2": [ - { - "startTime": 1676891392957, - "executionTime": 200, - "source": [ - { - "previousNode": "Bitly1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "2021-02-19T16:45:14+0000", - "id": "bit.ly/3qAXhOP", - "link": "http://bit.ly/3qAXhOP", - "custom_bitlinks": [ - "json array" - ], - "long_url": "https://n8n.io/", - "archived": false, - "created_by": "nodeqa", - "client_id": "a5e8cebb233c5d07e5c553e917dffb92fec5264d", - "tags": [ - "json array" - ], - "deeplinks": [ - "json array" - ], - "references": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Bitly2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:52.503Z", - "stoppedAt": "2023-02-20T11:09:53.157Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/5-snapshot.json b/test-workflows/snapshots/5-snapshot.json deleted file mode 100644 index f1cbd7039d..0000000000 --- a/test-workflows/snapshots/5-snapshot.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891385640, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hacker News": [ - { - "startTime": 1676891385642, - "executionTime": 700, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "created_at": "2018-03-14T03:50:30.000Z", - "title": "Stephen Hawking has died", - "url": "http://www.bbc.com/news/uk-43396008", - "author": "Cogito", - "points": 6015, - "story_text": { - "object": true - }, - "comment_text": { - "object": true - }, - "num_comments": 436, - "story_id": { - "object": true - }, - "story_title": { - "object": true - }, - "story_url": { - "object": true - }, - "parent_id": { - "object": true - }, - "created_at_i": 1520999430, - "relevancy_score": 8012, - "_tags": [ - "json array" - ], - "objectID": "16582136", - "_highlightResult": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hacker News1": [ - { - "startTime": 1676891386343, - "executionTime": 3784, - "source": [ - { - "previousNode": "Hacker News" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 16582136, - "created_at": "2018-03-14T03:50:30.000Z", - "created_at_i": 1520999430, - "type": "story", - "author": "Cogito", - "title": "Stephen Hawking has died", - "url": "http://www.bbc.com/news/uk-43396008", - "text": { - "object": true - }, - "points": 6015, - "parent_id": { - "object": true - }, - "story_id": { - "object": true - }, - "options": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hacker News2": [ - { - "startTime": 1676891390129, - "executionTime": 598, - "source": [ - { - "previousNode": "Hacker News1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 119207, - "username": "Cogito", - "about": "You can get me at andrew.ardill at gmail.", - "karma": 4263, - "created_at": "2012-04-24T06:32:57.000Z", - "avg": 3.52273, - "delay": { - "object": true - }, - "submitted": 745, - "updated_at": "2022-12-06T03:45:32.000Z", - "submission_count": 24, - "comment_count": 720, - "created_at_i": 1335249177, - "objectID": "Cogito" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Hacker News2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:45.637Z", - "stoppedAt": "2023-02-20T11:09:50.728Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/51-snapshot.json b/test-workflows/snapshots/51-snapshot.json deleted file mode 100644 index b3e3213fa8..0000000000 --- a/test-workflows/snapshots/51-snapshot.json +++ /dev/null @@ -1,644 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1710331931146, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify": [ - { - "startTime": 1710331931146, - "executionTime": 393, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981b8d52242d1a6a5092", - "name": "TestProject created Wed, 13 Mar 2024 12:12:11 GMT", - "hourlyRate": { - "object": true - }, - "clientId": "", - "workspaceId": "60335ad3f24e660123d7fdee", - "billable": true, - "memberships": [ - "json array" - ], - "color": "#8BC34A", - "estimate": { - "object": true - }, - "archived": false, - "duration": "PT0S", - "clientName": "", - "note": "", - "costRate": { - "object": true - }, - "timeEstimate": { - "object": true - }, - "budgetEstimate": { - "object": true - }, - "template": false, - "public": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify5": [ - { - "startTime": 1710331931540, - "executionTime": 190, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981be8273c7a4c5e6647", - "name": "TestTag0.9326327500236014", - "workspaceId": "60335ad3f24e660123d7fdee", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify9": [ - { - "startTime": 1710331931730, - "executionTime": 157, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981ba75a0777c651975b", - "description": { - "object": true - }, - "tagIds": { - "object": true - }, - "userId": "60335ad2f24e660123d7fdeb", - "billable": false, - "taskId": { - "object": true - }, - "projectId": { - "object": true - }, - "timeInterval": { - "object": true - }, - "workspaceId": "60335ad3f24e660123d7fdee", - "isLocked": false, - "customFieldValues": [ - "json array" - ], - "type": "REGULAR", - "kioskId": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify1": [ - { - "startTime": 1710331931887, - "executionTime": 307, - "source": [ - { - "previousNode": "Clockify" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981b8d52242d1a6a5092", - "name": "Updated TestProject created Wed, 13 Mar 2024 12:12:11 GMT", - "hourlyRate": { - "object": true - }, - "clientId": "", - "workspaceId": "60335ad3f24e660123d7fdee", - "billable": false, - "memberships": [ - "json array" - ], - "color": "#8BC34A", - "estimate": { - "object": true - }, - "archived": false, - "duration": "PT0S", - "clientName": "", - "note": "", - "costRate": { - "object": true - }, - "timeEstimate": { - "object": true - }, - "budgetEstimate": { - "object": true - }, - "template": false, - "public": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1710331932194, - "executionTime": 503, - "source": [ - { - "previousNode": "Clockify5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981be8273c7a4c5e6647", - "name": "TestTag0.9326327500236014", - "workspaceId": "60335ad3f24e660123d7fdee", - "archived": false - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Clockify10": [ - { - "startTime": 1710331932697, - "executionTime": 339, - "source": [ - { - "previousNode": "Clockify9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981ba75a0777c651975b", - "description": "Updated time entry", - "tagIds": { - "object": true - }, - "userId": "60335ad2f24e660123d7fdeb", - "billable": false, - "taskId": { - "object": true - }, - "projectId": { - "object": true - }, - "timeInterval": { - "object": true - }, - "workspaceId": "60335ad3f24e660123d7fdee", - "isLocked": false, - "customFieldValues": [ - "json array" - ], - "type": "REGULAR", - "kioskId": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify2": [ - { - "startTime": 1710331933037, - "executionTime": 227, - "source": [ - { - "previousNode": "Clockify1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981b8d52242d1a6a5092", - "name": "Updated TestProject created Wed, 13 Mar 2024 12:12:11 GMT", - "hourlyRate": { - "object": true - }, - "clientId": "", - "workspaceId": "60335ad3f24e660123d7fdee", - "billable": false, - "memberships": [ - "json array" - ], - "color": "#8BC34A", - "estimate": { - "object": true - }, - "archived": false, - "duration": "PT0S", - "clientName": "", - "note": "", - "costRate": { - "object": true - }, - "timeEstimate": { - "object": true - }, - "budgetEstimate": { - "object": true - }, - "template": false, - "public": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify6": [ - { - "startTime": 1710331933264, - "executionTime": 341, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981be8273c7a4c5e6647", - "name": "UpdatedTag0.6688306691795847", - "workspaceId": "60335ad3f24e660123d7fdee", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify11": [ - { - "startTime": 1710331933605, - "executionTime": 241, - "source": [ - { - "previousNode": "Clockify10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "65f1981ba75a0777c651975b", - "description": "Updated time entry", - "tagIds": { - "object": true - }, - "userId": "60335ad2f24e660123d7fdeb", - "billable": false, - "taskId": { - "object": true - }, - "projectId": { - "object": true - }, - "workspaceId": "60335ad3f24e660123d7fdee", - "timeInterval": { - "object": true - }, - "customFieldValues": [ - "json array" - ], - "type": "REGULAR", - "kioskId": { - "object": true - }, - "hourlyRate": { - "object": true - }, - "costRate": { - "object": true - }, - "isLocked": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify3": [ - { - "startTime": 1710331933846, - "executionTime": 308, - "source": [ - { - "previousNode": "Clockify2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "60bdd9a66c24294f3e5f77b3", - "name": "TestProject created Mon, 07 Jun 2021 08:32:37 GMT", - "hourlyRate": { - "object": true - }, - "clientId": "", - "workspaceId": "60335ad3f24e660123d7fdee", - "billable": true, - "memberships": [ - "json array" - ], - "color": "#00BCD4", - "estimate": { - "object": true - }, - "archived": false, - "duration": "PT0S", - "clientName": "", - "note": "", - "costRate": { - "object": true - }, - "timeEstimate": { - "object": true - }, - "budgetEstimate": { - "object": true - }, - "template": false, - "public": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify7": [ - { - "startTime": 1710331934154, - "executionTime": 170, - "source": [ - { - "previousNode": "Clockify6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "60bdd90f8b25e0206c07a554", - "name": "TestTag", - "workspaceId": "60335ad3f24e660123d7fdee", - "archived": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify12": [ - { - "startTime": 1710331934324, - "executionTime": 148, - "source": [ - { - "previousNode": "Clockify11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify4": [ - { - "startTime": 1710331934472, - "executionTime": 0, - "source": [ - { - "previousNode": "Clockify3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "60bdd9a66c24294f3e5f77b3", - "name": "TestProject created Mon, 07 Jun 2021 08:32:37 GMT", - "hourlyRate": { - "object": true - }, - "clientId": "", - "workspaceId": "60335ad3f24e660123d7fdee", - "billable": true, - "memberships": [ - "json array" - ], - "color": "#00BCD4", - "estimate": { - "object": true - }, - "archived": false, - "duration": "PT0S", - "clientName": "", - "note": "", - "costRate": { - "object": true - }, - "timeEstimate": { - "object": true - }, - "budgetEstimate": { - "object": true - }, - "template": false, - "public": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Clockify8": [ - { - "startTime": 1710331934472, - "executionTime": 157, - "source": [ - { - "previousNode": "Clockify7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Clockify8" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-03-13T12:12:11.145Z", - "stoppedAt": "2024-03-13T12:12:14.629Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/52-snapshot.json b/test-workflows/snapshots/52-snapshot.json deleted file mode 100644 index 5f6630348d..0000000000 --- a/test-workflows/snapshots/52-snapshot.json +++ /dev/null @@ -1,629 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344004590, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda11": [ - { - "startTime": 1747344004591, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 2921, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "table-K1_z3jl_HH", - "type": "table", - "tableType": "view", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/tables/table-K1_z3jl_HH", - "browserLink": "https://coda.io/d/_d2-5DWWeFZp#_tutable-K1_z3jl_HH", - "name": "Table View", - "parent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda4": [ - { - "startTime": 1747344007512, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1160, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c-XvglOYNTU8", - "type": "column", - "name": "number", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/tables/grid-lDqTU2W4nP/columns/c-XvglOYNTU8", - "display": true, - "format": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda2": [ - { - "startTime": 1747344008672, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 207, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "f-nyztATalRJ", - "type": "formula", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/formulas/f-nyztATalRJ", - "name": "Test", - "parent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda": [ - { - "startTime": 1747344008879, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 996, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ], - "Coda12": [ - { - "startTime": 1747344009875, - "executionIndex": 5, - "source": [ - { - "previousNode": "Coda11" - } - ], - "hints": [], - "executionTime": 462, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "table-FTj1L0rh08", - "type": "table", - "tableType": "view", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/tables/table-FTj1L0rh08", - "browserLink": "https://coda.io/d/_d2-5DWWeFZp#_tutable-FTj1L0rh08", - "parent": { - "object": true - }, - "parentTable": { - "object": true - }, - "name": "View of Table 1", - "displayColumn": { - "object": true - }, - "rowCount": 121, - "createdAt": "2021-02-22T08:40:15.720Z", - "updatedAt": "2021-02-22T08:40:15.720Z", - "viewId": "v-k0w5NxL7Wt", - "sorts": [ - "json array" - ], - "layout": "masterDetail" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda5": [ - { - "startTime": 1747344010337, - "executionIndex": 6, - "source": [ - { - "previousNode": "Coda4" - } - ], - "hints": [], - "executionTime": 235, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c-XvglOYNTU8", - "type": "column", - "name": "number", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/tables/grid-lDqTU2W4nP/columns/c-XvglOYNTU8", - "display": true, - "format": { - "object": true - }, - "parent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda3": [ - { - "startTime": 1747344010572, - "executionIndex": 7, - "source": [ - { - "previousNode": "Coda2" - } - ], - "hints": [], - "executionTime": 2452, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "f-nyztATalRJ", - "type": "formula", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/formulas/f-nyztATalRJ", - "name": "Test", - "value": "", - "parent": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda13": [ - { - "startTime": 1747344013024, - "executionIndex": 8, - "source": [ - { - "previousNode": "Coda12" - } - ], - "hints": [], - "executionTime": 320, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "c-XvglOYNTU8", - "type": "column", - "name": "number", - "href": "https://coda.io/apis/v1/docs/2-5DWWeFZp/tables/grid-lDqTU2W4nP/columns/c-XvglOYNTU8", - "display": true, - "format": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda6": [ - { - "startTime": 1747344013344, - "executionIndex": 9, - "source": [ - { - "previousNode": "Coda5" - } - ], - "hints": [], - "executionTime": 316, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "i-62srMH_hOe", - "number": 101, - "sum": 0, - "Column 3": "" - }, - "pairedItem": [ - { - "item": 0 - } - ] - } - ] - ] - } - } - ], - "Coda14": [ - { - "startTime": 1747344013660, - "executionIndex": 10, - "source": [ - { - "previousNode": "Coda13" - } - ], - "hints": [], - "executionTime": 2614, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "i-62srMH_hOe", - "number": 101, - "sum": 0, - "Column 3": "" - }, - "pairedItem": [ - { - "item": 0 - } - ] - } - ] - ] - } - } - ], - "Coda7": [ - { - "startTime": 1747344016274, - "executionIndex": 11, - "source": [ - { - "previousNode": "Coda6" - } - ], - "hints": [], - "executionTime": 259, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "i-62srMH_hOe", - "number": 101, - "sum": 0, - "Column 3": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set1": [ - { - "startTime": 1747344016533, - "executionIndex": 12, - "source": [ - { - "previousNode": "Coda14" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "number": 102, - "sum": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747344016533, - "executionIndex": 13, - "source": [ - { - "previousNode": "Coda7" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "number": 101, - "sum": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda15": [ - { - "startTime": 1747344016533, - "executionIndex": 14, - "source": [ - { - "previousNode": "Set1" - } - ], - "hints": [], - "executionTime": 643, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "number": 102, - "sum": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda8": [ - { - "startTime": 1747344017176, - "executionIndex": 15, - "source": [ - { - "previousNode": "Set" - } - ], - "hints": [], - "executionTime": 300, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "number": 101, - "sum": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda16": [ - { - "startTime": 1747344017476, - "executionIndex": 16, - "source": [ - { - "previousNode": "Coda15" - } - ], - "hints": [], - "executionTime": 1373, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "rowId": "i-62srMH_hOe", - "columnId": "c-hTB8QwFtUS", - "requestId": "mutate:df2e7520-d748-457f-ae97-81138ebc1f0c" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda10": [ - { - "startTime": 1747344018849, - "executionIndex": 17, - "source": [ - { - "previousNode": "Coda8" - } - ], - "hints": [], - "executionTime": 453, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "rowId": "i-62srMH_hOe", - "columnId": "c-hTB8QwFtUS", - "requestId": "mutate:49bd58a9-b483-4b84-8627-0fef4dfcdbf6" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Coda9": [ - { - "startTime": 1747344019302, - "executionIndex": 18, - "source": [ - { - "previousNode": "Coda10" - } - ], - "hints": [], - "executionTime": 4629, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "rowId": "i-62srMH_hOe", - "columnId": "c-hTB8QwFtUS", - "requestId": "mutate:49bd58a9-b483-4b84-8627-0fef4dfcdbf6" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Coda9" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:04.590Z", - "stoppedAt": "2025-05-15T21:20:23.931Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/53-snapshot.json b/test-workflows/snapshots/53-snapshot.json deleted file mode 100644 index 01735600e2..0000000000 --- a/test-workflows/snapshots/53-snapshot.json +++ /dev/null @@ -1,411 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344006713, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit": [ - { - "startTime": 1747344006713, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 542, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 985256, - "name": "ck_field_985256_testfield05605810562389708", - "key": "testfield0_5605810562389708", - "label": "testField0.5605810562389708" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit4": [ - { - "startTime": 1747344007255, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 467, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 2059113, - "name": "TestForm", - "created_at": "2021-02-22T09:16:09.000Z", - "type": "embed", - "format": "inline", - "embed_js": "https://chipper-musician-5875.kit.com/bec913a630/index.js", - "embed_url": "https://chipper-musician-5875.kit.com/bec913a630", - "archived": false, - "uid": "bec913a630" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit1": [ - { - "startTime": 1747344007722, - "executionIndex": 3, - "source": [ - { - "previousNode": "ConvertKit" - } - ], - "hints": [], - "executionTime": 455, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 213135, - "name": "ck_field_213135_testfield", - "key": "testfield", - "label": "testField" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit5": [ - { - "startTime": 1747344008177, - "executionIndex": 4, - "source": [ - { - "previousNode": "ConvertKit4" - } - ], - "hints": [], - "executionTime": 586, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 10406664929, - "state": "inactive", - "created_at": "2025-05-15T21:20:08.000Z", - "source": "API::V3::SubscriptionsController (external)", - "referrer": { - "object": true - }, - "subscribable_id": 2059113, - "subscribable_type": "form", - "subscriber": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit2": [ - { - "startTime": 1747344008763, - "executionIndex": 5, - "source": [ - { - "previousNode": "ConvertKit1" - } - ], - "hints": [], - "executionTime": 490, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit7": [ - { - "startTime": 1747344009253, - "executionIndex": 6, - "source": [ - { - "previousNode": "ConvertKit5" - } - ], - "hints": [], - "executionTime": 507, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 7925787, - "name": "tag1747344009258", - "created_at": "2025-05-15T21:20:09.000Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit3": [ - { - "startTime": 1747344009760, - "executionIndex": 7, - "source": [ - { - "previousNode": "ConvertKit2" - } - ], - "hints": [], - "executionTime": 505, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit8": [ - { - "startTime": 1747344010265, - "executionIndex": 8, - "source": [ - { - "previousNode": "ConvertKit7" - } - ], - "hints": [], - "executionTime": 1218, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 2205755, - "name": "tag1613985759319", - "created_at": "2021-02-22T09:22:40.000Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit9": [ - { - "startTime": 1747344011483, - "executionIndex": 9, - "source": [ - { - "previousNode": "ConvertKit8" - } - ], - "hints": [], - "executionTime": 511, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 10406665311, - "state": "active", - "created_at": "2025-05-15T21:20:11.000Z", - "source": "API::V3::SubscriptionsController (external)", - "referrer": { - "object": true - }, - "subscribable_id": 7925787, - "subscribable_type": "tag", - "subscriber": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit10": [ - { - "startTime": 1747344011994, - "executionIndex": 10, - "source": [ - { - "previousNode": "ConvertKit9" - } - ], - "hints": [], - "executionTime": 450, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": [ - { - "item": 0, - "input": 0 - } - ] - } - ] - ] - } - } - ], - "ConvertKit11": [ - { - "startTime": 1747344012444, - "executionIndex": 11, - "source": [ - { - "previousNode": "ConvertKit10" - } - ], - "hints": [], - "executionTime": 464, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": 7925787, - "name": "tag1747344009258", - "created_at": "2025-05-15T21:20:09.000Z" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ConvertKit6": [ - { - "startTime": 1747344012908, - "executionIndex": 12, - "source": [ - { - "previousNode": "ConvertKit11" - } - ], - "hints": [], - "executionTime": 529, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "ConvertKit6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:06.712Z", - "stoppedAt": "2025-05-15T21:20:13.437Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/55-snapshot.json b/test-workflows/snapshots/55-snapshot.json deleted file mode 100644 index 72b0d1b5a7..0000000000 --- a/test-workflows/snapshots/55-snapshot.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344007024, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hunter": [ - { - "startTime": 1747344007024, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 197, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "value": "ben@n8n.io", - "type": "personal", - "confidence": 99, - "sources": [ - "json array" - ], - "first_name": "Ben", - "last_name": "Kiziltug", - "position": "Vice President of Sales", - "position_raw": "VP Sales", - "seniority": "executive", - "department": "sales", - "linkedin": "https://www.linkedin.com/in/benkiziltug", - "twitter": { - "object": true - }, - "phone_number": { - "object": true - }, - "verification": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hunter1": [ - { - "startTime": 1747344007221, - "executionIndex": 2, - "source": [ - { - "previousNode": "Hunter" - } - ], - "hints": [], - "executionTime": 372, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "first_name": { - "object": true - }, - "last_name": { - "object": true - }, - "email": { - "object": true - }, - "score": { - "object": true - }, - "domain": "n8n.io", - "accept_all": { - "object": true - }, - "position": { - "object": true - }, - "twitter": { - "object": true - }, - "linkedin_url": { - "object": true - }, - "phone_number": { - "object": true - }, - "company": { - "object": true - }, - "sources": [ - "json array" - ], - "verification": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Hunter2": [ - { - "startTime": 1747344007593, - "executionIndex": 3, - "source": [ - { - "previousNode": "Hunter1" - } - ], - "hints": [], - "executionTime": 250, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "valid", - "result": "deliverable", - "_deprecation_notice": "Using result is deprecated, use status instead", - "score": 90, - "email": "nodeqa@n8n.io", - "regexp": true, - "gibberish": false, - "disposable": false, - "webmail": false, - "mx_records": true, - "smtp_server": true, - "smtp_check": true, - "accept_all": false, - "block": false, - "sources": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Hunter2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:07.024Z", - "stoppedAt": "2025-05-15T21:20:07.843Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/58-snapshot.json b/test-workflows/snapshots/58-snapshot.json deleted file mode 100644 index af784cea7f..0000000000 --- a/test-workflows/snapshots/58-snapshot.json +++ /dev/null @@ -1,314 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344007863, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist": [ - { - "startTime": 1747344007863, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 841, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9167050615", - "assigner_id": { - "object": true - }, - "assignee_id": { - "object": true - }, - "project_id": "2259097055", - "section_id": { - "object": true - }, - "parent_id": { - "object": true - }, - "order": 21, - "content": "Test Task", - "description": "", - "is_completed": false, - "labels": [ - "json array" - ], - "priority": 1, - "comment_count": 0, - "creator_id": "32694069", - "created_at": "2025-05-15T21:20:08.213266Z", - "due": { - "object": true - }, - "url": "https://app.todoist.com/app/task/9167050615", - "duration": { - "object": true - }, - "deadline": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist1": [ - { - "startTime": 1747344008704, - "executionIndex": 2, - "source": [ - { - "previousNode": "Todoist" - } - ], - "hints": [], - "executionTime": 248, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "9167050615", - "assigner_id": { - "object": true - }, - "assignee_id": { - "object": true - }, - "project_id": "2259097055", - "section_id": { - "object": true - }, - "parent_id": { - "object": true - }, - "order": 21, - "content": "Test Task", - "description": "", - "is_completed": false, - "labels": [ - "json array" - ], - "priority": 1, - "comment_count": 0, - "creator_id": "32694069", - "created_at": "2025-05-15T21:20:08.213266Z", - "due": { - "object": true - }, - "url": "https://app.todoist.com/app/task/9167050615", - "duration": { - "object": true - }, - "deadline": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist2": [ - { - "startTime": 1747344008952, - "executionIndex": 3, - "source": [ - { - "previousNode": "Todoist1" - } - ], - "hints": [], - "executionTime": 521, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist3": [ - { - "startTime": 1747344009473, - "executionIndex": 4, - "source": [ - { - "previousNode": "Todoist2" - } - ], - "hints": [], - "executionTime": 654, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist5": [ - { - "startTime": 1747344010127, - "executionIndex": 5, - "source": [ - { - "previousNode": "Todoist3" - } - ], - "hints": [], - "executionTime": 471, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "4610234385", - "assigner_id": { - "object": true - }, - "assignee_id": { - "object": true - }, - "project_id": "2259097055", - "section_id": { - "object": true - }, - "parent_id": { - "object": true - }, - "order": 1, - "content": "Test Task", - "description": "", - "is_completed": false, - "labels": [ - "json array" - ], - "priority": 1, - "comment_count": 0, - "creator_id": "32694069", - "created_at": "2021-02-25T12:23:24.274629Z", - "due": { - "object": true - }, - "url": "https://app.todoist.com/app/task/4610234385", - "duration": { - "object": true - }, - "deadline": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Todoist4": [ - { - "startTime": 1747344010598, - "executionIndex": 6, - "source": [ - { - "previousNode": "Todoist5" - } - ], - "hints": [], - "executionTime": 487, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Todoist4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:07.863Z", - "stoppedAt": "2025-05-15T21:20:11.085Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/6-snapshot.json b/test-workflows/snapshots/6-snapshot.json deleted file mode 100644 index 350ae97687..0000000000 --- a/test-workflows/snapshots/6-snapshot.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344008477, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set files": [ - { - "startTime": 1747344008477, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 9, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "filename": "n8n-logo.png" - }, - "binary": { - "binaryfile": { - "mimeType": "image/png", - "data": "iVBORw0KGgoAAAANSUhEUgAAAdAAAABqCAMAAAA7pfCVAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAqUExURQAAADhNW/9tWv9tWjhNW/9tWv9tWjhNW6teWv9tWjhNWzhNW/9tWjhNW0y9HhoAAAAMdFJOUwDD4n+KTrBCECcoZqF2YcgAAAnPSURBVHja7Z3ZmqsgDIDLvti+/+tO9wKSBFCsdsjV+U7HavnJQhLwdDqgKCWEUOo05AfECX5+CRcD6sFFfWi+mNoxKr+D8450aOlBxepzXvRQ0kM6T36GhLsxPL/EcxD9NZ6D6PH8J85zED2a6DMlegzSgUScaRFjmA5rcLVQSolEa/lYvBxUQfXLXToxVPSYwqHoJ4p9h4oeRRQczUbGeOQADxjiOmR9OgLdfaQMbsVNVDjmJ0M/Ogbz+9ZU83OFZNxkaHSHzf02ziqagFEVI849Ks68CqoBdI+LyzLJJWzdALoHsbqBZz7q6QfUGsnY5SqMyclvMSpKX0UcsNBg+XnvQO10Z/kRJnszfTuh45maNp5b+lB5yYjsmowKfgk/cKqgRsRWUa5nl7xM2yTEDqajqpFnduL2WIdOF1BkX6slnH0Y3iP50UYHmkemiCB4ZZ79iLr377uPz5FUNFmwaOWKHe48VcTXdzzmcvkCUfFJnKhjJaZjBdWuagJoxBuvNKnthRDTDejTANljhUXiXFnycnD2T5/Xt7hhfMumOz0TLWFYt2ERhwRaX8LUQH+f0x3axHxAzuTj3qkXUD375zpBqGrcqueuF9oafSs0kip1uvebKE0vUhcpqIRCpS4q6t4D4lYMipx41bN4XQbqcyG1yU80NI3M1q18XnZba0ozMPj5EO2SMtKPyfqYp6v001jBG/fqpcrCkVBHN0QxBQudtTqt3xaXWZh1F5vr1m6nEZlR4yVjnq2DgVvCdEsUo5qygovWLBPyWZ+VS0BUrDw/amY+VDeB9m3ypnWjaEgKLnOhObPaN859B3lrbHmFVYD4dmQXUd6rNXo9vdFGiDdQzL92AnoLRW6nR6yfvCm3ZvguP7seUPQRV4zxUaCyN9BOybhyotQuvxWBwi0rxRbKTvKpY4xBBes3ULtEQ41k3aqor6r7ve5u2kIO1cYzx2xB+dLlzW4mog6SPZ/xNElJLD/SE5bgmwPNZSFsUktlJUFxWEhHac5Sy6YeCxgZ8foK5qLyZUZJs+oZ/eoHN8vK0uweC3zmF2ZqpZnSOLMVQJEg2mTLtLMJU1DN0k2hZ24qLCxfxo28XCsyHfsYHlNcOEEWm2auvdHXQROnhOhlPgdncw2qul+Yx7DopFsdHPxUs/ntyjSFo+E50JgMUUI/BA4HZTrOU3kpbIJTtmweMKVlGA8Nua0BKlFnQHRSxFkY/kr4uZgpJ1cSb1eW2EUFzYGO9YQU6FRRCrNgC1Eur5B8mW+uopJ/LEurtAoKMGIFnGuDBV2ZgFQ0mjxiM6BIxZoh+aDUO7GMRYyBWgbfyVcAZdU8A6Icto8aVVEBu0qVL1PGumu3AhpWrNlNiHGOC6J29t8S4hDGLLMbyUVAZdJRaq4iZY6ow6BxrHzMkdBHZDQxWXX07LHwt9/7KZukCxUvC+Oi8Kp8reV2o2l+o5clDwvjxOoy/CKG+c/QbERhr5xVs1y2RhfGSqGg1lOHbllkwqz+59AYpKnWo7XN1HKyyQQR5kRMgCjmDL6qoHMFSlx4uJHUpAEBXs0q24DCG3IV/bvaDBLZU7VNWdUjxpDWXVvTXAYBZdDPiKfMPZTmaDXLNfc/8/oO255AZ8sGhioOHN0wykR7aG60A53w1U/cY0GMcVELratOOmxx8JdBl4ETmi6CeVoCqKlKPZUBZfhqNph9lsyVF21aqM4Pb3KQm0FjWV+UWyhbfLAig9wMlGx98aG5J7yaaHOhONBtDuYzeCgLf1aaksm5OOzTVqCMNNoyuP+/AGoRoNgSQZp5OlwivUZZ3HIhUIv+jORP/L8wubImojRJRDnfJ2pBoOzUAWhJJ5P8zKj/EBT5CqA2A87LS1nELHsAlQUL2SDy+gfLFlYTUcostrhmDS4TfQ+gRT7482gatbllO3MzvUN7SizICqCgWkdIp5qwZy2grOTKSzTyCsNyO9I0EoxOWFbJp/7ObpdAkfJ2uDi1FQuTpUCL1rGfmzhE06Jql8W0VxV8tmFyPgZqygcPzQIESjp9AagsAxrXyCzIE233SoMc4Ds3K581A53KtBpQ630AVVCdWlEFbg74RHiX31YF7magjOjqydtchg75xiY3jUdfbVfJ/iNOrkz4cydh0rsS+8qNWlCWA6ViD7NjoGq2Ve8qJU1isz1hPHOhgCcBZXPdqx1MKLcRUGrw8ia5L9CiZUv0RwVrk3wEoxpWNKVtnMneRl5/XloPoOYLQGVBV5KNHpzefQltP6WngkLstCjGWXq8xk8CnQp2pSaWg8oHgYk6cioITKthoIKvkIxYAvSyI5NbUlBNfbtq3axEEM1ZanolCp/UWZUCXhQUmf0EReRDhdF3UbEL83Uo0SwxEij2lTVEW4BKXBt8PjHYGagkVTRTHYA3LBFjiBx8m58IFFB861QF0UWJhfxFRGKhE1BP9ZllnxoCQ78+F3B49I413uKWy4m2ALVoUXwCRrYz0JPET0iCelJVBqkuOulL15y2QRyaoVsj7lWABmOH9JWlK4jeQD3aAePhDrUUqS7d8JdmhzC3u7gRWPcE6sEGvrB+BnTlVQG15imWTgpLhOiEtk5Z9dwPyLVQVdlz976QOF0TPXhq7kC5bj3BpglovLHlc2XciOKbgHry8cAsP4M6xsOaHvvOy9/Qo+GSBPIjPTTT/1WBXpi8Ss6L3j+b7ptOGNo8Xwj0fiNfAjR5pmTbKXsrtZEV+9u6CXJgVpzhCM4xE7xeRUuBJubQU/v2YP0hgMYPgwKdmejkqdiVOGObnZ5ORMUwGwH6YcervWgjULwtF+366wiUnmdf44kdgIxsX3S8tn2lFShBFDkDUBKrxCVAKaL+9D0BjyhH3auqTeoSQCWiDazugHIcqC8HOiFAT9j2cPbVl+GWvESAo+sdvQJQjwyehbYTMjSBJE+0LUCBYs90gk61+aq5LaoFAHGPq4xzCaCxOsxwy5IDgcqA+mKg+DOd4h3hn4j4+++qpuuoFg+PS27i2VMg9+Ile0vGjiSDBx3DdrPezy+BFOV2JN3sYfKPhz/TaX6UmDSnPQivt7iNJ+0uEvMkIaXxp92In6R8PNW0m6ei3KgmgqnxLt+9idUD6I+JGEB/TLBXNlM+1I7hOxhStzzKHfINpJoX7zY88PtS/5U49T6bTKOdJny8Pf1wbLGwSJxHTHQ40TBRdR4W94AuFew3FJvuFR6ylvB8q5ni2+7mH9JFRe8vCbiK4N1euzNkUxVd2Jg7ZGeBbuf3EA75htHt+p6zIVsvXb5zBNmQDYkOB3pAEcPe/pofhd42PHK4BxUrCt8rOeQwyxfdtFV1yI61NKyVajG08yf0VCkhlBowy+UP8oj4tnqDbLEAAAAASUVORK5CYII=", - "fileName": "n8n-logo.png" - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "filename": "05-versions-space.pdf" - }, - "binary": { - "binaryfile": { - "mimeType": "application/pdf", - "data": "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3iVUEWUxQu8Tqou1xDr0TqGR2ExsJbYTO4rdxD7l0TMKxSJxojhNnCU+LtriAnGxuFRcIa4RN4hviJsv1nddIR/7zXgoAawCVgUTwSTwElAGLwWDYAiMgAqogTpogFHwcvAK8EqwOvgn8CqwJlgLvA5MAa8H64I3gDeC9cEG4E1gI7AJ2BRsBt4KtgHbgneC7cEOYCrYGUwDu4BdwW5gd7AH2BPsBfYG+4B9wX7g3WB/cAA4EL/QPwl+B34P/hs8Bf4A/sgYJaAAiqAHlEAv5R9On8tpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNr8w+lzOm3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW384fU6nHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGnnD6fP6bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047f7enb4Yo7jROmcQ9oQIowR6QR9YBawKJoJ+8BJQBgNgEAyDEVABVdAAo+BlYDXwcvBKsDpYA7wGTAavBeuA14HXg3XBG8AbwfrgTWAjsDHYBGwG3gq2AFuCt4OtwTvAduCdYHvwLrADmAp2BDuBncE0sAvYFewGdgd7gIgfHMW2jSaA2MJRbOEotnA0CcQWjmILRy8FsZ2j2M7REMi29h9On8tpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcPp335++SE7bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG03b59+GIwhFaHLHY6Ox6hr4CaTpNBZJDGpAFZDFZSlYg8uMbFX6peoKcEqTy54ZrCXWEWmSFUJ9so1ObCq0wnnMPemxkCDls9GP6V0TL2CZMpsfH44JL52K5p4Wlwiq69Dr239vQU6GFtBe9KLSSPWESmUci+A/E5fgPRAr+91AX/3u4Ef97qE9bXorvhUpZ1E/KPLAYHAnafL1ewrt80AULwPngPMyVx8ty+DIO3xazMfU5sAh8Bp+M4/On8/lMnr6ENJfFQkX6AOZaCY7DtAks3ibqmM1rno1RwtkcsdrGY3oR/3wmT0t4OpvFKkUL8D4W1RMp1i2q4l0smmcKiZBmpBWeEe5FBpIMko1IEUV4aiwW27NsH7PnJe4JDyMknB0ezQwJD2QRXikR+zfM+sDs3dDyNDY1GxwCTgRngRMos1BCFi8hC0tm8RKyeAlZKCELJWShhCyU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kYPrt5OXtxSXaxZf+jNV8/IY1Cx6nMM59q+xJrj4U28LwUPKkqiMLlSdsLBPG+x1W7usXXdCsD8qLLTNy2LdXqFSjuSk0+CydwCDYzt/8yB/3Sv+qBSlj27BEMh/ABW4qmINCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMCAwIG9iag0KPDwvVHlwZS9YUmVmL1NpemUgMjAvV1sgMSA0IDJdIC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDgxPj4NCnN0cmVhbQ0KeJxjYACC//8ZgaQgAwOIqoVQW8EU42EwxcwPobaDKZZlEOo2mGIVYGBgAmoQYGCGUCwQihVCMUEoqBI2kIZfMB4jkMfeATaFI5eBAQACHwkSDQplbmRzdHJlYW0NCmVuZG9iag0KeHJlZg0KMCAyMQ0KMDAwMDAwMDAxMCA2NTUzNSBmDQowMDAwMDAwMDE3IDAwMDAwIG4NCjAwMDAwMDAxMjUgMDAwMDAgbg0KMDAwMDAwMDE4MSAwMDAwMCBuDQowMDAwMDAwNDUxIDAwMDAwIG4NCjAwMDAwMDA3ODMgMDAwMDAgbg0KMDAwMDAwMDk1MSAwMDAwMCBuDQowMDAwMDAxMTkwIDAwMDAwIG4NCjAwMDAwMDEyNDMgMDAwMDAgbg0KMDAwMDAwMTI5NiAwMDAwMCBuDQowMDAwMDAwMDExIDY1NTM1IGYNCjAwMDAwMDAwMTIgNjU1MzUgZg0KMDAwMDAwMDAxMyA2NTUzNSBmDQowMDAwMDAwMDE0IDY1NTM1IGYNCjAwMDAwMDAwMTUgNjU1MzUgZg0KMDAwMDAwMDAxNiA2NTUzNSBmDQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMTkyOCAwMDAwMCBuDQowMDAwMDAyMTU3IDAwMDAwIG4NCjAwMDAxODU1MTkgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dID4+DQpzdGFydHhyZWYNCjE4NTc5OQ0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9QcmV2IDE4NTc5OS9YUmVmU3RtIDE4NTUxOT4+DQpzdGFydHhyZWYNCjE4NjM3Ng0KJSVFT0Y=", - "fileName": "05-versions-space.pdf" - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "filename": "n8n-screenshot.png" - }, - "binary": { - "binaryfile": { - "mimeType": "image/png", - "data": "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", - "fileName": "n8n-screenshot.png" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Write Binary File": [ - { - "startTime": 1747344008486, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set files" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "filename": "n8n-logo.png", - "fileName": "/tmp/n8n-logo.png" - }, - "pairedItem": { - "item": 0 - }, - "binary": { - "binaryfile": { - "mimeType": "image/png", - "data": "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", - "fileName": "n8n-logo.png" - } - } - }, - { - "json": { - "filename": "05-versions-space.pdf", - "fileName": "/tmp/05-versions-space.pdf" - }, - "pairedItem": { - "item": 1 - }, - "binary": { - "binaryfile": { - "mimeType": "application/pdf", - "data": "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3iVUEWUxQu8Tqou1xDr0TqGR2ExsJbYTO4rdxD7l0TMKxSJxojhNnCU+LtriAnGxuFRcIa4RN4hviJsv1nddIR/7zXgoAawCVgUTwSTwElAGLwWDYAiMgAqogTpogFHwcvAK8EqwOvgn8CqwJlgLvA5MAa8H64I3gDeC9cEG4E1gI7AJ2BRsBt4KtgHbgneC7cEOYCrYGUwDu4BdwW5gd7AH2BPsBfYG+4B9wX7g3WB/cAA4EL/QPwl+B34P/hs8Bf4A/sgYJaAAiqAHlEAv5R9On8tpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNr8w+lzOm3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW384fU6nHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGnnD6fP6bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047f7enb4Yo7jROmcQ9oQIowR6QR9YBawKJoJ+8BJQBgNgEAyDEVABVdAAo+BlYDXwcvBKsDpYA7wGTAavBeuA14HXg3XBG8AbwfrgTWAjsDHYBGwG3gq2AFuCt4OtwTvAduCdYHvwLrADmAp2BDuBncE0sAvYFewGdgd7gIgfHMW2jSaA2MJRbOEotnA0CcQWjmILRy8FsZ2j2M7REMi29h9On8tpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcPp335++SE7bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG03b59+GIwhFaHLHY6Ox6hr4CaTpNBZJDGpAFZDFZSlYg8uMbFX6peoKcEqTy54ZrCXWEWmSFUJ9so1ObCq0wnnMPemxkCDls9GP6V0TL2CZMpsfH44JL52K5p4Wlwiq69Dr239vQU6GFtBe9KLSSPWESmUci+A/E5fgPRAr+91AX/3u4Ef97qE9bXorvhUpZ1E/KPLAYHAnafL1ewrt80AULwPngPMyVx8ty+DIO3xazMfU5sAh8Bp+M4/On8/lMnr6ENJfFQkX6AOZaCY7DtAks3ibqmM1rno1RwtkcsdrGY3oR/3wmT0t4OpvFKkUL8D4W1RMp1i2q4l0smmcKiZBmpBWeEe5FBpIMko1IEUV4aiwW27NsH7PnJe4JDyMknB0ezQwJD2QRXikR+zfM+sDs3dDyNDY1GxwCTgRngRMos1BCFi8hC0tm8RKyeAlZKCELJWShhCyU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kYPrt5OXtxSXaxZf+jNV8/IY1Cx6nMM59q+xJrj4U28LwUPKkqiMLlSdsLBPG+x1W7usXXdCsD8qLLTNy2LdXqFSjuSk0+CydwCDYzt/8yB/3Sv+qBSlj27BEMh/ABW4qmINCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMCAwIG9iag0KPDwvVHlwZS9YUmVmL1NpemUgMjAvV1sgMSA0IDJdIC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDgxPj4NCnN0cmVhbQ0KeJxjYACC//8ZgaQgAwOIqoVQW8EU42EwxcwPobaDKZZlEOo2mGIVYGBgAmoQYGCGUCwQihVCMUEoqBI2kIZfMB4jkMfeATaFI5eBAQACHwkSDQplbmRzdHJlYW0NCmVuZG9iag0KeHJlZg0KMCAyMQ0KMDAwMDAwMDAxMCA2NTUzNSBmDQowMDAwMDAwMDE3IDAwMDAwIG4NCjAwMDAwMDAxMjUgMDAwMDAgbg0KMDAwMDAwMDE4MSAwMDAwMCBuDQowMDAwMDAwNDUxIDAwMDAwIG4NCjAwMDAwMDA3ODMgMDAwMDAgbg0KMDAwMDAwMDk1MSAwMDAwMCBuDQowMDAwMDAxMTkwIDAwMDAwIG4NCjAwMDAwMDEyNDMgMDAwMDAgbg0KMDAwMDAwMTI5NiAwMDAwMCBuDQowMDAwMDAwMDExIDY1NTM1IGYNCjAwMDAwMDAwMTIgNjU1MzUgZg0KMDAwMDAwMDAxMyA2NTUzNSBmDQowMDAwMDAwMDE0IDY1NTM1IGYNCjAwMDAwMDAwMTUgNjU1MzUgZg0KMDAwMDAwMDAxNiA2NTUzNSBmDQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMTkyOCAwMDAwMCBuDQowMDAwMDAyMTU3IDAwMDAwIG4NCjAwMDAxODU1MTkgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dID4+DQpzdGFydHhyZWYNCjE4NTc5OQ0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9QcmV2IDE4NTc5OS9YUmVmU3RtIDE4NTUxOT4+DQpzdGFydHhyZWYNCjE4NjM3Ng0KJSVFT0Y=", - "fileName": "05-versions-space.pdf" - } - } - }, - { - "json": { - "filename": "n8n-screenshot.png", - "fileName": "/tmp/n8n-screenshot.png" - }, - "pairedItem": { - "item": 2 - }, - "binary": { - "binaryfile": { - "mimeType": "image/png", - "data": "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", - "fileName": "n8n-screenshot.png" - } - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Write Binary File" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:08.477Z", - "stoppedAt": "2025-05-15T21:20:08.489Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/60-snapshot.json b/test-workflows/snapshots/60-snapshot.json deleted file mode 100644 index c5175a2306..0000000000 --- a/test-workflows/snapshots/60-snapshot.json +++ /dev/null @@ -1,426 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1734619806689, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Taiga": [ - { - "hints": [], - "startTime": 1734619806690, - "executionTime": 895, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tags": [ - "json array" - ], - "due_date": { - "object": true - }, - "due_date_reason": "", - "due_date_status": "not_set", - "attachments": [ - "json array" - ], - "project": 399742, - "project_extra_info": { - "object": true - }, - "status": 2801529, - "status_extra_info": { - "object": true - }, - "assigned_to": { - "object": true - }, - "assigned_to_extra_info": { - "object": true - }, - "owner": 470482, - "owner_extra_info": { - "object": true - }, - "is_watcher": false, - "total_watchers": 0, - "is_voter": false, - "total_voters": 0, - "id": 1880291, - "ref": 1927, - "severity": 1996617, - "priority": 1201587, - "type": 1206845, - "milestone": { - "object": true - }, - "created_date": "2024-12-19T14:50:07.433Z", - "modified_date": "2024-12-19T14:50:07.438Z", - "finished_date": { - "object": true - }, - "subject": "Test", - "external_reference": { - "object": true - }, - "version": 1, - "watchers": [ - "json array" - ], - "is_blocked": false, - "blocked_note": "", - "is_closed": false, - "comment": "", - "generated_user_stories": { - "object": true - }, - "blocked_note_html": "", - "description": "TestIssue", - "description_html": "

TestIssue

" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Taiga1": [ - { - "hints": [], - "startTime": 1734619807585, - "executionTime": 1712, - "source": [ - { - "previousNode": "Taiga" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tags": [ - "json array" - ], - "due_date": { - "object": true - }, - "due_date_reason": "", - "due_date_status": "not_set", - "attachments": [ - "json array" - ], - "project": 399742, - "project_extra_info": { - "object": true - }, - "status": 2801529, - "status_extra_info": { - "object": true - }, - "assigned_to": { - "object": true - }, - "assigned_to_extra_info": { - "object": true - }, - "owner": 470482, - "owner_extra_info": { - "object": true - }, - "is_watcher": false, - "total_watchers": 0, - "is_voter": false, - "total_voters": 0, - "id": 1880291, - "ref": 1927, - "severity": 1996617, - "priority": 1201587, - "type": 1206845, - "milestone": { - "object": true - }, - "created_date": "2024-12-19T14:50:07.433Z", - "modified_date": "2024-12-19T14:50:09.170Z", - "finished_date": { - "object": true - }, - "subject": "UpdatedTest", - "external_reference": { - "object": true - }, - "version": 2, - "watchers": [ - "json array" - ], - "is_blocked": false, - "blocked_note": "", - "is_closed": false, - "comment": "", - "generated_user_stories": { - "object": true - }, - "blocked_note_html": "", - "description": "TestIssue", - "description_html": "

TestIssue

" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Taiga2": [ - { - "hints": [], - "startTime": 1734619809297, - "executionTime": 847, - "source": [ - { - "previousNode": "Taiga1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tags": [ - "json array" - ], - "due_date": { - "object": true - }, - "due_date_reason": "", - "due_date_status": "not_set", - "attachments": [ - "json array" - ], - "project": 399742, - "project_extra_info": { - "object": true - }, - "status": 2801529, - "status_extra_info": { - "object": true - }, - "assigned_to": { - "object": true - }, - "assigned_to_extra_info": { - "object": true - }, - "owner": 470482, - "owner_extra_info": { - "object": true - }, - "is_watcher": false, - "total_watchers": 0, - "is_voter": false, - "total_voters": 0, - "id": 1880291, - "ref": 1927, - "severity": 1996617, - "priority": 1201587, - "type": 1206845, - "milestone": { - "object": true - }, - "created_date": "2024-12-19T14:50:07.433Z", - "modified_date": "2024-12-19T14:50:09.170Z", - "finished_date": { - "object": true - }, - "subject": "UpdatedTest", - "external_reference": { - "object": true - }, - "version": 2, - "watchers": [ - "json array" - ], - "is_blocked": false, - "blocked_note": "", - "is_closed": false, - "comment": "", - "generated_user_stories": { - "object": true - }, - "blocked_note_html": "", - "description": "TestIssue", - "description_html": "

TestIssue

", - "neighbors": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Taiga3": [ - { - "hints": [], - "startTime": 1734619810144, - "executionTime": 918, - "source": [ - { - "previousNode": "Taiga2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tags": [ - "json array" - ], - "due_date": { - "object": true - }, - "due_date_reason": "", - "due_date_status": "not_set", - "attachments": [ - "json array" - ], - "project": 399742, - "project_extra_info": { - "object": true - }, - "status": 2801529, - "status_extra_info": { - "object": true - }, - "assigned_to": { - "object": true - }, - "assigned_to_extra_info": { - "object": true - }, - "owner": 470482, - "owner_extra_info": { - "object": true - }, - "is_watcher": false, - "total_watchers": 0, - "is_voter": false, - "total_voters": 0, - "id": 1880291, - "ref": 1927, - "severity": 1996617, - "priority": 1201587, - "type": 1206845, - "milestone": { - "object": true - }, - "created_date": "2024-12-19T14:50:07.433Z", - "modified_date": "2024-12-19T14:50:09.170Z", - "finished_date": { - "object": true - }, - "subject": "UpdatedTest", - "external_reference": { - "object": true - }, - "version": 2, - "watchers": [ - "json array" - ], - "is_blocked": false, - "blocked_note": "", - "is_closed": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Taiga4": [ - { - "hints": [], - "startTime": 1734619811062, - "executionTime": 997, - "source": [ - { - "previousNode": "Taiga3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Taiga4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2024-12-19T14:50:06.689Z", - "stoppedAt": "2024-12-19T14:50:12.059Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/61-snapshot.json b/test-workflows/snapshots/61-snapshot.json deleted file mode 100644 index 81ec5475cd..0000000000 --- a/test-workflows/snapshots/61-snapshot.json +++ /dev/null @@ -1,800 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344008506, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify": [ - { - "startTime": 1747344008506, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 86, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "external_urls": { - "object": true - }, - "followers": { - "object": true - }, - "genres": [ - "json array" - ], - "href": "https://api.spotify.com/v1/artists/0dwFxqYkvZLSA6U6XfQcDV", - "id": "0dwFxqYkvZLSA6U6XfQcDV", - "images": [ - "json array" - ], - "name": "Fairuz", - "popularity": 65, - "type": "artist", - "uri": "spotify:artist:0dwFxqYkvZLSA6U6XfQcDV" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify8": [ - { - "startTime": 1747344008592, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 289, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "collaborative": false, - "description": "null", - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/playlists/4bH0XDDKQCIuE0pOECEjqu", - "id": "4bH0XDDKQCIuE0pOECEjqu", - "images": { - "object": true - }, - "name": "Playlist1747343948797", - "owner": { - "object": true - }, - "primary_color": { - "object": true - }, - "public": true, - "snapshot_id": "AAAAAUa4yHYgRLtKdnQXKpsqfHKJ0N1N", - "tracks": { - "object": true - }, - "type": "playlist", - "uri": "spotify:playlist:4bH0XDDKQCIuE0pOECEjqu" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify14": [ - { - "startTime": 1747344008881, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 80, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ], - "Spotify17": [ - { - "startTime": 1747344008961, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 110, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "added_at": "2021-03-09T20:01:56Z", - "track": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify1": [ - { - "startTime": 1747344009071, - "executionIndex": 5, - "source": [ - { - "previousNode": "Spotify" - } - ], - "hints": [], - "executionTime": 125, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "album_type": "album", - "total_tracks": 9, - "available_markets": [ - "json array" - ], - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/albums/5ZJnifXQ8ovGURQY7XhgCG", - "id": "5ZJnifXQ8ovGURQY7XhgCG", - "images": [ - "json array" - ], - "name": "Fauroziat فيروزيات (Instrumental)", - "release_date": "2024-12-21", - "release_date_precision": "day", - "type": "album", - "uri": "spotify:album:5ZJnifXQ8ovGURQY7XhgCG", - "artists": [ - "json array" - ], - "album_group": "album" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify3": [ - { - "startTime": 1747344009196, - "executionIndex": 6, - "source": [ - { - "previousNode": "Spotify" - } - ], - "hints": [], - "executionTime": 181, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "album": { - "object": true - }, - "artists": [ - "json array" - ], - "available_markets": [ - "json array" - ], - "disc_number": 1, - "duration_ms": 202997, - "explicit": false, - "external_ids": { - "object": true - }, - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/tracks/1Xf9s0vxxGyiMHQDtxK9Cu", - "id": "1Xf9s0vxxGyiMHQDtxK9Cu", - "is_local": false, - "is_playable": true, - "name": "Konna Netlaka", - "popularity": 62, - "preview_url": "https://p.scdn.co/mp3-preview/43c539282f10c04afca6c696af461ca23fac47c8?cid=d6fc82a01ffb43538b33c4003257c758", - "track_number": 1, - "type": "track", - "uri": "spotify:track:1Xf9s0vxxGyiMHQDtxK9Cu" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify2": [ - { - "startTime": 1747344009377, - "executionIndex": 7, - "source": [ - { - "previousNode": "Spotify" - } - ], - "hints": [], - "executionTime": 126, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "external_urls": { - "object": true - }, - "followers": { - "object": true - }, - "genres": [ - "json array" - ], - "href": "https://api.spotify.com/v1/artists/1FcYCSOydUCgoauspPwypS", - "id": "1FcYCSOydUCgoauspPwypS", - "images": [ - "json array" - ], - "name": "Majida El Roumi", - "popularity": 49, - "type": "artist", - "uri": "spotify:artist:1FcYCSOydUCgoauspPwypS" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify9": [ - { - "startTime": 1747344009503, - "executionIndex": 8, - "source": [ - { - "previousNode": "Spotify8" - } - ], - "hints": [], - "executionTime": 252, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "collaborative": false, - "description": "null", - "external_urls": { - "object": true - }, - "followers": { - "object": true - }, - "href": "https://api.spotify.com/v1/playlists/4bH0XDDKQCIuE0pOECEjqu", - "id": "4bH0XDDKQCIuE0pOECEjqu", - "images": { - "object": true - }, - "name": "Playlist1747343948797", - "owner": { - "object": true - }, - "primary_color": { - "object": true - }, - "public": true, - "snapshot_id": "AAAAAUa4yHYgRLtKdnQXKpsqfHKJ0N1N", - "tracks": { - "object": true - }, - "type": "playlist", - "uri": "spotify:playlist:4bH0XDDKQCIuE0pOECEjqu" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify4": [ - { - "startTime": 1747344009755, - "executionIndex": 9, - "source": [ - { - "previousNode": "Spotify1" - } - ], - "hints": [], - "executionTime": 123, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "album_type": "album", - "total_tracks": 9, - "available_markets": [ - "json array" - ], - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/albums/5ZJnifXQ8ovGURQY7XhgCG", - "id": "5ZJnifXQ8ovGURQY7XhgCG", - "images": [ - "json array" - ], - "name": "Fauroziat فيروزيات (Instrumental)", - "release_date": "2024-12-21", - "release_date_precision": "day", - "type": "album", - "uri": "spotify:album:5ZJnifXQ8ovGURQY7XhgCG", - "artists": [ - "json array" - ], - "tracks": { - "object": true - }, - "copyrights": [ - "json array" - ], - "external_ids": { - "object": true - }, - "genres": [ - "json array" - ], - "label": "Atef Bahr", - "popularity": 32 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify10": [ - { - "startTime": 1747344009878, - "executionIndex": 10, - "source": [ - { - "previousNode": "Spotify9" - } - ], - "hints": [], - "executionTime": 283, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "snapshot_id": "AAAAAtWGmmpVobJ7hcaQCTx5KdKU+0hQ" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify13": [ - { - "startTime": 1747344010161, - "executionIndex": 11, - "source": [ - { - "previousNode": "Spotify4" - } - ], - "hints": [], - "executionTime": 334, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "album_type": "ep", - "artists": [ - "json array" - ], - "available_markets": [ - "json array" - ], - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/albums/5UAGPzp0t0DIczTuIPLCak", - "id": "5UAGPzp0t0DIczTuIPLCak", - "images": [ - "json array" - ], - "name": "Cotinga", - "release_date": "2025-04-17", - "release_date_precision": "day", - "total_tracks": 6, - "type": "album", - "uri": "spotify:album:5UAGPzp0t0DIczTuIPLCak" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify11": [ - { - "startTime": 1747344010495, - "executionIndex": 12, - "source": [ - { - "previousNode": "Spotify10" - } - ], - "hints": [], - "executionTime": 108, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "added_at": "2025-05-15T21:20:10Z", - "added_by": { - "object": true - }, - "is_local": false, - "primary_color": { - "object": true - }, - "track": { - "object": true - }, - "video_thumbnail": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify5": [ - { - "startTime": 1747344010603, - "executionIndex": 13, - "source": [ - { - "previousNode": "Spotify13" - } - ], - "hints": [], - "executionTime": 95, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "artists": [ - "json array" - ], - "available_markets": [ - "json array" - ], - "disc_number": 1, - "duration_ms": 304266, - "explicit": false, - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/tracks/3M84jLJbkduv2Zc3xIHPRl", - "id": "3M84jLJbkduv2Zc3xIHPRl", - "name": "Tayr Lwarwar طير الوروار", - "preview_url": "https://p.scdn.co/mp3-preview/eb6cfe4dab53c8c9e2689539539fd8e492212fcc?cid=d6fc82a01ffb43538b33c4003257c758", - "track_number": 1, - "type": "track", - "uri": "spotify:track:3M84jLJbkduv2Zc3xIHPRl", - "is_local": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify12": [ - { - "startTime": 1747344010698, - "executionIndex": 14, - "source": [ - { - "previousNode": "Spotify11" - } - ], - "hints": [], - "executionTime": 278, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify6": [ - { - "startTime": 1747344010976, - "executionIndex": 15, - "source": [ - { - "previousNode": "Spotify5" - } - ], - "hints": [], - "executionTime": 87, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "album": { - "object": true - }, - "artists": [ - "json array" - ], - "available_markets": [ - "json array" - ], - "disc_number": 1, - "duration_ms": 304266, - "explicit": false, - "external_ids": { - "object": true - }, - "external_urls": { - "object": true - }, - "href": "https://api.spotify.com/v1/tracks/3M84jLJbkduv2Zc3xIHPRl", - "id": "3M84jLJbkduv2Zc3xIHPRl", - "is_local": false, - "name": "Tayr Lwarwar طير الوروار", - "popularity": 31, - "preview_url": "https://p.scdn.co/mp3-preview/eb6cfe4dab53c8c9e2689539539fd8e492212fcc?cid=d6fc82a01ffb43538b33c4003257c758", - "track_number": 1, - "type": "track", - "uri": "spotify:track:3M84jLJbkduv2Zc3xIHPRl" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify16": [ - { - "startTime": 1747344011063, - "executionIndex": 16, - "source": [ - { - "previousNode": "Spotify12" - } - ], - "hints": [], - "executionTime": 235, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "collaborative": false, - "description": "null", - "external_urls": { - "object": true - }, - "followers": { - "object": true - }, - "href": "https://api.spotify.com/v1/playlists/0BQ1JO1OK3l9Vg7zeHnJ9v", - "id": "0BQ1JO1OK3l9Vg7zeHnJ9v", - "images": [ - "json array" - ], - "primary_color": { - "object": true - }, - "name": "Playlist1747344011065", - "type": "playlist", - "uri": "spotify:playlist:0BQ1JO1OK3l9Vg7zeHnJ9v", - "owner": { - "object": true - }, - "public": true, - "snapshot_id": "AAAI50lYiWenT2YxYHUn3ksjudGeNJEo", - "tracks": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Spotify7": [ - { - "startTime": 1747344011298, - "executionIndex": 17, - "source": [ - { - "previousNode": "Spotify6" - } - ], - "hints": [], - "executionTime": 70, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "danceability": 0.599, - "energy": 0.639, - "key": 0, - "loudness": -7.542, - "mode": 1, - "speechiness": 0.0448, - "acousticness": 0.307, - "instrumentalness": 0.363, - "liveness": 0.0685, - "valence": 0.78, - "tempo": 119.334, - "type": "audio_features", - "id": "3M84jLJbkduv2Zc3xIHPRl", - "uri": "spotify:track:3M84jLJbkduv2Zc3xIHPRl", - "track_href": "https://api.spotify.com/v1/tracks/3M84jLJbkduv2Zc3xIHPRl", - "analysis_url": "https://api.spotify.com/v1/audio-analysis/3M84jLJbkduv2Zc3xIHPRl", - "duration_ms": 304267, - "time_signature": 4 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Spotify7" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:08.505Z", - "stoppedAt": "2025-05-15T21:20:11.368Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/62-snapshot.json b/test-workflows/snapshots/62-snapshot.json deleted file mode 100644 index 908ad1e8c0..0000000000 --- a/test-workflows/snapshots/62-snapshot.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344008708, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ProfitWell": [ - { - "startTime": 1747344008708, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 457, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "fd47e958-b607-46be-b5b1-2e87c43dffbf", - "name": "n8nqa", - "currency": "eur", - "timezone": "Europe/Paris" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ProfitWell1": [ - { - "startTime": 1747344009165, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 898, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "recurring_revenue": 0, - "date": "2025-05", - "new_recurring_revenue": 0, - "existing_recurring_revenue": 0, - "churned_recurring_revenue": 0, - "churned_recurring_revenue_cancellations": 0, - "churned_recurring_revenue_delinquent": 0, - "upgraded_recurring_revenue": 0, - "downgraded_recurring_revenue": 0, - "reactivated_recurring_revenue": 0, - "active_customers": 0, - "new_customers": 0, - "existing_customers": 0, - "churned_customers": 0, - "churned_customers_cancellations": 0, - "churned_customers_delinquent": 0, - "upgraded_customers": 0, - "downgraded_customers": 0, - "reactivated_customers": 0, - "average_revenue_per_user": 0, - "lifetime_value": { - "object": true - }, - "customers_churn_rate": { - "object": true - }, - "customers_churn_cancellations_rate": { - "object": true - }, - "customers_churn_delinquent_rate": { - "object": true - }, - "revenue_churn_rate": { - "object": true - }, - "revenue_churn_cancellations_rate": { - "object": true - }, - "revenue_churn_delinquent_rate": { - "object": true - }, - "revenue_retention_rate": { - "object": true - }, - "customers_retention_rate": { - "object": true - }, - "downgrade_rate": { - "object": true - }, - "upgrade_rate": { - "object": true - }, - "growth_rate": { - "object": true - }, - "saas_quick_ratio": { - "object": true - }, - "converted_recurring_revenue": 0, - "new_trialing_customers": 0, - "existing_trialing_customers": 1, - "churned_trialing_customers": 0, - "converted_customers": 0, - "active_trialing_customers": 1, - "customer_conversion_rate": 0, - "trial_conversion_time": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ProfitWell2": [ - { - "startTime": 1747344010063, - "executionIndex": 3, - "source": [ - { - "previousNode": "ProfitWell1" - } - ], - "hints": [], - "executionTime": 880, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "new_recurring_revenue": [ - "json array" - ], - "upgraded_recurring_revenue": [ - "json array" - ], - "downgraded_recurring_revenue": [ - "json array" - ], - "churned_recurring_revenue": [ - "json array" - ], - "reactivated_recurring_revenue": [ - "json array" - ], - "new_customers": [ - "json array" - ], - "upgraded_customers": [ - "json array" - ], - "downgraded_customers": [ - "json array" - ], - "churned_customers": [ - "json array" - ], - "reactivated_customers": [ - "json array" - ], - "recurring_revenue": [ - "json array" - ], - "cumulative_net_new_mrr": [ - "json array" - ], - "future_churn_mrr": [ - "json array" - ], - "cumulative_new_trialing_customers": [ - "json array" - ], - "active_customers": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ProfitWell2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:08.708Z", - "stoppedAt": "2025-05-15T21:20:10.943Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/63-snapshot.json b/test-workflows/snapshots/63-snapshot.json deleted file mode 100644 index 9d7f828a2d..0000000000 --- a/test-workflows/snapshots/63-snapshot.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344009798, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Segment": [ - { - "startTime": 1747344009798, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 692, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Segment1": [ - { - "startTime": 1747344010490, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 683, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Segment3": [ - { - "startTime": 1747344011173, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 674, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Segment2": [ - { - "startTime": 1747344011847, - "executionIndex": 4, - "source": [ - { - "previousNode": "Segment1" - } - ], - "hints": [], - "executionTime": 669, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Segment2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:09.797Z", - "stoppedAt": "2025-05-15T21:20:12.516Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/66-snapshot.json b/test-workflows/snapshots/66-snapshot.json deleted file mode 100644 index 75d207397c..0000000000 --- a/test-workflows/snapshots/66-snapshot.json +++ /dev/null @@ -1,439 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891395112, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Storyblok": [ - { - "startTime": 1676891395113, - "executionTime": 311, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "TestEntry", - "parent_id": 0, - "created_at": "2021-02-25T10:06:43.421Z", - "deleted_at": { - "object": true - }, - "group_id": "569ce22f-d30b-4d92-a549-de49fdf4d1aa", - "sort_by_date": { - "object": true - }, - "updated_at": "2023-02-20T11:06:39.624Z", - "published_at": "2023-02-20T11:06:39.462Z", - "id": 39088436, - "uuid": "f52c4a20-cc6a-4994-bec1-9d3ea0e4fa9e", - "is_folder": false, - "published": false, - "slug": "testentry", - "path": { - "object": true - }, - "full_slug": "testentry", - "position": 20, - "unpublished_changes": false, - "is_startpage": false, - "pinned": false, - "publish_at": { - "object": true - }, - "expire_at": { - "object": true - }, - "first_published_at": "2021-02-25T10:07:50.000Z", - "release_ids": [ - "json array" - ], - "stage": { - "object": true - }, - "alternates": [ - "json array" - ], - "default_root": "", - "disble_fe_editor": true, - "last_author": { - "object": true - }, - "content_summary": { - "object": true - }, - "content_type": "Blank", - "tag_list": [ - "json array" - ], - "can_not_view": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Storyblok1": [ - { - "startTime": 1676891395424, - "executionTime": 112, - "source": [ - { - "previousNode": "Storyblok" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "TestEntry", - "parent_id": 0, - "group_id": "569ce22f-d30b-4d92-a549-de49fdf4d1aa", - "alternates": [ - "json array" - ], - "created_at": "2021-02-25T10:06:43.421Z", - "deleted_at": { - "object": true - }, - "sort_by_date": { - "object": true - }, - "tag_list": [ - "json array" - ], - "updated_at": "2023-02-20T11:06:39.624Z", - "published_at": "2023-02-20T11:06:39.462Z", - "id": 39088436, - "uuid": "f52c4a20-cc6a-4994-bec1-9d3ea0e4fa9e", - "is_folder": false, - "content": { - "object": true - }, - "published": false, - "slug": "testentry", - "path": { - "object": true - }, - "full_slug": "testentry", - "default_root": "", - "disble_fe_editor": true, - "parent": { - "object": true - }, - "is_startpage": false, - "unpublished_changes": false, - "meta_data": { - "object": true - }, - "imported_at": { - "object": true - }, - "preview_token": { - "object": true - }, - "pinned": false, - "breadcrumbs": [ - "json array" - ], - "publish_at": { - "object": true - }, - "expire_at": { - "object": true - }, - "first_published_at": "2021-02-25T10:07:50.000Z", - "last_author": { - "object": true - }, - "user_ids": [ - "json array" - ], - "space_role_ids": [ - "json array" - ], - "translated_slugs": [ - "json array" - ], - "localized_paths": [ - "json array" - ], - "position": 20, - "translated_stories": [ - "json array" - ], - "can_not_view": false, - "is_scheduled": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Storyblok2": [ - { - "startTime": 1676891395536, - "executionTime": 260, - "source": [ - { - "previousNode": "Storyblok1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "TestEntry", - "parent_id": 0, - "group_id": "569ce22f-d30b-4d92-a549-de49fdf4d1aa", - "alternates": [ - "json array" - ], - "created_at": "2021-02-25T10:06:43.421Z", - "deleted_at": { - "object": true - }, - "sort_by_date": { - "object": true - }, - "tag_list": [ - "json array" - ], - "updated_at": "2023-02-20T11:09:55.693Z", - "published_at": "2023-02-20T11:09:55.664Z", - "id": 39088436, - "uuid": "f52c4a20-cc6a-4994-bec1-9d3ea0e4fa9e", - "is_folder": false, - "content": { - "object": true - }, - "published": true, - "slug": "testentry", - "path": { - "object": true - }, - "full_slug": "testentry", - "default_root": "", - "disble_fe_editor": true, - "parent": { - "object": true - }, - "is_startpage": false, - "unpublished_changes": false, - "meta_data": { - "object": true - }, - "imported_at": { - "object": true - }, - "preview_token": { - "object": true - }, - "pinned": false, - "breadcrumbs": [ - "json array" - ], - "publish_at": { - "object": true - }, - "expire_at": { - "object": true - }, - "first_published_at": "2021-02-25T10:07:50.000Z", - "last_author": { - "object": true - }, - "user_ids": [ - "json array" - ], - "space_role_ids": [ - "json array" - ], - "translated_slugs": [ - "json array" - ], - "localized_paths": [ - "json array" - ], - "position": 20, - "translated_stories": [ - "json array" - ], - "can_not_view": { - "object": true - }, - "is_scheduled": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Storyblok3": [ - { - "startTime": 1676891395796, - "executionTime": 182, - "source": [ - { - "previousNode": "Storyblok2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "TestEntry", - "parent_id": 0, - "group_id": "569ce22f-d30b-4d92-a549-de49fdf4d1aa", - "alternates": [ - "json array" - ], - "created_at": "2021-02-25T10:06:43.421Z", - "deleted_at": { - "object": true - }, - "sort_by_date": { - "object": true - }, - "tag_list": [ - "json array" - ], - "updated_at": "2023-02-20T11:09:55.945Z", - "published_at": "2023-02-20T11:09:55.664Z", - "id": 39088436, - "uuid": "f52c4a20-cc6a-4994-bec1-9d3ea0e4fa9e", - "is_folder": false, - "content": { - "object": true - }, - "published": false, - "slug": "testentry", - "path": { - "object": true - }, - "full_slug": "testentry", - "default_root": "", - "disble_fe_editor": true, - "parent": { - "object": true - }, - "is_startpage": false, - "unpublished_changes": false, - "meta_data": { - "object": true - }, - "imported_at": { - "object": true - }, - "preview_token": { - "object": true - }, - "pinned": false, - "breadcrumbs": [ - "json array" - ], - "publish_at": { - "object": true - }, - "expire_at": { - "object": true - }, - "first_published_at": "2021-02-25T10:07:50.000Z", - "last_author": { - "object": true - }, - "user_ids": [ - "json array" - ], - "space_role_ids": [ - "json array" - ], - "translated_slugs": [ - "json array" - ], - "localized_paths": [ - "json array" - ], - "position": 20, - "translated_stories": [ - "json array" - ], - "can_not_view": { - "object": true - }, - "is_scheduled": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Storyblok3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:55.111Z", - "stoppedAt": "2023-02-20T11:09:55.978Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/67-snapshot.json b/test-workflows/snapshots/67-snapshot.json deleted file mode 100644 index e587aa3947..0000000000 --- a/test-workflows/snapshots/67-snapshot.json +++ /dev/null @@ -1,1348 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344010437, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist": [ - { - "startTime": 1747344010437, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 319, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "archived": false, - "color": 1, - "created_ts": 1747344011, - "creator": 511904, - "default_groups": [ - "json array" - ], - "default_recipients": [ - "json array" - ], - "description": "", - "filters": { - "object": true - }, - "icon": 0, - "id": 786209, - "is_favorited": false, - "name": "TestChannel1747344010441", - "public": false, - "use_default_recipients": false, - "user_ids": [ - "json array" - ], - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist4": [ - { - "startTime": 1747344010756, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 323, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "content": "Message 1747344010758", - "conversation_id": 1067233, - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "id": 102322002, - "last_edited_ts": { - "object": true - }, - "obj_index": 2740, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "system_message": { - "object": true - }, - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist13": [ - { - "startTime": 1747344011079, - "executionIndex": 3, - "source": [ - { - "previousNode": "Twist" - } - ], - "hints": [], - "executionTime": 333, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "closed": false, - "comment_count": 0, - "content": "test", - "creator": 511904, - "creator_name": "nodeqa", - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 6968332, - "in_inbox": false, - "is_archived": true, - "is_saved": false, - "last_comment": { - "object": true - }, - "last_edited_ts": { - "object": true - }, - "last_obj_index": -1, - "last_updated_ts": 1747344011, - "muted_until_ts": { - "object": true - }, - "participants": [ - "json array" - ], - "pinned": false, - "pinned_ts": { - "object": true - }, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "responders": [ - "json array" - ], - "snippet": "test", - "snippet_creator": 511904, - "snippet_mask_avatar_url": { - "object": true - }, - "snippet_mask_poster": { - "object": true - }, - "starred": false, - "system_message": { - "object": true - }, - "title": "Thread1747344011082", - "to_emails": [ - "json array" - ], - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist9": [ - { - "startTime": 1747344011412, - "executionIndex": 4, - "source": [ - { - "previousNode": "Twist4" - } - ], - "hints": [], - "executionTime": 295, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "content": "Message 1747344010758", - "conversation_id": 1067233, - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "id": 102322002, - "last_edited_ts": { - "object": true - }, - "obj_index": 2740, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "system_message": { - "object": true - }, - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist18": [ - { - "startTime": 1747344011707, - "executionIndex": 5, - "source": [ - { - "previousNode": "Twist13" - } - ], - "hints": [], - "executionTime": 365, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "content": "Comment1747344011710", - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "deleted_by": { - "object": true - }, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 95587076, - "last_edited_ts": { - "object": true - }, - "obj_index": 0, - "posted_ts": 1747344012, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "system_message": { - "object": true - }, - "thread_id": 6968332, - "to_emails": [ - "json array" - ], - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist10": [ - { - "startTime": 1747344012072, - "executionIndex": 6, - "source": [ - { - "previousNode": "Twist9" - } - ], - "hints": [], - "executionTime": 143, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "content": "Message 1747344010758", - "conversation_id": 1067233, - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "id": 102322002, - "last_edited_ts": { - "object": true - }, - "obj_index": 2740, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "system_message": { - "object": true - }, - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist19": [ - { - "startTime": 1747344012215, - "executionIndex": 7, - "source": [ - { - "previousNode": "Twist18" - } - ], - "hints": [], - "executionTime": 156, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "content": "Comment1747344011710", - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "deleted_by": { - "object": true - }, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 95587076, - "last_edited_ts": { - "object": true - }, - "obj_index": 0, - "posted_ts": 1747344012, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "system_message": { - "object": true - }, - "thread_id": 6968332, - "to_emails": [ - "json array" - ], - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist11": [ - { - "startTime": 1747344012371, - "executionIndex": 8, - "source": [ - { - "previousNode": "Twist10" - } - ], - "hints": [], - "executionTime": 158, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "content": "Message 1747344010758", - "conversation_id": 1067233, - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "id": 102322002, - "last_edited_ts": { - "object": true - }, - "obj_index": 2740, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "system_message": { - "object": true - }, - "version": 1, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist20": [ - { - "startTime": 1747344012529, - "executionIndex": 9, - "source": [ - { - "previousNode": "Twist19" - } - ], - "hints": [], - "executionTime": 174, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "content": "Updated Content", - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "deleted_by": { - "object": true - }, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 95587076, - "last_edited_ts": 1747344012, - "obj_index": 0, - "posted_ts": 1747344012, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "system_message": { - "object": true - }, - "thread_id": 6968332, - "to_emails": [ - "json array" - ], - "version": 1, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist12": [ - { - "startTime": 1747344012703, - "executionIndex": 10, - "source": [ - { - "previousNode": "Twist11" - } - ], - "hints": [], - "executionTime": 148, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist21": [ - { - "startTime": 1747344012851, - "executionIndex": 11, - "source": [ - { - "previousNode": "Twist20" - } - ], - "hints": [], - "executionTime": 168, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "content": "Updated Content", - "creator": 511904, - "creator_name": "nodeqa", - "deleted": false, - "deleted_by": { - "object": true - }, - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 95587076, - "last_edited_ts": 1747344013, - "obj_index": 0, - "posted_ts": 1747344012, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "system_message": { - "object": true - }, - "thread_id": 6968332, - "to_emails": [ - "json array" - ], - "version": 1, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist22": [ - { - "startTime": 1747344013019, - "executionIndex": 12, - "source": [ - { - "previousNode": "Twist21" - } - ], - "hints": [], - "executionTime": 171, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist14": [ - { - "startTime": 1747344013190, - "executionIndex": 13, - "source": [ - { - "previousNode": "Twist22" - } - ], - "hints": [], - "executionTime": 143, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "closed": false, - "comment_count": 1, - "content": "test", - "creator": 511904, - "creator_name": "nodeqa", - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 6968332, - "in_inbox": false, - "is_archived": true, - "is_saved": false, - "last_comment": { - "object": true - }, - "last_edited_ts": { - "object": true - }, - "last_obj_index": 0, - "last_updated_ts": 1747344012, - "muted_until_ts": { - "object": true - }, - "participants": [ - "json array" - ], - "pinned": false, - "pinned_ts": { - "object": true - }, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "responders": [ - "json array" - ], - "snippet": "test", - "snippet_creator": 511904, - "snippet_mask_avatar_url": { - "object": true - }, - "snippet_mask_poster": { - "object": true - }, - "starred": false, - "system_message": { - "object": true - }, - "title": "Thread1747344011082", - "to_emails": [ - "json array" - ], - "version": 3, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist15": [ - { - "startTime": 1747344013333, - "executionIndex": 14, - "source": [ - { - "previousNode": "Twist14" - } - ], - "hints": [], - "executionTime": 172, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "closed": false, - "comment_count": 1, - "content": "Updated Content", - "creator": 511904, - "creator_name": "nodeqa", - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 6968332, - "in_inbox": false, - "is_archived": true, - "is_saved": false, - "last_comment": { - "object": true - }, - "last_edited_ts": 1747344013, - "last_obj_index": 0, - "last_updated_ts": 1747344012, - "muted_until_ts": { - "object": true - }, - "participants": [ - "json array" - ], - "pinned": false, - "pinned_ts": { - "object": true - }, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "responders": [ - "json array" - ], - "snippet": "test", - "snippet_creator": 511904, - "snippet_mask_avatar_url": { - "object": true - }, - "snippet_mask_poster": { - "object": true - }, - "starred": false, - "system_message": { - "object": true - }, - "title": "Thread1747344011082", - "to_emails": [ - "json array" - ], - "version": 4, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist17": [ - { - "startTime": 1747344013505, - "executionIndex": 15, - "source": [ - { - "previousNode": "Twist15" - } - ], - "hints": [], - "executionTime": 151, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "actions": [ - "json array" - ], - "attachments": [ - "json array" - ], - "channel_id": 786209, - "closed": false, - "comment_count": 1, - "content": "Updated Content", - "creator": 511904, - "creator_name": "nodeqa", - "direct_group_mentions": [ - "json array" - ], - "direct_mentions": [ - "json array" - ], - "groups": [ - "json array" - ], - "id": 6968332, - "in_inbox": false, - "is_archived": true, - "is_saved": false, - "last_comment": { - "object": true - }, - "last_edited_ts": 1747344013, - "last_obj_index": 0, - "last_updated_ts": 1747344012, - "muted_until_ts": { - "object": true - }, - "participants": [ - "json array" - ], - "pinned": false, - "pinned_ts": { - "object": true - }, - "posted_ts": 1747344011, - "reactions": { - "object": true - }, - "recipients": [ - "json array" - ], - "responders": [ - "json array" - ], - "snippet": "Updated Content", - "snippet_creator": 511904, - "snippet_mask_avatar_url": { - "object": true - }, - "snippet_mask_poster": { - "object": true - }, - "starred": false, - "system_message": { - "object": true - }, - "title": "Thread1747344011082", - "to_emails": [ - "json array" - ], - "version": 4, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist16": [ - { - "startTime": 1747344013656, - "executionIndex": 16, - "source": [ - { - "previousNode": "Twist17" - } - ], - "hints": [], - "executionTime": 156, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist1": [ - { - "startTime": 1747344013812, - "executionIndex": 17, - "source": [ - { - "previousNode": "Twist16" - } - ], - "hints": [], - "executionTime": 298, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "archived": false, - "color": 1, - "created_ts": 1747344011, - "creator": 511904, - "default_groups": [ - "json array" - ], - "default_recipients": [ - "json array" - ], - "description": "", - "filters": { - "object": true - }, - "icon": 0, - "id": 786209, - "is_favorited": false, - "name": "UpdatedChannel1747344013817", - "public": false, - "use_default_recipients": false, - "user_ids": [ - "json array" - ], - "version": 1, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist2": [ - { - "startTime": 1747344014110, - "executionIndex": 18, - "source": [ - { - "previousNode": "Twist1" - } - ], - "hints": [], - "executionTime": 143, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "archived": false, - "color": 1, - "created_ts": 1747344011, - "creator": 511904, - "default_groups": [ - "json array" - ], - "default_recipients": [ - "json array" - ], - "description": "", - "filters": { - "object": true - }, - "icon": 0, - "id": 786209, - "is_favorited": false, - "name": "UpdatedChannel1747344013817", - "public": false, - "use_default_recipients": false, - "user_ids": [ - "json array" - ], - "version": 1, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist3": [ - { - "startTime": 1747344014253, - "executionIndex": 19, - "source": [ - { - "previousNode": "Twist2" - } - ], - "hints": [], - "executionTime": 206, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "archived": false, - "color": 1, - "created_ts": 1614250659, - "creator": 511904, - "default_groups": [ - "json array" - ], - "default_recipients": [ - "json array" - ], - "description": "", - "filters": { - "object": true - }, - "icon": 0, - "id": 437294, - "is_favorited": false, - "name": "General", - "public": true, - "use_default_recipients": false, - "user_ids": [ - "json array" - ], - "version": 0, - "workspace_id": 164330 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist5": [ - { - "startTime": 1747344014459, - "executionIndex": 20, - "source": [ - { - "previousNode": "Twist3" - } - ], - "hints": [], - "executionTime": 145, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist6": [ - { - "startTime": 1747344014605, - "executionIndex": 21, - "source": [ - { - "previousNode": "Twist5" - } - ], - "hints": [], - "executionTime": 147, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist7": [ - { - "startTime": 1747344014752, - "executionIndex": 22, - "source": [ - { - "previousNode": "Twist6" - } - ], - "hints": [], - "executionTime": 169, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Twist8": [ - { - "startTime": 1747344014921, - "executionIndex": 23, - "source": [ - { - "previousNode": "Twist7" - } - ], - "hints": [], - "executionTime": 180, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "status": "ok" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Twist8" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:10.436Z", - "stoppedAt": "2025-05-15T21:20:15.101Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/70-snapshot.json b/test-workflows/snapshots/70-snapshot.json deleted file mode 100644 index cafc3d1b57..0000000000 --- a/test-workflows/snapshots/70-snapshot.json +++ /dev/null @@ -1,395 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344010966, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful5": [ - { - "startTime": 1747344010966, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 60, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "code": "en-US", - "name": "English (United States)", - "default": true, - "fallbackCode": { - "object": true - }, - "sys": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful": [ - { - "startTime": 1747344011026, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 61, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Static sites are great", - "slug": "static-sites-are-great", - "heroImage": { - "object": true - }, - "description": "Worry less about security, caching, and talking to the server. Static sites are the new thing.", - "body": "## The case for the static site generator\n\nMore and more developers are jumping on the \"go static train\", and rightfully so. Static pages are fast, lightweight, they scale well. They are more secure, and simple to maintain and they allow you to focus all your time and effort on the user interface. Often times, this dedication really shows.\n\nIt just so happens that static site generators are mostly loved by developers, but not by the average Joe. They do not offer WYSIWYG, previewing on demo sites may take an update cycle, they are often based on markdown text files, and they require some knowledge of modern day repositories.\n\nMoreover, when teams are collaborating, it can get complicated quickly. Has this article already been proof-read or reviewed? Is this input valid? Are user permissions available, e.g. for administering adding and removing team members? Can this article be published at a future date? How can a large repository of content be categorized, organized, and searched? All these requirements have previously been more or less solved within the admin area of your CMS. But of course with all the baggage that made you leave the appserver-app-database-in-one-big-blob stack in the first place.\n\n## Content APIs to the rescue\n\nAn alternative is decoupling the content management aspect from the system. And then replacing the maintenance prone server with a cloud based web service offering. Effectively, instead of your CMS of old, you move to a [Content Management as a Service (CMaaS)](https://www.contentful.com/r/knowledgebase/content-as-a-service/ \"Content Management as a Service (CMaaS)\") world, with a content API to deliver all your content. That way, you get the all the [benefits of content management features](http://www.digett.com/blog/01/16/2014/pairing-static-websites-cms \"benefits of content management features\") while still being able to embrace the static site generator mantra.\n\nIt so happens that Contentful is offering just that kind of content API. A service that\n\n* from the ground up has been designed to be fast, scalable, secure, and offer high uptime, so that you don’t have to worry about maintenance ever again.\n* offers a powerful editor and lots of flexibility in creating templates for your documents that your editors can reuse and combine, so that no developers resources are required in everyday writing and updating tasks.\n* separates content from presentation, so you can reuse your content repository for any device platform your heart desires. That way, you can COPE (\"create once, publish everywhere\").\n* offers webhooks that you can use to rebuild your static site in a fully automated fashion every time your content is modified.\n\nExtracted from the article [CMS-functionality for static site generators](https://www.contentful.com/r/knowledgebase/contentful-api-cms-static-site-generators/ \"CMS-functionality for static site generators\"). Read more about the [static site generators supported by Contentful](https://www.contentful.com/developers/docs/tools/staticsitegenerators/ \"static site generators supported by Contentful\").", - "author": { - "object": true - }, - "publishDate": "2017-05-16T00:00+02:00", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful1": [ - { - "startTime": 1747344011087, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 54, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "title", - "name": "Title", - "type": "Symbol", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "slug", - "name": "Slug", - "type": "Symbol", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "heroImage", - "name": "Hero Image", - "type": "Link", - "localized": false, - "required": true, - "disabled": false, - "omitted": false, - "linkType": "Asset" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "description", - "name": "Description", - "type": "Text", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "body", - "name": "Body", - "type": "Text", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "author", - "name": "Author", - "type": "Link", - "localized": false, - "required": false, - "disabled": false, - "omitted": false, - "linkType": "Entry" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "publishDate", - "name": "Publish Date", - "type": "Date", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "tags", - "name": "Tags", - "type": "Array", - "localized": false, - "required": false, - "disabled": false, - "omitted": false, - "items": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful2": [ - { - "startTime": 1747344011141, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 51, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "TestAsset", - "file": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful6": [ - { - "startTime": 1747344011192, - "executionIndex": 5, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 51, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "sys": { - "object": true - }, - "name": "n8n", - "locales": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful4": [ - { - "startTime": 1747344011243, - "executionIndex": 6, - "source": [ - { - "previousNode": "Contentful" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Static sites are great", - "slug": "static-sites-are-great", - "heroImage": { - "object": true - }, - "description": "Worry less about security, caching, and talking to the server. Static sites are the new thing.", - "body": "## The case for the static site generator\n\nMore and more developers are jumping on the \"go static train\", and rightfully so. Static pages are fast, lightweight, they scale well. They are more secure, and simple to maintain and they allow you to focus all your time and effort on the user interface. Often times, this dedication really shows.\n\nIt just so happens that static site generators are mostly loved by developers, but not by the average Joe. They do not offer WYSIWYG, previewing on demo sites may take an update cycle, they are often based on markdown text files, and they require some knowledge of modern day repositories.\n\nMoreover, when teams are collaborating, it can get complicated quickly. Has this article already been proof-read or reviewed? Is this input valid? Are user permissions available, e.g. for administering adding and removing team members? Can this article be published at a future date? How can a large repository of content be categorized, organized, and searched? All these requirements have previously been more or less solved within the admin area of your CMS. But of course with all the baggage that made you leave the appserver-app-database-in-one-big-blob stack in the first place.\n\n## Content APIs to the rescue\n\nAn alternative is decoupling the content management aspect from the system. And then replacing the maintenance prone server with a cloud based web service offering. Effectively, instead of your CMS of old, you move to a [Content Management as a Service (CMaaS)](https://www.contentful.com/r/knowledgebase/content-as-a-service/ \"Content Management as a Service (CMaaS)\") world, with a content API to deliver all your content. That way, you get the all the [benefits of content management features](http://www.digett.com/blog/01/16/2014/pairing-static-websites-cms \"benefits of content management features\") while still being able to embrace the static site generator mantra.\n\nIt so happens that Contentful is offering just that kind of content API. A service that\n\n* from the ground up has been designed to be fast, scalable, secure, and offer high uptime, so that you don’t have to worry about maintenance ever again.\n* offers a powerful editor and lots of flexibility in creating templates for your documents that your editors can reuse and combine, so that no developers resources are required in everyday writing and updating tasks.\n* separates content from presentation, so you can reuse your content repository for any device platform your heart desires. That way, you can COPE (\"create once, publish everywhere\").\n* offers webhooks that you can use to rebuild your static site in a fully automated fashion every time your content is modified.\n\nExtracted from the article [CMS-functionality for static site generators](https://www.contentful.com/r/knowledgebase/contentful-api-cms-static-site-generators/ \"CMS-functionality for static site generators\"). Read more about the [static site generators supported by Contentful](https://www.contentful.com/developers/docs/tools/staticsitegenerators/ \"static site generators supported by Contentful\").", - "author": { - "object": true - }, - "publishDate": "2017-05-16T00:00+02:00", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful3": [ - { - "startTime": 1747344011243, - "executionIndex": 7, - "source": [ - { - "previousNode": "Contentful2" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "TestAsset", - "file": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Contentful3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:10.966Z", - "stoppedAt": "2025-05-15T21:20:11.243Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/71-snapshot.json b/test-workflows/snapshots/71-snapshot.json deleted file mode 100644 index 59b9eb1acc..0000000000 --- a/test-workflows/snapshots/71-snapshot.json +++ /dev/null @@ -1,395 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011005, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful1": [ - { - "startTime": 1747344011005, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 200, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "title", - "name": "Title", - "type": "Symbol", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "slug", - "name": "Slug", - "type": "Symbol", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "heroImage", - "name": "Hero Image", - "type": "Link", - "localized": false, - "required": true, - "disabled": false, - "omitted": false, - "linkType": "Asset" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "description", - "name": "Description", - "type": "Text", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "body", - "name": "Body", - "type": "Text", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "author", - "name": "Author", - "type": "Link", - "localized": false, - "required": false, - "disabled": false, - "omitted": false, - "linkType": "Entry" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "publishDate", - "name": "Publish Date", - "type": "Date", - "localized": false, - "required": true, - "disabled": false, - "omitted": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "id": "tags", - "name": "Tags", - "type": "Array", - "localized": false, - "required": false, - "disabled": false, - "omitted": false, - "items": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful": [ - { - "startTime": 1747344011205, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 183, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Static sites are great", - "slug": "static-sites-are-great", - "heroImage": { - "object": true - }, - "description": "Worry less about security, caching, and talking to the server. Static sites are the new thing.", - "body": "## The case for the static site generator\n\nMore and more developers are jumping on the \"go static train\", and rightfully so. Static pages are fast, lightweight, they scale well. They are more secure, and simple to maintain and they allow you to focus all your time and effort on the user interface. Often times, this dedication really shows.\n\nIt just so happens that static site generators are mostly loved by developers, but not by the average Joe. They do not offer WYSIWYG, previewing on demo sites may take an update cycle, they are often based on markdown text files, and they require some knowledge of modern day repositories.\n\nMoreover, when teams are collaborating, it can get complicated quickly. Has this article already been proof-read or reviewed? Is this input valid? Are user permissions available, e.g. for administering adding and removing team members? Can this article be published at a future date? How can a large repository of content be categorized, organized, and searched? All these requirements have previously been more or less solved within the admin area of your CMS. But of course with all the baggage that made you leave the appserver-app-database-in-one-big-blob stack in the first place.\n\n## Content APIs to the rescue\n\nAn alternative is decoupling the content management aspect from the system. And then replacing the maintenance prone server with a cloud based web service offering. Effectively, instead of your CMS of old, you move to a [Content Management as a Service (CMaaS)](https://www.contentful.com/r/knowledgebase/content-as-a-service/ \"Content Management as a Service (CMaaS)\") world, with a content API to deliver all your content. That way, you get the all the [benefits of content management features](http://www.digett.com/blog/01/16/2014/pairing-static-websites-cms \"benefits of content management features\") while still being able to embrace the static site generator mantra.\n\nIt so happens that Contentful is offering just that kind of content API. A service that\n\n* from the ground up has been designed to be fast, scalable, secure, and offer high uptime, so that you don’t have to worry about maintenance ever again.\n* offers a powerful editor and lots of flexibility in creating templates for your documents that your editors can reuse and combine, so that no developers resources are required in everyday writing and updating tasks.\n* separates content from presentation, so you can reuse your content repository for any device platform your heart desires. That way, you can COPE (\"create once, publish everywhere\").\n* offers webhooks that you can use to rebuild your static site in a fully automated fashion every time your content is modified.\n\nExtracted from the article [CMS-functionality for static site generators](https://www.contentful.com/r/knowledgebase/contentful-api-cms-static-site-generators/ \"CMS-functionality for static site generators\"). Read more about the [static site generators supported by Contentful](https://www.contentful.com/developers/docs/tools/staticsitegenerators/ \"static site generators supported by Contentful\").", - "author": { - "object": true - }, - "publishDate": "2017-05-16T00:00+02:00", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful5": [ - { - "startTime": 1747344011388, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 177, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "code": "en-US", - "name": "English (United States)", - "default": true, - "fallbackCode": { - "object": true - }, - "sys": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful2": [ - { - "startTime": 1747344011565, - "executionIndex": 4, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 210, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "TestAsset", - "file": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful6": [ - { - "startTime": 1747344011775, - "executionIndex": 5, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 187, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "sys": { - "object": true - }, - "name": "n8n", - "locales": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful4": [ - { - "startTime": 1747344011962, - "executionIndex": 6, - "source": [ - { - "previousNode": "Contentful" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Static sites are great", - "slug": "static-sites-are-great", - "heroImage": { - "object": true - }, - "description": "Worry less about security, caching, and talking to the server. Static sites are the new thing.", - "body": "## The case for the static site generator\n\nMore and more developers are jumping on the \"go static train\", and rightfully so. Static pages are fast, lightweight, they scale well. They are more secure, and simple to maintain and they allow you to focus all your time and effort on the user interface. Often times, this dedication really shows.\n\nIt just so happens that static site generators are mostly loved by developers, but not by the average Joe. They do not offer WYSIWYG, previewing on demo sites may take an update cycle, they are often based on markdown text files, and they require some knowledge of modern day repositories.\n\nMoreover, when teams are collaborating, it can get complicated quickly. Has this article already been proof-read or reviewed? Is this input valid? Are user permissions available, e.g. for administering adding and removing team members? Can this article be published at a future date? How can a large repository of content be categorized, organized, and searched? All these requirements have previously been more or less solved within the admin area of your CMS. But of course with all the baggage that made you leave the appserver-app-database-in-one-big-blob stack in the first place.\n\n## Content APIs to the rescue\n\nAn alternative is decoupling the content management aspect from the system. And then replacing the maintenance prone server with a cloud based web service offering. Effectively, instead of your CMS of old, you move to a [Content Management as a Service (CMaaS)](https://www.contentful.com/r/knowledgebase/content-as-a-service/ \"Content Management as a Service (CMaaS)\") world, with a content API to deliver all your content. That way, you get the all the [benefits of content management features](http://www.digett.com/blog/01/16/2014/pairing-static-websites-cms \"benefits of content management features\") while still being able to embrace the static site generator mantra.\n\nIt so happens that Contentful is offering just that kind of content API. A service that\n\n* from the ground up has been designed to be fast, scalable, secure, and offer high uptime, so that you don’t have to worry about maintenance ever again.\n* offers a powerful editor and lots of flexibility in creating templates for your documents that your editors can reuse and combine, so that no developers resources are required in everyday writing and updating tasks.\n* separates content from presentation, so you can reuse your content repository for any device platform your heart desires. That way, you can COPE (\"create once, publish everywhere\").\n* offers webhooks that you can use to rebuild your static site in a fully automated fashion every time your content is modified.\n\nExtracted from the article [CMS-functionality for static site generators](https://www.contentful.com/r/knowledgebase/contentful-api-cms-static-site-generators/ \"CMS-functionality for static site generators\"). Read more about the [static site generators supported by Contentful](https://www.contentful.com/developers/docs/tools/staticsitegenerators/ \"static site generators supported by Contentful\").", - "author": { - "object": true - }, - "publishDate": "2017-05-16T00:00+02:00", - "tags": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Contentful3": [ - { - "startTime": 1747344011962, - "executionIndex": 7, - "source": [ - { - "previousNode": "Contentful2" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "TestAsset", - "file": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Contentful3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.005Z", - "stoppedAt": "2025-05-15T21:20:11.962Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/72-snapshot.json b/test-workflows/snapshots/72-snapshot.json deleted file mode 100644 index c59ee837c7..0000000000 --- a/test-workflows/snapshots/72-snapshot.json +++ /dev/null @@ -1,852 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891396434, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1676891396435, - "executionTime": 24, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "directory": "/tmp", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip": [ - { - "startTime": 1676891396459, - "executionTime": 475, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "id": 328952614 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip7": [ - { - "startTime": 1676891396934, - "executionTime": 376, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "subscribed": { - "object": true - }, - "already_subscribed": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip12": [ - { - "startTime": 1676891397310, - "executionTime": 332, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "nodeqa@n8n.io", - "user_id": 392595, - "avatar_version": 1, - "is_admin": true, - "is_owner": true, - "is_guest": false, - "is_billing_admin": false, - "role": 100, - "is_bot": false, - "full_name": "nodeqa", - "timezone": "Europe/Paris", - "is_active": true, - "date_joined": "2021-02-25T14:05:26.897277+00:00", - "avatar_url": { - "object": true - }, - "delivery_email": "nodeqa@n8n.io" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip6": [ - { - "startTime": 1676891397643, - "executionTime": 516, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "uri": "https://nodeqa.zulipchat.com//user_uploads/33385/j5pTnm6OfvyVgGiNXDVJ2Lkm/n8n-logo.png" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip1": [ - { - "startTime": 1676891398160, - "executionTime": 478, - "source": [ - { - "previousNode": "Zulip" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip8": [ - { - "startTime": 1676891398638, - "executionTime": 424, - "source": [ - { - "previousNode": "Zulip7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1676891397, - "description": "testing stream from n8n", - "first_message_id": 328952616, - "history_public_to_subscribers": true, - "invite_only": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "StreamTest", - "rendered_description": "

testing stream from n8n

", - "stream_id": 371131, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1614934173, - "description": "testing stream from n8n", - "first_message_id": 228916381, - "history_public_to_subscribers": true, - "invite_only": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "UpdateStream1614934177572", - "rendered_description": "

testing stream from n8n

", - "stream_id": 279988, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1614934197, - "description": "testing stream from n8n", - "first_message_id": 228916526, - "history_public_to_subscribers": true, - "invite_only": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "UpdateStream1614934202284", - "rendered_description": "

testing stream from n8n

", - "stream_id": 280046, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1614261926, - "description": "Everyone is added to this stream by default. Welcome! :octopus:", - "first_message_id": 227771365, - "history_public_to_subscribers": true, - "invite_only": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "general", - "rendered_description": "

Everyone is added to this stream by default. Welcome! :octopus:

", - "stream_id": 278952, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1614262281, - "description": "testing stream", - "first_message_id": 227772218, - "history_public_to_subscribers": true, - "invite_only": true, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "test", - "rendered_description": "

testing stream

", - "stream_id": 278954, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip10": [ - { - "startTime": 1676891399062, - "executionTime": 434, - "source": [ - { - "previousNode": "Zulip7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "audible_notifications": { - "object": true - }, - "can_remove_subscribers_group_id": 35057, - "color": "#c2c2c2", - "date_created": 1676891397, - "description": "testing stream from n8n", - "desktop_notifications": { - "object": true - }, - "email_address": "streamtest.84bda58354e62c8acafb42fa7db1a3be.show-sender@streams.zulipchat.com", - "email_notifications": { - "object": true - }, - "first_message_id": 328952616, - "history_public_to_subscribers": true, - "in_home_view": true, - "invite_only": false, - "is_announcement_only": false, - "is_muted": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "StreamTest", - "pin_to_top": false, - "push_notifications": { - "object": true - }, - "rendered_description": "

testing stream from n8n

", - "stream_id": 371131, - "stream_post_policy": 1, - "stream_weekly_traffic": { - "object": true - }, - "wildcard_mentions_notify": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "audible_notifications": { - "object": true - }, - "can_remove_subscribers_group_id": 35057, - "color": "#b0a5fd", - "date_created": 1614934173, - "description": "testing stream from n8n", - "desktop_notifications": { - "object": true - }, - "email_address": "updatestream1614934177572.0a60ffc95fcff95cdd638cbdb200b767.show-sender@streams.zulipchat.com", - "email_notifications": { - "object": true - }, - "first_message_id": 228916381, - "history_public_to_subscribers": true, - "in_home_view": true, - "invite_only": false, - "is_announcement_only": false, - "is_muted": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "UpdateStream1614934177572", - "pin_to_top": false, - "push_notifications": { - "object": true - }, - "rendered_description": "

testing stream from n8n

", - "stream_id": 279988, - "stream_post_policy": 1, - "stream_weekly_traffic": 0, - "wildcard_mentions_notify": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "audible_notifications": { - "object": true - }, - "can_remove_subscribers_group_id": 35057, - "color": "#addfe5", - "date_created": 1614934197, - "description": "testing stream from n8n", - "desktop_notifications": { - "object": true - }, - "email_address": "updatestream1614934202284.62a670187b37f80ce229645999a1a786.show-sender@streams.zulipchat.com", - "email_notifications": { - "object": true - }, - "first_message_id": 228916526, - "history_public_to_subscribers": true, - "in_home_view": true, - "invite_only": false, - "is_announcement_only": false, - "is_muted": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "UpdateStream1614934202284", - "pin_to_top": false, - "push_notifications": { - "object": true - }, - "rendered_description": "

testing stream from n8n

", - "stream_id": 280046, - "stream_post_policy": 1, - "stream_weekly_traffic": 0, - "wildcard_mentions_notify": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "audible_notifications": { - "object": true - }, - "can_remove_subscribers_group_id": 35057, - "color": "#a6c7e5", - "date_created": 1614262281, - "description": "testing stream", - "desktop_notifications": { - "object": true - }, - "email_address": "test.fce82544c99d40f13a35dc8706e86faa.show-sender@streams.zulipchat.com", - "email_notifications": { - "object": true - }, - "first_message_id": 227772218, - "history_public_to_subscribers": true, - "in_home_view": true, - "invite_only": true, - "is_announcement_only": false, - "is_muted": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "test", - "pin_to_top": false, - "push_notifications": { - "object": true - }, - "rendered_description": "

testing stream

", - "stream_id": 278954, - "stream_post_policy": 1, - "stream_weekly_traffic": 0, - "wildcard_mentions_notify": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip13": [ - { - "startTime": 1676891399496, - "executionTime": 420, - "source": [ - { - "previousNode": "Zulip12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "user": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip2": [ - { - "startTime": 1676891399916, - "executionTime": 447, - "source": [ - { - "previousNode": "Zulip1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "id": 328952630 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1676891400363, - "executionTime": 9, - "source": [ - { - "previousNode": "Zulip8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "can_remove_subscribers_group_id": 35057, - "date_created": 1676891397, - "description": "testing stream from n8n", - "first_message_id": 328952616, - "history_public_to_subscribers": true, - "invite_only": false, - "is_web_public": false, - "message_retention_days": { - "object": true - }, - "name": "StreamTest", - "rendered_description": "

testing stream from n8n

", - "stream_id": 371131, - "stream_post_policy": 1, - "is_announcement_only": false - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Zulip14": [ - { - "startTime": 1676891400373, - "executionTime": 0, - "source": [ - { - "previousNode": "Zulip13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "user": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip3": [ - { - "startTime": 1676891400373, - "executionTime": 435, - "source": [ - { - "previousNode": "Zulip2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "message": { - "object": true - }, - "raw_content": "Update content 1676891398165" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip9": [ - { - "startTime": 1676891400808, - "executionTime": 375, - "source": [ - { - "previousNode": "Function" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip15": [ - { - "startTime": 1676891401184, - "executionTime": 0, - "source": [ - { - "previousNode": "Zulip14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "", - "user": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip4": [ - { - "startTime": 1676891401184, - "executionTime": 374, - "source": [ - { - "previousNode": "Zulip3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip11": [ - { - "startTime": 1676891401558, - "executionTime": 431, - "source": [ - { - "previousNode": "Zulip9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Zulip5": [ - { - "startTime": 1676891401989, - "executionTime": 483, - "source": [ - { - "previousNode": "Zulip4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "result": "success", - "msg": "" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Zulip5" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:56.431Z", - "stoppedAt": "2023-02-20T11:10:02.472Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/73-snapshot.json b/test-workflows/snapshots/73-snapshot.json deleted file mode 100644 index 79b73c686e..0000000000 --- a/test-workflows/snapshots/73-snapshot.json +++ /dev/null @@ -1,965 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1678116858529, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube13": [ - { - "startTime": 1678116858530, - "executionTime": 703, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube18": [ - { - "startTime": 1678116859234, - "executionTime": 131, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#videoCategory", - "etag": "grPOPYEUUZN3ltuDUGEWlrTR90U", - "id": "1", - "snippet": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube4": [ - { - "startTime": 1678116859365, - "executionTime": 729, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlist", - "etag": "cZxvObsnYlgTQ5KURoRfgGtFZpA", - "id": "PLSug7srxxXFf2x85_vM2dVCsrTnKaCbE0", - "snippet": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube1": [ - { - "startTime": 1678116860094, - "executionTime": 176, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "w0TrUr6fWdqCBhWBjQVLPE3AAp0", - "id": "UCiHVTkJtWSdc9N3h0nUGWLg", - "snippet": { - "object": true - }, - "contentDetails": { - "object": true - }, - "statistics": { - "object": true - }, - "topicDetails": { - "object": true - }, - "status": { - "object": true - }, - "brandingSettings": { - "object": true - }, - "contentOwnerDetails": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second4": [ - { - "startTime": 1678116860270, - "executionTime": 513, - "source": [ - { - "previousNode": "YouTube13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second1": [ - { - "startTime": 1678116860783, - "executionTime": 504, - "source": [ - { - "previousNode": "YouTube4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlist", - "etag": "cZxvObsnYlgTQ5KURoRfgGtFZpA", - "id": "PLSug7srxxXFf2x85_vM2dVCsrTnKaCbE0", - "snippet": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Sleep 0.5 second": [ - { - "startTime": 1678116861287, - "executionTime": 504, - "source": [ - { - "previousNode": "YouTube1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "w0TrUr6fWdqCBhWBjQVLPE3AAp0", - "id": "UCiHVTkJtWSdc9N3h0nUGWLg", - "snippet": { - "object": true - }, - "contentDetails": { - "object": true - }, - "statistics": { - "object": true - }, - "topicDetails": { - "object": true - }, - "status": { - "object": true - }, - "brandingSettings": { - "object": true - }, - "contentOwnerDetails": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "YouTube14": [ - { - "startTime": 1678116861791, - "executionTime": 163, - "source": [ - { - "previousNode": "Sleep 0.5 second4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube5": [ - { - "startTime": 1678116861954, - "executionTime": 534, - "source": [ - { - "previousNode": "Sleep 0.5 second1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlist", - "etag": "x1ifiVNV20WdssD7ZZvcIylYEI8", - "id": "PLSug7srxxXFf2x85_vM2dVCsrTnKaCbE0", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube": [ - { - "startTime": 1678116862488, - "executionTime": 263, - "source": [ - { - "previousNode": "Sleep 0.5 second" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "fCuCBJVzK5ufWTV-IWDIgBqRptA", - "id": "UCkdph8FDLpq2UD2i_OlwErA", - "snippet": { - "object": true - }, - "contentDetails": { - "object": true - }, - "statistics": { - "object": true - }, - "status": { - "object": true - }, - "brandingSettings": { - "object": true - }, - "contentOwnerDetails": { - "object": true - }, - "localizations": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "HTTP Request": [ - { - "startTime": 1678116862752, - "executionTime": 0, - "source": [ - { - "previousNode": "YouTube14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube9": [ - { - "startTime": 1678116862752, - "executionTime": 491, - "source": [ - { - "previousNode": "YouTube5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlistItem", - "etag": "51b2-FnJVTOoejrxHMjUub8dQmc", - "id": "UExTdWc3c3J4eFhGZjJ4ODVfdk0yZFZDc3JUbkthQ2JFMC41NkI0NEY2RDEwNTU3Q0M2", - "snippet": { - "object": true - }, - "contentDetails": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube2": [ - { - "startTime": 1678116863243, - "executionTime": 1225, - "source": [ - { - "previousNode": "YouTube" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "FJbGUwCbpYOnGAel0jE_WyNVJqk", - "id": "UCkdph8FDLpq2UD2i_OlwErA", - "brandingSettings": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second5": [ - { - "startTime": 1678116864468, - "executionTime": 1, - "source": [ - { - "previousNode": "HTTP Request" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second2": [ - { - "startTime": 1678116864469, - "executionTime": 504, - "source": [ - { - "previousNode": "YouTube9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlistItem", - "etag": "51b2-FnJVTOoejrxHMjUub8dQmc", - "id": "UExTdWc3c3J4eFhGZjJ4ODVfdk0yZFZDc3JUbkthQ2JFMC41NkI0NEY2RDEwNTU3Q0M2", - "snippet": { - "object": true - }, - "contentDetails": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1678116864974, - "executionTime": 0, - "source": [ - { - "previousNode": "YouTube2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "FJbGUwCbpYOnGAel0jE_WyNVJqk", - "id": "UCkdph8FDLpq2UD2i_OlwErA", - "brandingSettings": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube15": [ - { - "startTime": 1678116864974, - "executionTime": 0, - "source": [ - { - "previousNode": "Sleep 0.5 second5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube10": [ - { - "startTime": 1678116864974, - "executionTime": 247, - "source": [ - { - "previousNode": "Sleep 0.5 second2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlistItem", - "etag": "vfNj2T80rWmuEtn3bdR9w-gJxKM", - "id": "UExTdWc3c3J4eFhGZjJ4ODVfdk0yZFZDc3JUbkthQ2JFMC41NkI0NEY2RDEwNTU3Q0M2", - "contentDetails": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube3": [ - { - "startTime": 1678116865221, - "executionTime": 0, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#channel", - "etag": "FJbGUwCbpYOnGAel0jE_WyNVJqk", - "id": "UCkdph8FDLpq2UD2i_OlwErA", - "brandingSettings": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube16": [ - { - "startTime": 1678116865221, - "executionTime": 0, - "source": [ - { - "previousNode": "YouTube15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube11": [ - { - "startTime": 1678116865221, - "executionTime": 244, - "source": [ - { - "previousNode": "YouTube10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlistItem", - "etag": "vfNj2T80rWmuEtn3bdR9w-gJxKM", - "id": "UExTdWc3c3J4eFhGZjJ4ODVfdk0yZFZDc3JUbkthQ2JFMC41NkI0NEY2RDEwNTU3Q0M2", - "contentDetails": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second6": [ - { - "startTime": 1678116865465, - "executionTime": 0, - "source": [ - { - "previousNode": "YouTube16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Sleep 0.5 second3": [ - { - "startTime": 1678116865465, - "executionTime": 503, - "source": [ - { - "previousNode": "YouTube11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlistItem", - "etag": "vfNj2T80rWmuEtn3bdR9w-gJxKM", - "id": "UExTdWc3c3J4eFhGZjJ4ODVfdk0yZFZDc3JUbkthQ2JFMC41NkI0NEY2RDEwNTU3Q0M2", - "contentDetails": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "YouTube17": [ - { - "startTime": 1678116865969, - "executionTime": 0, - "source": [ - { - "previousNode": "Sleep 0.5 second6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#video", - "etag": "CU762SGxLJSQ9Zoa5a5lMfVPIRY", - "id": "sJO3b0WXm8I", - "snippet": { - "object": true - }, - "status": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube12": [ - { - "startTime": 1678116865969, - "executionTime": 589, - "source": [ - { - "previousNode": "Sleep 0.5 second3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube6": [ - { - "startTime": 1678116866558, - "executionTime": 290, - "source": [ - { - "previousNode": "YouTube12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "kind": "youtube#playlist", - "etag": "PovpXjHyDmQRrWiHF2py5vCN0sE", - "id": "PLSug7srxxXFf2x85_vM2dVCsrTnKaCbE0", - "snippet": { - "object": true - }, - "status": { - "object": true - }, - "contentDetails": { - "object": true - }, - "player": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "YouTube7": [ - { - "startTime": 1678116866849, - "executionTime": 480, - "source": [ - { - "previousNode": "YouTube6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "YouTube7" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-03-06T15:34:18.525Z", - "stoppedAt": "2023-03-06T15:34:27.329Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/78-snapshot.json b/test-workflows/snapshots/78-snapshot.json deleted file mode 100644 index 2a66e466b6..0000000000 --- a/test-workflows/snapshots/78-snapshot.json +++ /dev/null @@ -1,879 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1676891397882, - "executionTime": 1, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "date": "2019-05-05", - "explanation": "This is not a solar eclipse. Pictured here is a busy vista of moons and rings taken at Saturn. The large circular object in the center of the image is Titan, the largest moon of Saturn and one of the most intriguing objects in the entire Solar System. The dark spot in the center is the main solid part of the moon. The bright surrounding ring is atmospheric haze above Titan, gas that is scattering sunlight to a camera operating onboard the robotic Cassini spacecraft. Cutting horizontally across the image are the rings of Saturn, seen nearly edge on. At the lower right of Titan is Enceladus, a small moon of Saturn. Since the image was taken pointing nearly at the Sun, the surfaces of Titan and Enceladus appear in silhouette, and the rings of Saturn appear similar to a photographic negative. Now if you look really really closely at Enceladus, you can see a hint of icy jets shooting out toward the bottom of the image. It is these jets that inspired future proposals to land on Enceladus, burrow into the ice, and search for signs of extraterrestrial life.", - "hdurl": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg", - "media_type": "image", - "service_version": "v1", - "title": "Saturn, Titan, Rings, and Haze", - "url": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA": [ - { - "startTime": 1676891397883, - "executionTime": 1202, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "links": { - "object": true - }, - "id": "2000433", - "neo_reference_id": "2000433", - "name": "433 Eros (A898 PA)", - "name_limited": "Eros", - "designation": "433", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2000433", - "absolute_magnitude_h": 10.31, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "orbital_data": { - "object": true - }, - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA3": [ - { - "startTime": 1676891399087, - "executionTime": 4243, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "activityID": "2023-01-21T02:00:00-CME-001", - "catalog": "M2M_CATALOG", - "startTime": "2023-01-21T02:00Z", - "sourceLocation": "", - "activeRegionNum": { - "object": true - }, - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/CME/23401/-1", - "note": "Faint CME SSW in SOHO LASCO C2/C3 and STEREO A COR2, another faint outflow following the 2023-01-20 mid-day filament eruptions/CMEs. No definitive source has been found.", - "instruments": [ - "json array" - ], - "cmeAnalyses": [ - "json array" - ], - "linkedEvents": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA7": [ - { - "startTime": 1676891403333, - "executionTime": 934, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA5": [ - { - "startTime": 1676891404267, - "executionTime": 1473, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "flrID": "2023-01-22T12:12:00-FLR-001", - "instruments": [ - "json array" - ], - "beginTime": "2023-01-22T12:12Z", - "peakTime": "2023-01-22T12:26Z", - "endTime": "2023-01-22T12:34Z", - "classType": "M1.1", - "sourceLocation": "S20W40", - "activeRegionNum": 13190, - "linkedEvents": { - "object": true - }, - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/FLR/23406/-1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA8": [ - { - "startTime": 1676891405743, - "executionTime": 999, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "rbeID": "2023-02-08T12:45:00-RBE-001", - "eventTime": "2023-02-08T12:45Z", - "instruments": [ - "json array" - ], - "linkedEvents": [ - "json array" - ], - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/RBE/23643/-1" - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "rbeID": "2023-02-12T14:00:00-RBE-001", - "eventTime": "2023-02-12T14:00Z", - "instruments": [ - "json array" - ], - "linkedEvents": [ - "json array" - ], - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/RBE/23729/-1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA6": [ - { - "startTime": 1676891406742, - "executionTime": 1003, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA4": [ - { - "startTime": 1676891407745, - "executionTime": 1266, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "catalog": "M2M_CATALOG", - "activityID": "2023-01-25T08:30:00-IPS-001", - "location": "STEREO A", - "eventTime": "2023-01-25T08:30Z", - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/IPS/23450/-1", - "instruments": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA9": [ - { - "startTime": 1676891409011, - "executionTime": 1063, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "hssID": "2023-01-30T19:45:00-HSS-001", - "eventTime": "2023-01-30T19:45Z", - "instruments": [ - "json array" - ], - "linkedEvents": { - "object": true - }, - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/HSS/23526/-1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA10": [ - { - "startTime": 1676891410074, - "executionTime": 1889, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "simulationID": "WSA-ENLIL/23411/1", - "modelCompletionTime": "2023-01-22T15:04Z", - "au": 2, - "cmeInputs": [ - "json array" - ], - "estimatedShockArrivalTime": { - "object": true - }, - "estimatedDuration": { - "object": true - }, - "rmin_re": { - "object": true - }, - "kp_18": { - "object": true - }, - "kp_90": { - "object": true - }, - "kp_135": { - "object": true - }, - "kp_180": { - "object": true - }, - "isEarthGB": false, - "impactList": { - "object": true - }, - "link": "https://webtools.ccmc.gsfc.nasa.gov/DONKI/view/WSA-ENLIL/23411/-1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA11": [ - { - "startTime": 1676891411965, - "executionTime": 2177, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "messageType": "CME", - "messageID": "20230219-AL-003", - "messageURL": "https://kauai.ccmc.gsfc.nasa.gov/DONKI/view/Alert/23823/1", - "messageIssueTime": "2023-02-19T19:34Z", - "messageBody": "## Community Coordinated Modeling Center Database Of Notifications, Knowledge, Information ( CCMC DONKI )\n## Message Type: Space Weather Notification - CME (Juno, Dawn, Parker Solar Probe)\n##\n## Message Issue Date: 2023-02-19T19:34:54Z\n## Message ID: 20230219-AL-003\n##\n## Disclaimer: NOAA's Space Weather Prediction Center is the United States Government official source for space weather forecasts. This \"Experimental Research Information\" consists of preliminary NASA research products and should be interpreted and used accordingly.\n\n\n## Summary:\n\nC-type CME detected by SOHO. \n\nStart time of the event: 2023-02-18T02:48Z.\n\nEstimated speed: ~992 km/s.\n\nEstimated opening half-angle: 45 deg.\n\nDirection (lon./lat.): -161/1 in Heliocentric Earth Equatorial coordinates.\n\nActivity ID: 2023-02-18T02:48:00-CME-001\n\nBased on preliminary analysis by the Moon to Mars Space Weather Analysis Office and heliospheric modeling carried out at NASA Community Coordinated Modeling Center, it is estimated that the CME may impact Juno (minor impact) and Parker Solar Probe. The leading edge of the CME will reach Juno at 2023-03-04T00:00Z, and Parker Solar Probe at 2023-02-19T06:34Z (plus minus 7 hours). \n\nLinks to the movies of the modeled event (includes CME: 2023-02-18T02:48:00-CME-001):\n\n(a) 2 AU outer boundary\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_2.0_anim.tim-den.gif\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_2.0_anim.tim-vel.gif\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_2.0_ENLIL_CONE_timeline.gif\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_2.0_ENLIL_CONE_PSP_timeline.gif\n\n(b) 5.5 AU outer boundary\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_5.5_anim.tim-den.gif\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_5.5_anim.tim-vel.gif\nhttp://iswa.gsfc.nasa.gov/downloads/20230218_063200_5.5_ENLIL_CONE_Juno_timeline.gif\n\n\n## Notes: \n\n\nSCORE CME typification system:\nS-type: CMEs with speeds less than 500 km/s\nC-type: Common 500-999 km/s\nO-type: Occasional 1000-1999 km/s\nR-type: Rare 2000-2999 km/s\nER-type: Extremely Rare >3000 km/s\n\n\n" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA12": [ - { - "startTime": 1676891414154, - "executionTime": 6091, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "date": "2019-05-05", - "explanation": "This is not a solar eclipse. Pictured here is a busy vista of moons and rings taken at Saturn. The large circular object in the center of the image is Titan, the largest moon of Saturn and one of the most intriguing objects in the entire Solar System. The dark spot in the center is the main solid part of the moon. The bright surrounding ring is atmospheric haze above Titan, gas that is scattering sunlight to a camera operating onboard the robotic Cassini spacecraft. Cutting horizontally across the image are the rings of Saturn, seen nearly edge on. At the lower right of Titan is Enceladus, a small moon of Saturn. Since the image was taken pointing nearly at the Sun, the surfaces of Titan and Enceladus appear in silhouette, and the rings of Saturn appear similar to a photographic negative. Now if you look really really closely at Enceladus, you can see a hint of icy jets shooting out toward the bottom of the image. It is these jets that inspired future proposals to land on Enceladus, burrow into the ice, and search for signs of extraterrestrial life.", - "hdurl": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg", - "media_type": "image", - "service_version": "v1", - "title": "Saturn, Titan, Rings, and Haze", - "url": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg" - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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NNM7bfRUM309evr9mbh5//U0zfROGz3VTO800zvN9E4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRUw1tTho9NWZ6Zwz0WjK900zvNNM7zfRUM73TTO/0HXea6U9gf2/3OA72DmZKo6fGTO8sA8AKzfROM73TTO800w8ePXl9hv7X//6/0zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FRDm5NGT42Z3hkDvZZM7zTTO830Ths91UzvNNMf3/bmzl+tZnqnjZ5Ko6fGTO8sA8AKzfROM/37bly/fYZuTtRGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM76TRU2Omd8ZAryXTO830TjO900Z/HFsbmydz/rcb0zSdr4dmeqqZ3kmjp8ZM7/zNDwCPvv7+zH1+7c40zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO+k0VNjpnfGQK8l0zvN9B+38dnmibWbr41meqfpfD200VPN9E4aPTVmeufnAeDOo9ef5O6Xz6Zpo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd9LoqTHTU2Oj/wWb5zdP79xvz0/TTO+0m6+NZnqn6Xw9tNFTzfROGj01ZnpnGQBWaKZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea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eqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ/jTu3n36EV89ejVNM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROA6LTTO800ztt9FTT+Xpopnf6cK6NZnqnmd5JoNfGTO8sA8Comd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppj+xo+vPPu7gwp2ZmumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnAdFppnea6Z02eqrpfD000zt9ONdGM73TTO8k0GtjpneWAWDUTO+00VPN9E4zvdNM77TRU830TjO900zvtNFTzfROM/0J3P/qzXG8ePMv0zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91UzvNCA6zfROMz3VTO80na+HZnqnD+faaKZ3mumdBHptzPTOMgCMmumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTb6T3X51vef4PqTaZrpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnAdFppnfa6KlmeqfpfD000zt9ONdGM73TTO8k0GtjpneWAWDURk810zvN9E4zvdNM77TRU830TjP98f3X//F/PsnLf/zv04yBXkumd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnAdFppnfa6KlmeqfpfD0001N9PtdDM73TTO8k0FvnP9ucbBkAftZGTzXTO830TjO900xPNdMfx4s3/3wCf/kv/3OaZnqnmd4ZA72WTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830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Znqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTb647h27d7JXL50a5pmeqeZ3mmjp5rpnWZ6J42eGhs91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO90+ZLNdM7zfROM73TU6Wa6Z1memcZAEZt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9B9x9ejmaVw5ujVNGz3VTO800zvN9E4bPdVM7zTTO2n01NjoqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnQZfqpneaaZ3mumdnirVTO800zvLADBqo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZvqVbj94c3r3vvxmmmZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meieNnhobPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdPgSzXTO830TjO901OlmumdZnpnGQBWaKZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmr6Ob35yJB0//OFMzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800ztp9NTY6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z0GX6qZ3mmmd5rpnZ4q1UzvNNM7ywCwQjO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk8107/vwuUHZ+ji0aNpmumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdNHpqbPRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROgy/VTO800zvN9E5PlWqmd5rpnWUAWKGZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5n+nWu3Hp+56188naaZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnTR6amz0VDO900zvNNM7bfRUM73T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mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumd1kOqmd5ppnea6Z02eqqZ3mmWdZrpnb4IVDP94x0dHn7W5cX5akajp5rpqfb6xT1p0L+vZnqnmd5ppnfa6Klm+p1+fhof5s2bb1fTTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VgOg00zvN9E4zvdNGTzXTO830TjP9Y/324EsOnx6uqZneaaZ3mumdNnqqvX5xTxr076uZ3mmmd5rpd+qbcHcnx6eraaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ/mHOn5/t1JbtNNM7HZ1qcnSa6Z1meqeNnmqvX9yTBv37aqa/xatXbx9jHthJfaypZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmv6+zk5O7Ozk6Xk0zvdOW7TTTOx2danJ0mumdZnqnjZ5qr1/ck9c37x+pmd5ppnf6WFPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830d3f+/Pm9XK6ojZ5qpnea6Z22bKeZ3unoVJOj00zvNNM7bfRUe/3itgOAL+pjTTXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Thv9nZydP8zh06PVNNM7zfROGz3VTO800ztt2U4zPdUf4DQ5Os30TjO900ZPtdcvbjsA+KI+1lQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TRk810zvN9E4z/e3Ozi4e7PLyejVt9FQzvdNM7zTTO230VDO900zvtGU7bfRUf4DT5Og00zvN9E4bPdVev7jtAOCL+lhTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91Uz/Wd98+9PjXV29Xk0zvdNMTzXTO830TjO900zvtNFTzfROM73Tlu200VP9AU6To9NM7zTTU830Tnv94rYDgC/qY0010zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNPXx+/+bhEfvvnzmprpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mnLdtroqf4Ap8nRaaZ32uipZnqnvX5x2wHAbfpkO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTP9rb7/+cUHf/u7vV9NM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM77RlO230VH+A0+ToNNM7bfRUM73TXr+47QDgNn2ynWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZvpffPzuH4SX13+zmmZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32rKdNnqqP8BpcnSa6Z02eqqZ3mmvX9x2AHCbPtlOM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO8005+dniNv3n23mjZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnLZtqpnc6utPk6DTTO230VDO9016/uO0A4DZ9sp1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z0R6N+8/YFqlHea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neacummumdju40OTrN9E4bPdVM77TXL247ALhNn2ynmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3PtX5b3/4J+3l9e9W00ZPNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77RlU830Tkd3mhydZnqqmd5ppnfa6xe3HQDcpk+200zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4bPfXy9Y/f/e6ndfzhb//raprpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mnLpprpnY7uNDk6bfRUM73TTO+01y/uL+wA4NW6ZwB9sp1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neefX629W8fPVhTc30TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Tls21UzvdHSnydFpo6ea6Z1meqe9fnHbAcBt+mQ7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00WPvV3N9vZ5meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9qyqWZ6p6M7TY5OGz3VTO800zvt9YvbDgBu0yfbaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mukXd3Z6+ovzda80empmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6py2baqZ3OrrT5Oi00VPN9E4zvdNev7jtAOA2fbKdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmukXdHp8+v85Wc+nOr+CWejxlUZPzUzvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE81ZzvN9E5Hd5ocnTZ6qpneaaZ32usXtx0A3KZPttNM77TRU830TjO900zvNNNTzfROM73TTO800y/l+PB4eraq2eipZHqnmd6ZhR5fafTUzPROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FRzttNM73R0p8nRaaOnmumdZnqnvX5x2wHAbfpkO830Ths91UzvNNM7zfROGz3VTO800z/e1Yubzzo9fr6a2eipNHpqNnoqmd5ppndmocdXGj01M73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdWc7TTTOx3daXKkmumdZnqnmd5pr1/cAgcAr9c9A2imd/pYO830Ths91UzvNNM7zfROG/0jPb/4cItXrz6uppneaaZ3ZqPXkumd2eipZHqnmd6ZhR5fafTUzPROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FRzttNM73R0p8mRaqZ3mumdk6OjFxcX67j8+fOCbQcAt+lj7TTTO230VDO900z/YCfHZ7c7e/56NW30VDO900zvNNM7M9BryfTObPRUMr3TTO/MQo+vNHpqZnqnmd5po6ea6Z1meqeZ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TO/MQK8l0zvN9M6nOv/znKW9//BxVcn0TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths9lUZPzVzmNNM77eZ7o5neaTrfD230VDO902S/rO0AYIdmemc2eiqZ3mmjp5rpnWZ6p5neaaanmumdZnpnNnoqmd6ZgV47OT05OlpHlxdQMr0zA72WTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VNp9NTMZU4zvdNuvjea6Z25/dwXbfRUM73TZL+s7QBgh2Z6ZzZ6KpneaaOnmumdZnqnmd5po6ea6Z1memc2eurZ0WoOvjpYUzO90+UFlEzvzECvJdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUGj01c5nTTO+0m++NZnpnbj/3SDO900zvNNkv6y/vAOBs3TOAZnpnNnoqmd5po6ea6Z1meqeZ3mmjp5rphcuLVz87OjxezdPfHqymmZ5qpnea6Z2uLaBkemcGei2Z3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp9LoqdnKnGZ6p918bzTTO3P7uUea6Z1meqfJflnbAcAOzfTObPRUMr3TRk810zvN9E4z/eKOj1/+4tWrb9f0S5pfRzO900zvtNFTzfROM73TtQWUTO/MQK8l0zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4aPTVbmdNM77Sb741memduP/dIM73TTP+zd2/fCS8urqjtAGCHZnpnNnoqmZ5qpnea6Rf07PDZrx0dn6/mU51fQRs91UzvNNM7zfROGz3VTO800ztdW0DJ9NRs9FQyvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4bPdVM76TRU7OVOc30Trv5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M73TTO+00VPN9E4zvdMBI805TjXTO830TjO900zvzECvJdM7zfROM73TRk810zvN9MfyFz/82fDS86+s5slAr7XRU830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths91ay/u20D4Aia6Z1meqeVzWmmp2ajp2YYhZrpnWZ6p42eaqZ3mumdDhhpznGqmd5ppnea6Z1memcGei2Z3mmmd5rpnTb6o3jvvXc/1N/84peraaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6Klm/d1tGwBH0EzvNNM7rWxOGz01Gz01wyjUTO800ztt9FQzvdNM73TASHOOU830TjO900zvNNNTs9FTyfROM/2Bumh87MUXnltNGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO90w8tp42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd5r1d7dtABxBM73TTO+0sjlt9NRs9NQMo1AzvdNM77TRU830TjO90wEjzTlONdM7zfROM73TRk/NRn+A65dXT9ebCGWN5zTTO230VDO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4/tJw2eqqZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5p1t/dtgFwBM30TjO908rmtNFTs9FTM4xCzfROMz3VTO800zvN9E4HjDTnODUjrNRM7zTTL3N1ef1j3bl9e03N9E5vIpQ1ntNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zv90KKa6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnWX93v5sbAA810zvN9E4zvdPK5rTRU7PRUzOMQs30Ths91UzvNNM7zfROB4w05zg1I+z+Tq+d7erkfDXN9E4bPdVM7/R2Q1ngOW30VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdMPLaqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea9Xe3bQAcQTO900zvtLI5bfTUbPTUDKNQM73TRk810zvN9E4zvdMBs5fL88u9nD88ubXMRk8l0zvN9E4bPdVM78xGT2WB57TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4/tKhmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5p1t/dtgFwBM30TjO900xPNdM7s9FTCalOM73TRk810zvN9Du6ef1qXzcuL1fTRk810zuz0VPJ9E4zvdNGTzXTO7PRU1ngOW30VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdMPLaqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea9Xe3bQAcQTO900zvtNFTzfTObPRUMr3TTO+00e/iYrnz1TTTO830Ths91UzvzEZPJdM7zfRUM73TTO/MRk9lgee00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROP7SoZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpn+KL741ufrrS/dW2zbADiCZnqnmd5po6ea6Z3Z6Klk+qc7Pz09wNlqEui1memdZnqnmd5po6ea6Z3Z6KlkeqeNnmqmd5rpndnoqSzwnDZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3umHFtVM7zTTO830Ths91UzvNNM7zfROM/2BXvnMq0/x3lfeW00zvdOsv7ttA+AImumdZnqnjZ5qpn+KhO99zZwt9ehOjw6l0VMz0zvN9E4zvdNGTzXTO7PRU8n0Ths91UzvNNM7s9FTWeA5bfRUM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjM91W8tp5neaaZ3mumdNnqqmd5ppl/m7qtvfazXXv3catroqWZ6p5neadbf3XobALfX3QNopnea6Z1m+o9y6/qNAzX4Ys3ZTo/u9OhOjw6l0VMz0zvN9E4zvdNGTzXTO7PRU8n0Ths91UzvNNM7s9FTWeBRzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830Ths91Q8tp5neaaZ3mumdNvoF/ugPv7mjb37wJ6tppnea6Z02eqqZ3mmmd5r1d/evewMg0XyZ87Pz1TTTOw2+WHO206M7PbrTo0Np9NTM9E4zvdNMTzXTO830zmz0VDK900ZPNdM7zfTObPRUFnhUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZP9UPLaaZ3mul398rLL+3lnXfur6aNnmqmd5rpnWZ6p42eaqZ3mumdZv3dfcwGwHPP3jmiq4uL1TTTO830TjO90+CLNWc7PbrTozs9OpRGT81M7zTTO230VDO900zvzEZPJdM7bfRUM73TTO/MRk9lgUc10zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUP7Q+1tX55TI3b95YTTO900xPNdM7zfROM73TTO+00VPN9E4zvdOsv7tPNNM7zfROM73TTO8001NtvlJzttOjOz2606NDafTUzPROM73TRk810zvN9M5s9FQyvdNGTzXTO830zmz0VFaGVDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4z/dP1w2x3VxfrSqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p1l/d9sGwBE00ztt9FSbr9Sc7fToTo/u9OhQGj01M73TTO+00VPN9E4zvTMbPZVMTzXTO830Ttd4zmz0VBo91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TRk810zvN9B/qy29943C3rt9ZTT+0nBnotWR6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5r1d7dtABxBM73TRk+1+UrN2U6P7vToVP8AJY2empneaaZ32uipZnqnmd6ZjZ5Ko6ea6Z1meqdrPGc2eiqNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmZ5q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00ZPNdM7zfROM73TTO+00VPN9E4zvdOyv6F5AFhGM73TRk/t7oyZ3mmmd/omOu3LThs91Zzt9Jd1+tOdBHptzPROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO80059351d+1bJe89rXrqmZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mnZ39A8ACyjmd5po6d2d8ZM7zTTO30TnfZlqpneac52+ps6/elOAr02Znqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmf6Dj3wL8pY3vm01zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO+07G/oimuvvqqZ3mmmd9phnWZ6p42e2t0ZM73TTO/0TXTal6lmeqc52+lv6vSnOwn02pjpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3hka/d1vuMe5//5719RM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvtOxvaB4AltFM77TRU7s7Y6Z3mumdvolO+zLVTO80Zzv9TZ3+dCqNnhozvdNM7zTTO230VDO900zvNNM7bfRUM71zvs6/9tVfqX3dPW9cTTO900ZPNdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zst+xuaB4BlNNNTzfTO7s6Y6Z1meqdvotO+TDXTO23ZTn9Tpz+dSqOnxkzvNNM7zfROGz3VTO800zvN9M65Lv/aV92zjptefHY1zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Tsv+huYBYBlt9FQzvbO7M2Z6p5ne6ZvotC9TzfROW7bT39TpT6fS6Kkx0zvN9E4zPdVM7zTTOzunTq/mpTfetJo2eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnda9jc0DwDLaKOnmumd3Z0x0zvN9E7fRKd9mWqmd9qynf6mTn86lUZPjZneaaZ32uiRkydOPaPp3Llq97rVNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7LfsbmgeAZbTRU830zu7OmOmdZnqnbyLVxOw00ztt2U5/U6c/nUqjp8ZMv7hn3qu/kBfWOdflV9NM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Tsv+huYBYBlt9FQzvbO7M2Z6p5ne6ZtItVc6zfROW7bT39TpT1/aqf1OnTy5oi/U+RXkhXXa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd1r2NzQPAMtoo6ea6Z3dnTHTO830Tt9Eqr3SaaZ30rUXc3pvb5D/Jrs1NHoqjZ5Kpnfy4XTa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmp4ay/7ZvuHcT8wCwjDZ6qpneaaZ3mumdvolUe+UiWuSfcdXe3mqa6Z02eqqZ3kmjp5LpnXxinTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neOV/nP/ODn9be+bb3rKlxfxPzALCYZnqnmd5ppnea6Y+uH4znRTO900zvNNM7bfRUM72TRk8l0zvJ9E4bPdVM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9NRtt77uG7/+ret49AP3r6aZ3mmjpxr3NzEPAItppnea6Y/izLVXX8RVp0+vpm/i1mimd5rpnWZ6p42eaqZ30uipZHonmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumRO15/2ze85e41PXTfvatppnea6Z1meqeNnmrc38Q8AGzk5InjB9o5cXI1zfROM73TN3FrNNM7zfROM73TRk810ztp9FQyvZNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTL+sF9xw5ryzt758NXe8/rbVtNFTzfROM73TTO800ztt9FTj/iauWPAAsLe7c6CTx46tJ42eaqZ3mumdZnqn3XxrNNM7zfROM73TRk810ztp9FQyvZNGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfQLuu6aF+x3w/UvXNP+QK+dTaZ3mumdNnqqmd5ppnea6Z1meqeNnmrc38QVJ0+caKZ3xkZPpdFTzfROM73TTO+0m2+NZnqnmd5ppnfa6KlmeieNnkqmd9LoqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumP7rprrn5WV5++bjVDo6fa6KlmeudsMr3TTO+00VPN9E4zvdNM7zTTU830TuP+JuYBYDHN9E4zvdNM77Sbb41meqeZ3mmmp5rpnWZ6J42eSqZ30uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjf6IdnZPXcTx4+tppnea6Z1meqqZ3mmmd84m0zvN9E4bPdVM7zTTO830Ths91UzvNO5vYqsPAMdWvQE00zvN9E4zvdNuvjWa6Z1meqeNnmqmd5rpnTR6KpneSaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaY/nJPH9w50eu+q1bTRU830TjO900zvtNFTzfROM71zNpneaaZ32uipZnqnmd5ppnfa6KlmeqdxfxPzALCYZnqnmd5ppnfazbdGM73TTO+00VPN9E4zvZNGTyXTU8n0TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zPdVMf6nufdODG7rlpa9YTTO900zvtNFTzfROM73TTO+00VPN9E4zvXM2md5ppnfa6KlmeqeZ3mmmd9roqWZ6p3F/E/MAsJhmeqeZ3mmmp5rOt0MzvdNM77TRU830TjO9k0ZPpdFTyfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830l+Sd9717cw+89eE1NdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO9czaZ3mmmp5rpnWZ6p5neaaZ32uipZnqncX8T8wCwmGZ6p5neaaOnms63QzO900zvtNFTzfROM72TRk+l0VPJ9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91Uy/ibu+5vZDeOQ9D6+mmd5po6ea6Z1meqeZ3mmmp5rpnWZ6p5neaaZ32uipZnqnmd45m0zvtNFTzfROM73TTO800ztt9FQzvdO4v4l5AFhMM73TTO+00VNN59uhmd5ppnfa6KlmeqeZ3kmjp9LoqWR6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneuTOZ3mmmd5rpD/SyW15xaDfddPNqmumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd45m0zvtNFTzfROM73TTO8001PN9E4zvdO4v4l5AFhMM73TTO+00VNN59uhmd5ppqea6Z1meqeZ3kmjp9LoqWR6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneuTOZ/iIeuPf+o7j9NXetpo2eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd45m0zvtNFTzfROM73TTO+00VPN9E4zvdO4v4m1DwB7K98AkumdZnqnmd5po6eazrdDM73TRk810zvN9E4zvZNGT6XRU8n0TjO900zvtNFTzfROM73TTO/ePwNzAACAAElEQVQ001PN9E4zvdNM7zTTO230z+Xpjz95dB985NHVNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvXM2md5po6ea6Z1meqeZ3mmjp5rpnWZ6p3F/E/MAsJhmeqeZ3mmjp5rOt0MzvdNGTzXTO830TjO9k0avJdM7yfROM73TTO+00VPN9E4zvdNM77TRU830TjO900w/uOO2O5fywP1vW00bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM71zNpneaaOnmumdZnqnmd5po6ea6Z1meqdxfxPzALCYZnqnmd5po6eazrdDM73TRk810zvN9E4zvZNAryXTO8n0TjO900zvtNFTzfROM73TTO+00VPN9Oc9/sGnlvXuBx9cTTO980AyPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO+cTaanmumdZnqnmd5ppnfa6KlmeqeZ3mnc38Q8ACymmd5ppqea6Z2m8+3QTO+00VPN9E4zvdNM7yTQa8n0TjK900zvNNM7bfRUM73TTO8005/z8EOPLO7xR59eVTK900zvNNM7D6TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9M7ZNHqqmd5ppnea6Z1meqeNnmqmd5rpncb9TcwDwGKa6Z02eqqZ3mk63w7N9E4bPdVM7zTTO830TgK9lkzvJNM7zfROMz3VTO80099y463IHbffsZpmemcM9FoyvdNM7zTTOw+k0VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfTO2TR6qpneaaZ3mumdZnqnjZ5qpnea6Z3G/U3MA8BimumdNnqqmd5pOt8OzfRUM73TTO800zvN9E4CvZZM7yTTO830zhDoX3TDLdRNL37ZaprpnWZ6p5neGQO9lkzvNNM7zfTOA2n0VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvXM2jZ5qpnea6Z1meqeZnmqmd5rpnWZ6p3F/E58/AKx8AxgbPZVM7zTTO230VDO903S+HdroqWZ6p5neaaZ3mumdBHotmd75Qp0/c+2LtRtfeOtq2uipZnqnmd5ppnea6amx0VPJ9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9M7ZNHqqmd5ppnea6Z02eqqZ3mmmd5rpncb9TcwDwGKa6Z02eqqZ3mk63w5t9FQzvdNM7zTTO830zrkun39YKn3SdZrpnWZ6p42eaqZ3mumdZnqnjZ4aGz2VTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZP9U8Mp5neaaZ3mumds2n0VDO900zvNNM7bfRUM73TTO800zuN+5uYB4DFNNM7bfRUM73TdL4d2uipZnqnmd7Z2z29mhNXnlhT/kkJ9UnXaaZ3mumdNnqqmd5ppnea6Z02emps9FQyvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VPzGcZnqnmd5ppqfOJtM7zfROM73TTO+00VPN9E4zvdNM7zTu11Mf+u7BPAAsppmeaqZ3mumdpvPt0EYvncoDobSzu5pmeqeNnso/KaE+6TrN9E4zvdNGTzXTO830TjO900ZPjY2eSqZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z384QQ10ztt9FT/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cJrpnTZ6amj0Dz50j/Oeh9+5mmZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mnfP9A8ACxpDPRaMr3TTO+k0VNjpnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd9LoqbHRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNBo45+v8qZMntFtvvXFNzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM77fsHmgeAJY2BXkumd5rpnTR6asz0Ths91UzvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROGj01Nnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnf2dvZ2Tuys48ovO76aZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5p3z/QPAAsaQz0WjK900zvpNFTY6anmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnfS6Kmx0VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800yMffuzxO173tWu6au+a1TTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtO8faB4AljQGei2Z3mmmd9LoqbHRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7afTU2OipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpl+cQ8+eN8573jg/tV8+LHHV9NGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM77fsHmgeAJY2BXkumd5rpnTR6amz0VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROGj01Nnqqmd5ppnea6Z02eqqZ3mmmd5rpnWb6ZT395Cf3e/CBd6znC3V+Bc30TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001NN/Bc3DwBLGgO9lkzvNNM7afTU2OipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z00em3M9E4zvdNM7zTTO230VDO900y/iH/8c/+ufvTv/uJqhkCvjY2eSqZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5r4L24eABY2Nnoqmd5ppnfS6Kmx0VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTOwn02pjpnWZ6p5neaaZ32uiP7rf/+e8/l3/163+8mmZ6p5neaaOnxkZPJdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU038FzcPAAsbGz2VTO800ztp9NTY6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnQR6bcz0TjO900x/FD/86Z+4iJ/98V9eTRs91UzvNNM7zfROGz01Nnoqmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eauK/uHkAWNjY6KlkeqeZ3kmj18ZM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvJNBrY6Y/nJ/4sZ8+0C/97K+vppneaaanmumdZnqnmd5ppnfa6Kmx0VPJ9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUE//FzQPAwsZGTyXTO830TgK9NmZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZvpD+Omf/MlN/OJP/eqamumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqbHRU8n0TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQT/8XNA8DCxkZPJdM7zfROAr02Znqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppt/cT/zkP7gkf//v/chqmumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneGRs9lUzvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXxX9w8ACxsbPRUMr3TTO8k0Gtjpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po9/QEx96/BC+/wc/tZpmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnfa6Klmemds9FQyvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TxH9x238AuHrdG8DY6KlkeqeZ3kmg18ZM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9Ad66okPH86TH/vIatroqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneGRs9lUzvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTxX9w8ACxsbPRUMr3TTO8k0Gtjpnea6Z1meqeNnmqmd5rpnWZ6p5meaqa/iNtv/8qjePM3vGk1zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9M7Y6KlkeqeZnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnif/i5gFgYWOjp5LpnWZ6Ko2eGjO900zvNNM7bfRUM73TTO8001/E2VtffRRffddda2qmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmp5rpnWZ6p5neaaZ32uipZnpnbPRUMr3TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO908R/cfMAsLCx0VPJ9E4bPZVGT42Z3mmmd5rpnTZ6qpn+WR2/8sTRnTnzotU00ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7Y6OnkumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnSb+i5sHgIWNjZ5Kpnfa6Kk0emrM9E4zvdNMX43mh3PqmU/+iprpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3hkbPZVM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROG/0hfG4rNg8ACxsbPZVM77TRU2n01Jjp9zt5fEl5C6FmeqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1memds9FQyvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900y/uf/zZ5+7JHPPy56fA8CJdW8AzfROMqyUTO+00Z/X/+OjO3n8xIrGTO/kLYTa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z2x0VPJ9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTb+LP/8f/PoT/8G//ZDXN9M7c87J5AFhYMuxfeNENZxZ39emrVtNGT6XRU2Omd8aPhdRGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM74yNnkqmp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpL+7LX/nqQ/u5n/5Ha2qmd5rpnWZ6Z+552RfRAeD6a69Hdk7trqaZ3mmmp5rpnTR6asz0TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvjI2eSqOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5n+2b345qN74QvOrKaZ3mmjp5rpnWZ6p5nemXtedsWJY8fOOXXy1Jqa6Z1meqeZ3mmjp5rpnTR6asz0TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvjI2eSqOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9ro68U3n1nKK87evJpmeqeZ3mmmp5rpnWZ6p5neaaZ35p6XzQPAwprpnTZ6qpneSaOnxkzvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfTO2OipNHqqmd5ppnea6Z1meqqZ3mmmd5rpz9vd2VnWNdecXk0bPdVM7zTTO830Ths91UzvNNM7zfROM70z97xsHgAW1kzvtNFTzfROGj01ZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnfGRk+l0VPN9E4zvdNM77TRU830n3eSOHXi1Gqa6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmZ6aW3///wCw8g2gmd5ppnea6Z02eqqZ3kmjp8ZM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830ztjoqTR6qpneaaZ3hkZ/5+vvcvb2Tq+pmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ6aW3/zALCwZnqnjZ5qpnfS6Kkx0ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvTM2eiqNnjpf59/10CPa+977/tU00ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPTW3/uYBYGHN9E4bPdVM76TRU2Omd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ651yaf/+737OSd713Nc30TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfTU3PqbB4CFNdNTzfROM72TRk+Nmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmR555i+0X/ul317Nkx99ajVjoNeS6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6am79zQPAwtroqWZ6p5neSaOnxkzvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830wvgHzdatmd5ppnfGQK8l0zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO2301Nz6mweAhbXRU830TjO9k0ZPjZmeaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZfll/9O///Lw//ZPPrWZukTXTO830zhjotWR6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd6ZW3/zALCwNnqqmd5ppnfS6Kmx0VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Thv9gv71v/idwWf/6E9Xsz/Qa830ztwia6Z3mumdMdBryfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800ztt9FQzvTO3/uYBYGFt9FQzvdNM76TRU2Ojp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZfxE/9zI/Vb/7GP1tNGz3VTO800zvN9M7cImumd5rpnTHQa8n0TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM70zt/7mAWBhbfRUM73TTO+k0VNjo6ea6Z1meqeZ3mmmp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6Klm+iP6wKPf9Fz++vd8eDXN9E4zvdNGTzXTO830TjO9M7fImumdZnpqbPRUMr3TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM78ytv3kAWF4zvdNM7zTTO2n01NjoqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpj+JbvvkDF/GxJ1fVTO800zvN9E4zPdVM7zTTO830TjO9M7fImumdNnpqbPRUMr3TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM78ytv3kAWF4zvdNM7zTTO2n01NjoqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ/nC+7elvP9DjH3lyNc30Ths91UzvNNM7zfROGz3VTO800zvN9E4zvTO3yJrpnTZ6amz0VDK900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO/Mrb95AFheM73TTO800ztp9NqY6Z1meqeZ3mmmd9roqWZ6p5neaaZ32ugP4Y7bX7+h9z7y8Gqa6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfmFlkzvdNGT42Nnkqmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdufU3DwDLa6Z3mumdZnongV4bM73TTO800zvN9E4bPdVM7zTTX5pXvnJzrzx782ra6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1memru6Gumd9roqbHRU8n0TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROM70zt/7mAWB5zfROM73TTO8k0Gtjpnea6Z1meqeZ3mmj39y1V197qW666cbVNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TRk/NHX3N9E4bPTU2eiqZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ35tbfPAAsr5neaaZ3mumdBHptzPROM73TTL+J/v+8iav29tbUTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU3NHXzM91UzvjI2eSqZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z259feX4gBw/bo3gGZ6p5neaaZ3Eui1MWdf3InjJw6t/2nboY2eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6Km5o6+Nnmqmd8ZGTyXTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfRHMffFtnkAWF4zvdNM7zTTX0Qr6iU5cfzUusZM7zSdb4c2eqqfGaeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42emjv62uipZnpnbPRUMr3TTO+00VPN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9Ic2fv3PzcnNA8Dymumfy0tvuvGIbnrJS1bTMOok0GtjpneazrdDGz3Vz4zTTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGT80dfW30VDO9MzZ6KpneaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaa/VN/1iU9s6M//7H+uZvzOnpu7TPbFfgA4vXfVIq46vZ5meqeZ3mkYpdLoqTHTO03n26GNnuoHxmmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ35o6+Nnqqmd4ZGz2VTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM/3mzlx/7SU5+/IvX00zvdNMT41f23Nzl8OuOH7sxHm7O3uraaOnmumdZnqnmd5pGKXS6Kkx0ztN59uhjZ7qB8Zppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd+aOvjZ6qpneGRs9lUzvtNFTzfROM73TTO8001PN9E4zvdNM7zTTb2Ln1MlDOL13ak3N9E4zvdNM77TRU+PX9tzc5bB5AFheM73TTO80jFJp9NSY6Z2m863RTO/0A+M00zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO3OLrJneaaZ3xkZPJdM7bfRUM73TTO800ztt9FQzvdNMD51aTzO900ZPNdM7zfROM73TRk+N39lzc5fDnrcDwO66N4BmeqeZ3mmmdxpGqTR6asz0Trv51mimd/qBcZrpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumduUXWTO800ztjo6eS6Z02eqqZ3mmmd5rpnTb653Lq5Mmj2zl1ajVjo6eS6Z1meqeNnmqmd5rpnWZ6p42eGr+z5+Yuh80DwPKa6Z1meqdhlEqjp8ZM77Sbb41meqcfGKeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpnemVtkzfROM70zNnoqmd5po6ea6Z1m+rrpxpcsos3XaaOnmumdsdFTeWGdZnqqmd5ppnea6Z1meqeNnhq/s+fmLofNA8DymumdZnqnYZRKo6fGTO+0m2+NZnqnHxinmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3plbZM30TjO9MzZ6KpmeaqY/7+NPfOuyvvHeN6+mmd5p83Xa6Klmemds9FReWKeNnmqmd5rpnWZ6p5neaaOnxu/subnLYfMAsLxmeqeZnmobddLoqTHTO+3mW6OZ3ukHxmmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ35hZZM73TTO+Mjf4L3vPIOxb3V5/8xJqa6Z1meqeZ3mnzddroqWZ6Z2z0VF5Yp42eaqZ3mumdZnqnmZ5qpnfG7+y5ucth8wCwvGZ6p42eaht10uipMdM77eZbo5ne6QfGaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnfmFlkz/c//3C8gjz36sdU00ztt9FQzvdNM7zTTO22+Ths91UzvjI2eygvrtNFTzfROM73TTO+00VPN9M74nT03dzlsHgCW10zvtNFTbaNOGj01Znqn3XxrNNM7/cA4zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9M627rP//Y/X1EzvNNM7zfROGz3VTO800zvN9E6bL9VM7zTTO2Ojp/KqOm30VDO900zvNNM7bfRUM70zPiLMzV0OmweA5TXTO230VNuok0ZPjZneaTffGs30Tj8wTjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfTOdqf51dZM7zTTO830TjO900ZPNdM7zfROM73T5ks10zvN9M7Y6Km8qk4bPdVM7zTTO830Ths91UzvjM8Hc3OXwy44AKx8A2imd5rpnWZ6p42eaht10uipMdM77eZbo5ne6QfGaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdz/7Rn45PynNz+9ZM7zTTO830TjO900ZPNdM7zfROM73T5ks10zvN9M7Y6Km8qlQzvdNM7zTTO830Ths91UzvjM8Hc3OXw+YBYHnN9E4bPdU26qTRU2Omd9rNt0YzvdMPjNNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zPfLp7//kr/zqz6zmP//XP17N+Jg8N3fhmumdZnqnmd5ppqea6Z1meqeZ3mmmdxp8qWZ6p5neGRs9lVeVaqZ3mumdZnqnmd5po6ea6Z3x+WBu7nLYPAAsr5meaqZ32kadNHpqzPROu/nWaKZ3+oFx2uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ64eu+5q5zHv3gg6v59Pd/cjXN9E4zPTU+Kc/N7VszvdNM7zTTO230VDO900zvNNM7zfROgy/VTO800ztjo6fyqlLN9E4zvdNM7zTTO230VDO9Mz4fzM1dDpsHgOW10VPN9E7bqJNGT42Z3mk33xrN9E4/ME4bPdVM7zTTO830TjO900ZPNdM7zfTLet9733Heww/dv5rzaX4dzfROM73TTO+00VPjk/Lc3L410zvN9E4zvdNGTzXTO830TjO900zvNPhSzfROM70zNnoqryrVTO800zvN9E4zPdVM7zTTO+Pzwdzc5bB5AFheGz3VTO+0jTpp9NSY6Z12863RTO/0A+O00VPN9E4zvdNM7zTTU830S3nvBx8YfOSxD6xmf6DXmumdNnqqmd5ppnea6Z02emp8Up6b27dmeqeZ3mmmd9roqWZ6p5neaaZ3mumpNl+nmd5ppnfGRk/lVaWa6Z1meqeZ3mmjp5rpnWZ6Z3w+mJu7HDYPAMtro6ea6Z22USeNnhozPdV0vh2a6Z1+YJw2eqqZ3mmmd5rpF/Hgffc/i4fuW1MzvdNM7zTTO830Ths91UzvNNM7zfROGz01PinPze1bM73TTO800ztt9FQzvdNM7zTTO230VJuv00zvNNM7Y6On8qpSzfROM73TTO+00VPN9E4zvTM+H8zNXQ6bB4DltdFTzfRO26iTRk+NjZ5qOt8OzfROPzBOGz3VTH9Ut776uXzFq16/mrHRU2n0VDO900zvNNM7zfRUM73TTO800zvN9E4bPTU+Kc/N7VszvdNM7zTTO230VDO900zvNNM7bfRUm6/TTO800ztjo9fywjrN9E4zvdNM77TRU830TjO9Mz4fzM1dDpsHgOW10VPN9E7bqJNGT42Nnmo63w7N9E4/MEdx/fUHePnLbl1NM73TTO+MjZ5Ko6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uip8Ul5bm7fmumdZnqnmZ5qpnea6Z1meqeZ3mmjp9p8nWZ6p5neGQO9lhfWaaZ3mumdZnqnjZ5qpnea6Z3x+WBu7nLYPAAQzfROM73Tcuqk0VNjo6eazr/4Hb/y2IGuOr27mjZ6qpneaaZ3mumdsdFTafRUM73TTO800ztt9FQzvdNM7zTTO830Ths9NT4pz83tWzO900zvtNFTzfROM73TTO800ztt9FSbr9NM7zTTO2Og1/LCOs30TjO900zvtNFTzfROM70zPh/MzV0OmwcAopneaaZ3mumdNHpqbPSH8CVfcuWGvnRFzfROM73TRk810zvN9E4zvTM2eiqNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnfGJ+W5uX1rpnea6Z02eqqZ3mmmd5rpnWZ6p42eavN1mumdZnpnDPRaXlinmd5ppnea6almeqeZ3mmmd8bng7m5y2HzAEA00zvN9E4z/aVKeX9Ox46tp42eaqZ3mumdZnqnjZ5qpnea6Z1memds9FoyvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO+MT8pzc/vWTO800ztt9FQzvdNM7zTTO830VDO90+brNNM7zfTOGOi1vLBOM73TTO+00VPN9E4zvdNM74zPB3Nzl8PmAYBopt/cmRtuuCTXrbhmeqeZnmqmd5rpnWZ6p5neaaOnmumdZnqnmd4ZA72WTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM745Py3Ny+NdM7zfROGz3VTO800zvN9E4bPdVM77T5Os30TjO9MwZ6LS+s00zvNNM7bfRUM73TTH90//TX/smzGr+z5+bmLtxleQDof6/8QGfO3LCqZHpnjPRyzfROGz3VTO800zvN9E4zvdNGTzXTO830TjO9MwZ6LZneaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd8Yn5bm5fWumd5rpnTZ6qpneaaZ3mumdNnqqmd5p83Wa6Z1memcM9FpeWKeZ3mmmd9roj+ja6/Yu4omPPraaZnpn/M6em5u7cFecPLGz3+m9q1fTTO+MgV5LpnfGSC/XTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7Y6DXkumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6Z3xSnpvbt2Z6p5neaaOnmumdZnqnmd5po6ea6Z02X6eZ3mmmp8ZGT+WFdZrpD2t8xeqF19+ymjZ6qpneaaZ3xu/subm5CzcPAEYyvTNGerlmeqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd4ZA72WTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM745Py3Ny+NdM7zfRUM73TTO800zvN9E4bPdVM77T5Os30TvsyNTb6Q3jmP+SLT39Tp5neaaOnmumdZnpn/M6em5u7cH9ZDgDXrnwDSKZ3xkgv10zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO2Og15LpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1memd8Up6b27dmeqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd7ZOXlqTU3n26GZ3mmmp5rpnWZ6p5neGb+z5+bmLtw8ABjJ9M4Y6eWa6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnpqbPRUMr3TTO800ztt9FQzvdNM7zTTO230VDO900zvjE/Kc3P71kzvtNFTzfROM73TTO8001PN9E4z/Sauv/baQ7jq9OnVNNM7bfRU0/l2aKZ32uipZnqnmd5ppnfG7+y5ubkLNw8ARjK9M0Z6uWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnhobPZVM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvjk/Lc3L410ztt9FQzvdNM7zTTO230F3f/2+89iq/48tesppneaaZ3mumdNnqq6Xw7NNM7bfRUM73TTO800zvjd/bc3NyFmwcAI5neGSO9XBs91UzvNNM7zfROM73TRk810zvN9E4zvdNGT42Nnkqmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z3xSXlubt+a6Z2fT6OnmumdZvrn8sCD9x7Rtz71+Gra6KlmeqeZ3mmmd5rpnTZ6qul8OzTTO230VDO900zvNNM743f23NzchZsHACOZ3hkjvVwbPdVM7zTTO830TjO900ZPNdM7zfROM73TRk+NjZ5Kpnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumd8Ul5bm7fmumdn0+jf1bf/h2PL+J973xoNc30TjO900ZPNdM7zfROM73TTE810ztN59uhmd5po6ea6Z1meqeZ3hm/s+fm5i7cPAAYyfTOGOnl2uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6amz0VDK900zvtNFTzfROM73TTO800ztt9FQzvdNM74xPynOX+f7gD393QZ/5kU+vqZneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rOt0MzvdNGTzXTO830TjO9Mz4BzM3NXbjn8wBwet0bwNjoqWR6Z4z0cm30VDO900zvNNM7bfRUM73TTO800zvN9E4bPTU2eiqZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnfGJ+W/BPut3/mFxf3+Z39jNc30Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO03n26GZ3mmjp5rpnWZ6p5neGZ9v5ubmLtw8ABjJ9M4Y6eXa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnpnbPRUMr3TTO+00VPN9E4zvdNM77TRU830TjO900zvjE/K/2//8b/9nvBf/uQP19RM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO03n26GZnmqmd5rpnWZ6p5neGZ/e5ubmLtw8ABjJ9M4Y6fGa6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnpnbPT/l717ifU0z++77rWnu+pU1alTp6r6Mt09V3vCjCM7xANF0MQkIrbji2wDtiULi2QMkcgCL9iwQ8QiAhYgosiAFFnIiZAQioTECnHZRGQbiR0SGy5CIGGQ2ECGnmpXT/n77qo+VXVej7v/9f3otf/X9P95/vU871+rh0qmd5rpnTZ6qpneaaZ3mumdNnqqmd4Zjf7f+Xf/qvNf/b3fP0wzvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TtP5aWijp5rpnWZ6p5neaaZ3Zuzc7XZ/dHsAYCTTO7PQ4zXTO830TjO900zvtNFTzfROM73TTO+00VPN9M5s9FQyvdNM77TRU830TjO900zvPF3nf+4XHmm/8qt//jDN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO903R+GtroqWZ6p5neaaZ3mump2Tt3u91T2wMAI5nemYUer5neaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd2ajp5LpnWZ6qpneaaZ3PkrzP/mT3zrA17/+wWHa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3ms5PQxs91UzvNNM7zfROGz01e+dut3tqewBgJNM7s9DjNdM7zfROM73TTE810zvN9E4zvdNM77TRU830zmz0VDK900ZP/eN/5puH+Yk//WOHaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnabz09BGTzXTO830TjO900ZPzd652+2e2jwAOPgMoJnemY2eSqZ3ZqHHa6Z3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpndnomZ//uV/48Z/45mG+8rV3jtRM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdN0fhra6KlmeqeZ3mmmd9roqdk7d7vdU9sDACOZ3pmFHq+Z3mmmd5rpnTZ6qpneaaZ3mumdZnqqmf7a/dR3/txHfuPXf/0wP/9zv3CYZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5pOj8ZzfROM73TTO800ztt9NTsnbvd7qntAYCRTO/MQo/XTO800zvN9E4bPdVM7zTTO8301+ve3fOP/fhP/OiRPq7zB2imd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaTc/Gc30TjO900zvNNM7bfTU7J273e6p7QGAkUxPzUgv10zvNNM7zfROGz3VTH9dbr55Ntw6u32YpwO91kZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvt5iejmd5ppnea6Z1meqqZ3pm9c7fbPbU9ADDS6KkZ6eWa6Z1meqeZ/nq88QluvHnrSM30TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E67+clopnea6Z1meqeNnmqmd2bv3O12T20PAIw0empGerlm+ld38/uR+hO88cbZYZrpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mk3PxnN9E4zvdNM77TRU830zuydu93uqe0BgJFG/4oePnzrOe5f3j9MM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73Tbn4ymumdZnqnmd5po6ea6ZHv/cOZO3e73dM7nQOAL3/wwfPNf5Vdro2eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumddvOT0UzvNNM7zfTX7p/5i9/9yN/9u//Zkb7f5Q+z2+2evR+6uHsxvPXW24dppndmpJdro6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqfd/GQ001+X99/9keEv/8Z3D/NxnT9AGz01Gz212+2evT0AUGumd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p938Wty/d/mJPnj3G4dppnea6Z1meqeNnpqNntrtds/eHgCoNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfSv4vLi/nPcv7w8Tho91UzvNNM7zfROMz3VTO/MRk/tdrtnbw8A1JrpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd/r/9uc00zuz0VNp9FQzvdNM7zTTO230VDO9Mxs9tdvtnr09AFBrpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mulfwo/9ya9fxVe//N6RmumdZnqnmd6ZjZ5Ko6ea6Z1meqeZ3mmjp5rpndnoqd1u9+ztAYBaM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830V/fTL7g//zPfPkwzvdNGTzXTO830TjO9Mxu9lkzvNNM7zfROM73TRk810zuz0VO73e7Z2wMAtWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmf6KfumX/uJL+Jf+0ncPMyO9XDO900zvtNFTzfROM73TTO/MQK8l0zvN9E4zvdNM77TRU830zmz01G63e/ZeowOALx97BtBM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjP9p/rtf+1XXs4//dPfOUwbPdVM78xIL9dM7zTTO230VDO900zvNNM7M9BryfROM73TTO800ztt9FQzvTMbPbXb7Z69PQBQa6Z3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uif47f+yi++on/+t376MM30TjO900ZPNdM7M9LLNdM7zfROGz3VTO800zvN9M4M9FoyvdNM7zTTO830VDO900zvzEZP7Xa7Z28PANSa6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppv9Ef+vv/Huv7nf++r96mDZ6qpneaaZ3mumdNnqqmd6ZkV6umd5ppqea6Z1meqeZ3mmmd2ag15LpnWZ6p5neaaOnmumdZnpnNnpqt9s9e3sAoNZM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810w//xHe+eV3+6m//5mGa6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3ZqSXa6Z32uipZnqnmd5ppnea6Z0Z6LVkeqeZ3mmmd9roqWZ6p5nemY2e2u12z94eAKg10zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900z/tK9+/YvX6Ed/9EtHaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnRnp5ZrpnTZ6qpneaaZ3mumdZnpnBnotmd5ppnea6Z02eqqZ3mmmd2ajp3a73bO3BwBqzfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4z/Ufefeeta/feu+8eppneaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6Z0Z6uWZ6p42eaqZ3mumdZnqnmZ6ajZ5Kpnea6Z1meqeNnmqmd5rpndnoqd1u9+z9MR8AvHXsGcCM9HLN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRf+hLH7yPfOVLHxymmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd5ppndmpJdrpnfa6KlmeqeZ3mmmd9roqdnoqWR6p5neaaZ32uipZnqnmd6ZjZ7a7XbP3h4AqDXTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO6PRv/XgLefB/QeHaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd6ZkV6umd5po6ea6Z1meqeZ3mmjp2ajp5LpnWZ6p5meaqZ3mumdZnpnNnpqt9s9e3sAoNZM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9NTHdf7P/tS3tUePjtNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7M9LLNdNTzfROM73TTO800ztt9NRs9FQyvdNM77TRU830TjO900zvzEZP7Xa7Z28PANSa6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdj9L8F99/9wB/5jvfPlIzvfMomd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnRnp5droqWZ6p5neaaZ3mumdNnpqNnoqmd5ppnfa6KlmeqeZ3mmmd2ajp3a73bO3BwBqzfROGz3VTO800zvN9E4zvdNGT735xq3DnN08P0wzvdNGTzXTO4+S6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5nemZFero2eaqZ3mumdZnqnmd5po6dmo6eS6Z1meqeNnmqmd5rpnWZ6ZzZ6bbfbPWN7AKDWTO+00VPN9E4zvdNM79y4cetI/QNIM9M7zfROM73TRk810zuPkumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3pmRXq6Nnmqmd5rpnWZ6p5meaqZ3ZqOnkumdZnqnjZ5qpnea6Z1memcGem232z1jn3AAcPAZQDO9MyO9XDO900ZPNdMLH/03Xm7euHWYhGyojZ7qH0Camd5ppnea6Z02eqqZ3nmUTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830zoz0cm30VDO900zvNNM7bfRUM70zGz2VTO800ztt9FQzvdNM7zTTOzPQa7vd7hnbAwC1Zvprd3nv8g9d3DtS/1PsTjO9k5ANtdFT/QNIM9M7zfROM73TRk810zuPkumdZnqnjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3pmRXq6Nnmqmd5rpnWZ6p42eaqZ3ZqOnkumdZnqnjZ5qpnea6Z1memcGem232z1jJ34A8OD+/afdu7h3mB/U+QOk0VPN9E4zvZOQDbXRU/0DSDPTO830TjM91UzvNNM7j5LpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd6ZkV6ujZ5qpnea6Z1meqeNnmqmd2ajp5LpnWZ6qpneaaZ3mumdj+v8f/Pf/ufa//F//09Hmslzt9s92fcPAO5F/6svzmj0VDO9Mxu9lkzvNNM7zfROQjbURk/1DyDNTO800ztt9FQzvdNM7zxKpnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6Z0Z6vGZ6p5neaaZ3mumdNnqqmd6ZjZ5Kpnfa6Klmeucv/8Z3/+a//3vH+P2/9Z8eppneaaOnZvLc7XZP9kOt/3sAcC1moNeS6Z1meqeZ3knIhtroqf4BpJnpnWZ6p42eaqZ3mumdR8n0TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO/MQo/XTO800zvN9E4zvdNGTzXTO7PRU8n0yI987Rs/+zM/c6Rf/+XfPEwzvdNM7zTTU830zkyeu93uyfYAQJmBXkumd5rpnWZ6JyEbaqOn+geQZqZ3mumdNnqqmd5ppnceJdM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvTMLPV4zvdNM7zTTO830VDO900x/7R7ef/iHHj44zI987RuHaaOnmumdZnqnmd5po6ea6Z2ZPHe73ZPtAYAyA72WTO800zvN9E5CttVM7/TTpZnpnWZ6p42eaqZ3mumdR8n0Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900xPNdM7zfROM73TTO/MQo/XTO800zvN9E4b/TV6++H94eHlw+N8XOcPkEzvNNM7bfRUM73TTO800ztt9FQzvTOT5263e7I9AFBmoNeS6Z1meqeZ3knItprpnX66NDO900zvtNFTzfROM73zKJneaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z1Z6PGa6Z1m+mtx/+JuvfXg8jBt9NRs9FQzvZNM7zTTO230VDO900zvNNM7bfRUM70zk+dut3uyPQBQZqDXkumdZnqnmd5JyLaa6Z1+ujQzvdNMTzXTO830TjO98yiZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdWehfeV//6pef45237x6mmd5ppnfa6KnZ6KlmeieZ3mmmp5rpnWZ6p5neaaZ32uipZnpnJs/dbvdkewAAzUZPJdM7zfROM72TkG010zv9dGlmeqeNnmqmd5rpnWZ651EyvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900z/0v7sn/v28/38L/3UkZrpnWZ6p5neaaZ32uip2eipZnonmd5po6ea6Z1meqeZ3mmmd9roqWZ6ZybP3W73ZHsAAM1GTyXTO830TjO9k5BtNdM7/XRpZnqnjZ5qpnea6Z1meudRMr3TRk810zvN9E4zvdNGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9C/h/Q/evopvfesbh2mmd9roqWZ6p5neaaZ3mumdNnpqNnqqmd5Jpnfa6KlmeqeZ3mmmd5rpqWZ6p5nemclzt9s92R4AQLPRU8n0TjO900zvJGRbzfROP12amd5po6ea6Z1meqeZ3nmUTE810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8007+o999/54reeefhkZrpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z3Z6KlmeieZ3mmjp5rpnWZ6p5neaaOnmumdZnpnJs/dbvdkewAAzUZPJdM7zfROMz2Vlg010zv9dGlmeqeNnmqmd5rpnWZ651EaPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9Ff0O//G77yoX/zZXzlMMz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7s9FTzfROMr3TRk810zvN9E4zvdNGTzXTO830zkyeu93uyfYAAJqNnkqmd5rpnTZ6Ki0baqZ3+unSzPROGz3VTO800zvN9M6jNHqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p43+Kv6xR//oy/ntf+UvHaaZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3pmNnmqmd5LpnTZ6qpneaaZ3mumdNnqqmd5ppndm8tztdk+2BwDQbPRUMr3TTO+00VNp2VAzvdNPl2amp5rpnWZ6p5neaaZ3HqXRU830TjO900zvtNFTzfROM73TTP987737/kv74hffOkwbPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO7PRU830TjI91UzvNNM7zfROM73TRk810zvN9M5Mnrvd7slerwOAB8eeAcxGTyXTO830Ths9lZYNNdM7/XRpNnqqmd5ppnea6Z1meudRGj3VTO800zvN9E4bPdVM/ywze7+4r33lq4fJh0PN9E4bPdVM7zTTO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO7PRU830Tho91UzvNNM7zfROM73TRk810zvN9M5Mnrvd7sn2AACajZ5Kpnea6Z02eiotG2qmd/rp0mz0VDO900zvNNM7zfTOozR6qpneaaZ3muk/0fvvv3cNGphPRTO9kw+HmumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpndmo6ea6Z00eqqZ3mmmd5rpnWZ6p42eaqZ3mumdmTx3u92T7QEANBs9lUzvNNM7bfRUWjbUTO/006XZ6KlmeqeZ3mmmd5rpqUfJ9E4z/fDOw7evzdvvHGY2eqqB+VQ00zv5cKiNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6ZzZ6qpneSaOnmumdZnqnmd5ppqea6Z1meqeZ3pnJc7fbPdkeAECz0VPJ9E4zPdVM76RlQ830Tj9dmo2eaqZ3mumdZnqnjf5pX/rgnev23mFmo6eS6Z3Z6KkG5lPRTO/kw6E2eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd5rpndnoqWZ6J42eaqZ3mumdZnqnjZ5qpnea6Z1memcmz91u92R7AADNRk8l0ztt9FQzvZOWDTXTO/10aTZ6qpneaab/SPvsq/vyl98/TAK9NjO9Mxs9lS/RmY2eamA+Fc30Tj4caqOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd6ZjZ5qpnfS6KlmeqeZ3mmmd9roqWZ6p5neaaZ3ZvLc7XZPtgcA0Gz0VDK900ZPNdM7adlQM73TT5dmo6du3rhzmHZYp5neSaDXZqZ3ZqOn8iU6s9FrbcwnoZneyYdDbfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zuz0VPN9FQyvdNM7zTTO830Ths91UzvNNM7zfTOTJ673e7J9gAAmo2eSqZ32uipZnonLRv648701Mz0TjO90w7rNNM7CfTazPTObPRUvkRnBnqtjfkkNNM7+XCojZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1memc2eqqNnkqmd5rpnWZ6p5neaaOnmumdZnqnmd6ZyXO32z3ZH/8BwP1jzwCa6Z3Z6KlkeqeNnno60N86O6duvHn7MInmp2RmeqeZ3mmHdZrpnQR6bWZ6ZzZ6Kl+iMwO91sZ8EprpnXy41UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM70zGz3VRk8l0zvN9E4zvdNM77TRU830TjO900zvzOS52+2ebA8AoNnoqSd1/vzOHe3OrdtHaqZ3mumdRPNTMjO900zvtMM6zfRUGj01M70zGz2VL9GZgV5rYD4JzfROPtxqpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3pmNnmqjp5LpnWZ6p5neaaanmumdZnqnmd5ppndm8tztdk/2mh4A3Lhx+wDnd+4eaGZ6qpneaaZ3mumdRPNTMjO900zvtMM6bfRUGj01M70zGz2VL9GZgV5rYD4JzfROPtxqpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppqea6Z1meqeZ3pmNnmqjp5LpnWZ6p5neaaOnmumdZnqnmf5j/8N//73r9X/+7//vYWby3O12T/bMA4CL87uHuXP7OM30Tho9NRs91UzvNNM7zfROovkpmZneaaZ32mGdNnoqjZ6amd6ZjZ7Kl+jMQK81MJ+EZnonH2410zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM78xGT7XRU8n0TjO900zvtNFTzfQf+oP/9XvC//Y/HqeZ3mmmd2by3O12T/ZDd++cVxs91UzvNNM7afTUbPRUM73TTO800zuJ5qdkZnqnmd5ph3Xa6Kk0empmemc2eipfIjUbPdXAfBKa6Z18uNVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO9Mxs91UZPJdM7zfTOaPR//V//Xecf/P0/OFIzvdNM7zTTO8301Kyeu93u8fYAAEqjp2ajp5rpnWZ6p5neSTQ/JTPTO830TiOs00ZPpdFTM9M7s9FT+RKp2eipBuaT0Ezv5MOtZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z3Z6LVmeudJnf/g/fe1f/YXf/kwzfROGz3VTO800zvN9E4bPTWr5263e7xPPgA4+Aygmd5ppnfS6KnZ6KlmeqeZ3mmmdxLNT8nM9E4zvdMI67TRU2n01Mz0zmz0VL5EajZ6qoH5JDTTU/l8qJneaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnrncZS/f5i3Hz44TDO900zvNNM7bfRUM73TTO800ztt9NSsnrvd7vH2AABKo6dmo6ea6Z1meqeZ3kk0PyUz0zvN9E4jLNVM76TRUzPTO7PRU/kGqdnoqQbmk9BGT+XzoWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpkeuby4eOetB4d5eP/egWajp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlZPXe73ePtAQCURq/NTO800zvN9E4zvZNofkpmpnea6Z1GWKqZ3kmjp2amd2ajp/INUrPRUw3MJ6GNnsrnQ830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTC/cu7n7k8uLiJDXTO2n01Gz0VDO900zvNNM7bfRUM73TTO800zvN9E4bPTWr5263e7w9AIAS6LWZ6Z1meqeZ3mmmdxLNT8nM9E4zvdMISzXTO2n01Mz0zmz0VL5BajZ6qoH5JLTRU/l8qJneaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmv0Zvv335tHffPc7Haf4YTeenoZneSaOnZqOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqVk9d7vd4+0BAJRAr81M7zTTO830TjO9k2h+Smamd5rpnUZYqpneSaOnZqZ3ZqPX8iU6s9FTDcwnoY2eyudDzfROM73TRk810zvN9E4zvdNM77TRX5de9h/64IMvHmY0eqqZ3mmjp5rOT0MzvZNGT81GTzXTO830TjO900ZPNdM7zfROM73TTE810zuzeu52u8fbAwAogV6bmd5ppnea6Z1meird/GTMTO800zuNsFQzvZNGT81M78xAr+VLdGajpxqYT0IbPZXPhxornWZ6p42eaqZ3mumdZvpXd/vszic6v3N+mF6cVDO900zvNNM7bfRU0/lpaKZ30ui1memdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6Z1bP3W73eHsAACXQazPTO830TjO900ZPpZufjJnpnWZ6pxGWaqZ30uipmemdGei1fInObPRUA/NJaKOn8vlQY6XTTO+00VPN9K/iu//iP/cc77/3wWGa6Z1meqrXp9NM7zTTO830Ths91XR+GprpnQR6bWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3pnVc7fbPd4eAEAJ9NrM9E4zvdNM77TRU+nmJ2NmeqeZ3mmEpZrpnTR6amZ6ZwZ6LV+iMxs91cB8KprpnXw41FjpNNO/nG/9ya9+qp/6C98+UjO900zvNNM7bfRUr0+nmd5ppnea6Z02eqrp/DQ00zsJ9NrM9E4zvdNM7zTTO230VDO900zvNNM7bfRUM70zq+dut3u8PQCAEui1memdZnqnmd5po6fSzU/GzPROMz3VDus00ztp9NTM9M4M9Fq+RGc2eqqB+VQ00zv58Bf21sOHV3T/8uIwzfROGz3VTO800zvN9E4bPdVM7zTTO830TjM91UzvNJ2fhmZ6J4Fem5neaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd2b13O12j7cHAFYaPTUzvdNM7zTTO230VLr5yZiZ3mmjp9phnWZ6J42empnemYFey5fozEZPNUV/Vr391sMX8/b9wzTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO03np6GZ3kmg12amd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1ZPXe73ePtAYCVRk/NTO800zvN9E4bPZVufjJmpnfa6Kl2WKeZ3kmjp2amp2ajp/IlOrPRX9nD+5cv6sGBZqDXkumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqn6fw0NNM7CfTazPROM73TTO+00VPN9E4zvdNM7zTTU830TjO9M6vnbrd7vD0AsNLoqZnpnWZ6p5meaqZ30s1Pxsz0Ths91Q7rNNM7afTUbPTUbPRX8NbDd17W/cM00zvN9M4M9FoyvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zSdn4ZmeiqNnpqZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppndm9dztdo+3BwBWGj01M73TTO+00VPN9E66+cmYmd5po6ea6Z1meieN/lOkN76A97/4xSOl0VMz0zvN9E4zvTMDvZZM78w7QWqmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mk6Pw1t9FQaPTUzvdNM7zTTO230VDO900zvNNM7bfRUM73TTO/M6rnb7R5vDwCsNHpqZnqnmd5po6ea6Z1085MxM73TRk810z/LgwcPX9E7b711mPRDqI2eSqOnZqZ3mumdZnpqNnoqmd6Zd4LUTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TdH4a2uipNHpqZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5nemdVzt9s93h4AWGn01Mz0TjO900ZPNdM76eYnY2b6Z+kt8xLO71weppneaaZ30g+hNnoqjZ6amd5ppnfa6KnZ6KlkemfeCVIzvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E7T+Wloo6fS6KmZ6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnpnVs/dbvd4r90BwJ1jzwDS6KmZ6Z1meqeNnmqmd9LNP8H53XvX4v69B4fpjUA10zvN9E4zvZN+CLXRU2n01Mz0TjO900ZPzUZPJdM7806QmumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3ms5PQxs9lUZPzUzvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO7N67na7x9sDACuNnpqZ3mmmd9roh9u3Lq7RjRu3DtNM7zTTO70RqGZ6p5neaaZ30g+tZnonjZ6amd5ppnfa6KnZ6KlkemfeBlIzPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E7T+Wloo6fS6KmZ6Z1meqeNnmqmd5rpnWZ6p5meaqZ3mumdZnpnVs/dbvd4ewBgpdFTM9P/wPnd63V289aRmumdZnqnmd5ppnd6I1DN9E4zvdNM76QfWs30Tho9NTO900zvtNFTs9FTyfTOvA2kNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdpvOT0UzvpNFTM9M7zfROGz3VTO800zvN9E4bPdVM7zTTO830zqyeu93u8fYA4Adu3bpz7S7O7x2mmd5po6ea6Z1meqeZ3mmmd3pzUc30TjO900zvpB9azfROGj01M73TTO+00VOz0VPJ9M68DaQ2eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1285PRTO+k0VMz0zvN9E4bPdVM7zTTO830Ths91UzvNNM/x263+7zvxQ4Abp3dFu7cuXukZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumd9EOrmd5Jo6dmpnea6almemc2eiqZ3pm3gdRGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNufjKa6Z00empmeqeZ3mmjp5rpnWZ6p5neaaN/lt1ut/ss74duvHnrEzXTO230VDO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Tvqh1UzvpNFTM9M7bfRUM70zGz2VTO/M20Bqo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5pNz8ZzfROGj01M73TTE810zvN9E4z/fA//y//13WZWWu32+12n7bPxAHArWPPAJrpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9IPrWZ6J42empneaaOnmumd2eipZHpn3gZSGz3VTO800zvN9E4bPdVM7zTTO830TjM91UzvNNM7zfROu/nJaKZ30uipmemdNnqqmf5jP/mnv3W9/u1/868dppnemVlrt9vtdp+2PQCwmumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neST+0mumdNHpqZnqnjZ5qpndmo6eS6Z15G2DN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvt5iejmd5Jo6dmpv/Q/ctL4cG9u0dqpnea6Z1memdmrd1ut9t92vYAwGqmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meir9EGqmd9LoqZnpnTZ6qpnemY2eSqZ35m2ANdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvtJufjNHoH9y7cC6//0/yIM30Ths91UzvNNM7zfTOzFq73W63+7TtAYDVTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7bfRU+iHUTO+k0VMz0ztt9FQzvTMbPZVM78zbAGumd5rpnWZ6p5meaqZ3mumdZnqnmd5po6ea6Z1meqeZ3nm6mN+7y53fvn2YZnqnmd5ppnfa6KlmeqeZ3mmmd2bW2u12u92nbQ8ArGZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp9IPoWZ6J42empmeaqZ3mumd2eipZHpn3gZYM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvvPvu5Ttvv3WM+ZsstdFTzfROM73TTO800ztt9FQzvdNM7zTTOzNr7Xa73e7TtgcAVjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU+mHUDO9k0ZPzUZPNdM7zfROqw2UTO/M2wBrpnea6Z1meqeNnmqmd5rpnWZ6p5neeXB5eaT7947TTO/M32SpjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5nemVlrt9vtdp+2Zx4AHHwG0EzvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPpR9CzfROGj01Gz3VTO800zutNlAyvTNvA6yZ3mmmd5rpnTZ6qpneaaZ3Ls4vDpNWaTXTO830TjO9M3+TpTZ6qpnemZem1EzvtNFTzfROM73TTO800zsza+12u93u07YHAFYzvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPph1AzvZNGT81GTzXTO830TqsNlExPzTtBaqZ3mumdZnqnjf7a/amn9t7bXz9MM73TTO+kVVrN9E4zvdNM78zfZKmNnmqmd+alKTXTO230VDO900zvNNM7zfTOzFq73W63+7TtAYDVTO+00VPN9E4zvdNM77TRU830TjO900zvNNNTzfRO+iHUTO+k0VOz0VPN9E4zvdNqA6XRU/NOkJrpnWb6a/TwrftP+9rXvnSYp+v8AWumd5rpnWZ6J63SaqZ3mumdZnpn/iZLbfRUM70zL02pmd5po6ea6Z1meqeZ3mmmp2bZ2u12u91ztwcAVjM91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO+mHUDO9k0ZPzUZPNdM7zfROqw2URk/NO+E63L+894kuLy4PMxo91UzvzEKP10zvNNM7zfROWqXVTO800zvN9M78Tcaa6Z1memdemlIzvdNGTzXTO830TjO900ZPzbK12+12u+duDwCsNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ30hWhZnonjZ6ajZ5qpnea6Z0mm1d0ee/iWfrpVDO900zvNNM7zfTUjPRyzfROM73TTO+kVVrN9E4zvdNM7/QXm2qmd5rpnXlpSs30Ths91UzvNNM7zfROGz01y9Zut9vtnrs9ALDa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z00em1meqeZ/qVdnN99vsuLi+Mk0ztt9FQzvdNM7zTTO2301Iz0cs30TjO900zvpFVazfROM73TTO+00VPN9E4zvTMvTamZ3mmjp5rpnWZ6p5neaaOnZtna7Xa73XO3BwBWGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM72TQP+SLu/du4qL8zsHmpnemY2eSqZ32uipZnqnmd5ppnfa6KkZ6eWa6Z1meqeZnkquhJrpnWZ6p5neaaOnmumdZnpnXppSMz3VTO800zvN9E4zvdNGT82ytdvtdrvnbg8ArDZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpX9T9y/tX9MV33jlMGz2VRk/NTO/MRk8l01PN9E4zvdNM7zTTO2301Iz0cs30TjO900ZPJVdCzfROM73TTO+00VPN9E4zvTMvTamNnmqmd5rpnWZ6p5neaaOnZtna7Xa73XO3BwBWGz3VTO800zvN9E4bPdVM7zTTO830TjM91Uz/QvJq8zwPLu8fppneaaZ32uipNHpqZnpnNnoqjZ5qpnea6Z1meqeZ3mmjp2akl2umd5rpnTZ6KrkSaqZ3mumdZnqnjZ5qpnea6Z15aUrzURVrpnea6Z1meqeZnmqmd2bZ2u12u91ztwcAXDO900zvNNM7zfROGz3VTO800zvN9Fd3882zF3J++96R8m4CNdM7zfROM73TRk+l0VMz0zuz0VNp9FQzvdNM7zTTO830Ths9NSO9XDO900zvtNFTyZVQM73TTO8001PN9E4zvdNM78xLU5qPqlgzvdNM7zTTO230VDO9M8vWbrfbvd77e//df/l8ewDANdM7zfROM73TTO+00VPN9Fdx48bZS7h96+5hmumdNnoq7yZQM73TTO800ztt9FQaPTUzvTMbPZVGTzXTO830TjO900xPNdM7M9LLNdM7zfROGz2VXAk10zvN9E4bPdVM7zTTO830zrw0pfmoijXTO830TjO900ZPNdM7M33tdrvda79G/z0AmI2eaqZ3mumdZnqnmf5T3bx55+Wc3bh1pGZ6p5neaaZ32uipvJtAzfROM73TTE810ztp9NTM9M5s9FQaPdVM7zTTO830Ths91UzvzEgv10zvNNM7bfRUciXUTO800ztt9FQzvdNM7zTTO/PSlOajKtZM7zTTO830Ths91UzvzO612+12r/0a/fcAYDZ6qpneaaZ/jjt3Ll7F2c07h2mmp5rpnWZ6p5neaaZ32uipvJtAzfROM73TRk810ztp9NTM9M5s9FQaPdVM7zTTO830Ths91UzvzEgv10zvNNM7bfRUciXUTO800ztt9FQzvdNM7zTTO/PSxObTqtRM7zTTO830Ths91UzvzO612+12r/0a/fcAYDb65+i/jf6i7p5fHKaZ3mmmd9roqWZ6p5neaaZ3mumdNnoq7yZQM73TTO+00VPN9E4aPTUzvTMbvZZM7zTTO830TjO900ZPNdM7M9LLNdM7zfRUM72TVgk10zvN9E4bPdVM7zTTO830zrw0sfm0KjXTO830TjO900ZPNdM7s3vtdrvda79G/2s+AHjjCzde3dnNswPNRk810zvN9E4zvdNGTzXTO830TjO900xPNdM7eTeBmumdZnqnjZ5qpnfS6KmZ6Z0Z6LVkeqeZ3mmmd5rpnTZ6qpnemZFerpneaaOnmumdtEqomd5ppnfa6KlmeqeZ3mmmd+alic2nVamZ3mmmd5rpqWZ6p5nemd1rt9vtXvs1+v+RA4Av/PAXnqWZ3kmj12amd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z28m0DN9E4zvdNGTzXTO2n01Mz0zgz0WjK900zvNNM7zfROGz3VTO/MSC/XTO+00VPN9E5aJdRM7zTTU830TjO900zvNNM789LE5tOq1EzvNNM7bfRUM73TTH8V//B7f/ASZvfa7Xa7136N/nsAcNZM7zTTO830TjO900ZPNdM7zfROM73TRk810zt5N4Ga6Z1meqeNnmqmd9LoqZnpnRnotWR6p5neaaZ3mumpZnqnmd6ZkV6umd5po6ea6Z20SqiZ3mmjp5rpnWZ6p5neaaZ35qWJzadVqZneaaZ32uif71s/9tVX8bv/0V87TDO9M7vXbrfbvfZr9N8DgLNmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd7JuwnUTO8001PN9E4zvZNGT81M78xAryXTO830TjO900ZPNdM7zfTOjPRyzfROGz3VTO+kVULN9E4bPdVM7zTTO830TjO9My9NbD6tSs30z3Jx9+4r6v9Sp42eaqZ3mumd2b12u93utV+j/x4AnDXTO830TjO900xPNdM7zfROM73TTO+00VPN9E7eTaBmeqeNnmqmd5rpnTR6amZ6ZwZ6LZneaaZ3mumdNnqqmd5ppndmpJdrpnfa6KlmeiedDWqmd9roqWZ6p5neaaZ3mumpeXXG+a3b12W+E1LJ9E7/oTlt9FQzvdNM78zutdvtdq/9Gv33AOCsmd5ppnf61OS00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO+k0VMz0zsz0GvJ9E4zvdNM77TRU830TjO9MyO9XDM91UzvNNM76WxQM73TRk810zvN9E4z/dPuX9y7Rndv3z5SM70z3wmpZHpn3uFSGz3VTO800zuze+12u91rv0b/PQA4a6Z3mumdPjU5bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7afTUzPTUbPRUMr3TTO800ztt9FQzvdNM78xIL9dGTzXTO830Tjob1EzvtNFTzfR/6K2H1+7dt986TDO900ZPNdM7852QSqZ35h0utdFTzfROM70zu9dut9u99mv0/yweALxx9BnAzPROM73TpyanjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnonjZ6ajZ6ajZ5Kpnea6Z1meqeNnmqmd5rpnRnp5droqWZ6p35bRFAAAIAASURBVJneSWeDmunP75wj/T2hmumdZnqnmd5po6ea6Z35Tkgl0zvzDsea6Z1meqeZ3pnda7fb7V77NfrvAcBZM73TTO/0qclpo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5Jo6dmo6dmo6eS6Z2WL6eZnmqmd5rpnWZ6Z0Z6uTZ6qpneeTrQ3z2/i50fppme6k+K00zvNNM7zfROGz3VTO/Md0Iqmd5po6ea6Z1meqeZ3pnda7fb7V77NfrvAcBZM73TTO/0qclpo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5Jo6dmo6dmo6eS6Z2WL6eNnmqmd5rpnWZ6Z0Z6uY/T/Afvv3eA89t3D5NGT81M77TRU/1JcZrpnWZ6p5neaaOnmumd+U5IJdM7bfRUM73TTO800zuze+12u91rv0b/PQA4a6Z3mumdPjVRzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7afTUbPTUbPRUMr3T8uW00VPN9E4zvfO1r33pq1/9yjG++c2vHaaNnmqmd9LoqZnpnTZ6qj8pTjO900zvNNNTzfROM70zXwipZHqnjZ5qpnea6Z1memd2r91ut3vt1+i/BwBnzfROM73Tpyaqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnonjZ6ajZ6ajZ5Kpndavpw2eue9d9770vtfPcz7X/zKYZrpnWZ6qpneaaZ30uipmemdNnqqPylOM73TTO+00VPN9E4zvTNfCKlkeqeNnmqmd5rpnWZ6Z3av3W63e+3X6L8HAGfN9E4zvdOnJqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meieNXpuZ3pmNnkqmF+7eOf++WQ+h995570jN9E4zvdNM77TRU830TjO903tBmpneaaOnmumdZnqnmd5po6ea6Z1meme+EFLJ9E4bPdVM7zTTO830zuxeu91u99qv0X8PAM6a6Z1meqdPTVQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4CvTYz/fW6c/vOx1qjnD9M88eY9RBqo6ea6Z1meqeZ3mmjp5rpnWZ6p/eCNDO9098uqpneaaZ3mumdNnqqmd5ppnfmCyGVTE810zvN9E4zvdNM78zutdvtdq/9Gv2vegBw8BlAGj01M73TTO/0qYlqpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmf4a3bl9/kf9oJifmNYoZzZ6atZDqI2eaqZ3mumdZnqnjZ5qpnea6Z3eC9LM9FR/vpxmeqeZ3mmmd9roqWZ6p5nemS+EVBo91UzvNNM7zfROM70zu9dut9u99mv03wOAs2Z6p5ne6VMT1UzvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTX4vZMB6bP15SGj01u/nJyHcIzUZPzXpoNdM7zfROM73TTO+00VPN9E4zvdMbQZqNnurPl9NM7zTTO830Ths91UzvNNM784WQSqOnmumdZnqnmd5ppndm99rtdrvXfo3+ewBw1kzvJEZZfXBymumdZnqnmd5po6ea6Z1meqeZ3mmjf3Xn5/ee5c6d88PM2CDNXy4pjZ6a3fxk5DuEZqOnZj20mumdZnqnmd5ppnfa6KlmeqeZ3umNIM1GT/Xny2mmd5rpnWZ6qpneaaZ3mumd+UJIpdFTzfROM73TTO8001Mzfe12u93rvUb/PQA4a6Z3EqOsPjg5zfROM73TTO+00VPN9E4z/Su58Tx3P3xBOEobPdVM78zYIM1fLimNnprd/GTkO4Rmo6dmPbSa6Z1meqeZ3mmmp5rpnWZ6p5ne6Y0gzUZP9efLaaZ3mumdNnqqmd5ppnea6Z35Qkil0VPN9E4zvdNM77TRUzN97Xa73eu9j0L/3/gPf/sT7QEAlxhl9cHJaaZ3mumdZnqnjf7lvXnrU735xtlhmumdZnqnjZ5qpndmbJDmL5eURq/NdH4a8h1Cs9FTsx5azfROM73TTO+00VPN9E4zvdNM7/RGkGajp/rz5TTTO830Ths91UzvNNM7zfTOfCGk0uipZnqnmd5ppnfa6KmZvna73e6zt//4937/MI3+ewBw1kzvJEZZfXBymumdZvqX8OYbb17FzTdvHamZ3mmmd5rpnWZ6p42eaqZ3ZmyQ5i+XlECvzXR+GvIdQrPRU7MeWs30TjO900zvtNFTzfROM73TTO/0RpBmo6f68+U00zvN9E4bPdVM7zTTO830znwh1JLpnWZ6p5neaaZ32uipmdl2u93us7dmeqfRfw8AzprpncQoq09NL+rW2dlV3bx5mGZ6p42eaqZ3mumdZnqnmd5po6ea6Z0ZG6T5yyUl0GsznZ+GfIfQbPTUrIdWM73TTO800ztt9FQzvdNM7zTTO70RsJnpnf58Oc30TjO900ZPNdM7zfROM70zXx21ZHqnmd5ppnea6Z02empmtt1ut/vsrZneafTfA4CzZvoXcvvs9tXNaH5KkumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnRkbpGZ6J4Fem+n8NOQ7hGaj12Y9hJrpnWZ6p5neaaOnmumdZnqnmd7pjYDNTO/058tppnea6Z02eqqZ3mmmd5rpnRnotWR6p5neaaZ3mumdNnpqZrbdbrf77K2Z3mn0P+YA4Idf2A8fp5memt38ZCTTO830Ths91UzvNNM7zfROMz3VTO800zszNkjN9E4CvTbT+WnIdwjNQK/Negg10zvN9E4zvdNGTzXTO830TjO90xsBm5ne6c+X00zvNNM7bfRUM73TTO800zsz0GvJ9E4zvdNM7zTTU830zsxsu91u99lbM73T6P9HDgDefOON55iNnkqmd9roqdnNT0YyvdNM77TRU830TjO900zvtNFTzfROM70zY4PUTO8k0GsznZ+GfIfQDPTarIdQM73TTO800ztt9FQzvdNM7zTTO70RsJnpnf58Oc30TjM91UzvNNM7zfROM70zA72WTO800zvN9E4bPdVM/3L+v+9971PtdrvdZ3/N9E6j/x4A7AHANUmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppndmbJCa6ak0emqm89OQ7xCagV6b9RBqpnea6Z1meqqZ3mmmd5rpnWZ6pzcCNjO9058vp5neaaOnmumdZnqnmd5ppndmoNeS6Z1meqeZ/kW9996DK/o7f/t3j9RM7+x2u91nf830VLv/HgDMRk/Nbn4ykumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnRkbpDZ6Ko2emun8NOQ7hGag12Y9hJrpnWZ6p42eaqZ3mumdZnqnmd7pjYDNTO/058tppnfa6KlmeqeZ3mmmd5rpqdnoqWT6q7t3/mIuL47TTO+00VPN9M5ut9t99tdGT7X77wHAbPTU7OYnI5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3pmxQWqjp9LoqZnOT0O+Q2gGem3WQ6iZ3mmmd9roqWZ6p5neaaZ3mump3gvSzPROf76cZnqnjZ5qpnea6Z1meqeN/io+fKJ9OXfv3DlMM73TTO800ztt9FQzvbPb7Xaf/bXRU+3+ewAwGz01u/nJSKZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd2ZskNroqTR6aqbz05Dv0JqNnpr1EGqmd5rpnTZ6qpneaaZ3mumdNnqq94I0M73T3y6nmd5po6ea6Z1m+k9xefnSLu/dO0wbPdVM7zTTO830TjO900ZPNdM7u91u99lfGz3V7r8HALPRU7Obn4xkeqeNnmqmd5rpnWZ6p5meaqZ3mumdZnpnxgapjZ5Ko6dmOj8N+Q6t2eipWQ+hZnqnmd5po6ea6Z1meqeZ3mmjp3ovSDPTO/3tcprpnTb657h3cf6KHty/f5hmeqeZ3mmjp5rpnWZ6p5neaaanmumdZnpnt9vtPvtro6fa/V/3A4A3jj0DmN38ZCTTO230VDO900zvNNM7bfRUM73TTO800zszNkht9FQaPTXT+WnId2jNRk/Negg10zvN9E4bPdVM7zTTO830Ths91XtBmpne6W9X3bxx61rcuX37SM30TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7+x2u91nf230VLv/HgDsAcB1SKZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd2a0wJrpnTR6aqbz05Av0JqNnpr1EGqmd5rpqWZ6p5neaaZ3mumdNnqq98LT3vzCm9fpjZuHaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3drvd7nOxZnqn3X8PAPYA4Dok01PN9E4zvdNM7zTTO230VDO900zvNNM7M8FizfROGj010/lpyBdozUZPJUc6zfROGz3VTO800zvN9E4z/cfu3b24Xndu3T7SbPRUMr3TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO/sdrvd52LN9E67/x4A7AHAdUijp5rpnWZ6p5neaaZ32uipZnqnmd5ppndmgsWa6Z00emqm89OQL9CajZ5Kpnea6Z02eqqZ3mmm/9D7H/4vBhoroWR6qpnemY2eSqZ3mumdNnpqXpxSM73TTO8001PN9E4zvdNM7zTTO230VDO900zv7Ha73edizfROu/8eAOwBwHVIo6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ3ZoLFmumdNHpqpvOTke8Qmo2eSqZ3mumdNvpvfvMbzre++acO00zvNFZCafRUM70zGz2VTO800ztt9NS8OKVmeqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd7Z7Xa7z8Wa6Z12/z0A2AOA65BGTzXTO830TjO900xPNdM7zfROM73TTO/MBIs10ztp9NTs5icj3yE0Gz31VKC/d9f6R/7ENw7TRk810zvN9E5jJZRGTzXTO7PRU8n0TjO900ZPzYtTaqZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnd1ut/tcrJneaff/TB4AfGE2eqqZ3pnd/GSk0VPN9E4zvdNM77TRU830TjO900zvNNM7M8FizfROGj01u/nJePLV5dIBLs4vD9NM7zTTO230VDO900zvNFZCafRUM70zGz2VTO8001PN9M68OKVmeqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd7Z7Xa7z8Wa6Z12/z0A2AOA65BGTzXTO830TjO900ZPNdM7zfROM72TLgq10VPN9E4aPXXn9tmtY8x/kx2bV4zUTO800zvN9FQzvdNM7zTTO42VUBo91UzvzEZPJdM7bfRUM70zL06pmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3drvd7nOxZnqn3X8PAPYA4Jok0zvN9E4zvdNM77TRU830TjO900zvpItazfTI2Y1bN26cHab3ndNM77TRU/NykZrpnWZ6p42eaqZ3mumdZnqnsRJKo6ea6Z3Z6KlkeqeNnmqmd+bFKTXTO830Ths91UzvNNM7zfROGz3VTO800zvN9M5ut9t9LtZM77T77wHAHgBck2R6p5neadRzmumdNnqqmd5ppnea6YV7Fw8+dHbz9qFu3DpMM73T+85ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3GiuhNHqqmd6ZjZ5Kpnfa6KlmemdenFIzvdNMTzXTO830TjO900zvtNFTzfROM73TTO/sdrvd52LN9E67/x4A7AHANUmmd5rpnUY9p5neaaOnmumv142ndvfuxWE+SvPHmIFeS6Z3mumd3ndOMz3VTO800zvN9E4zvdNGTzXTO830TjO901hpJdM7zfTObPRUMr3TRk810zvzypSa6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnpnt9vtPhdrpnfa/T/yq7/2y3sAcIQZzU9JMr3TTO806jnN9Nfo9q2p/2OdpwO9XjO900zvzECvJdM7zfRO7zunjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaay0kumdZnpnNnoqmd5po6ea6Z15ZUrN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM72z2+1217W//Z/8nvMv/OavHuZXf+2Xn+VTDgCOPgNIpnea6Z0ZzU9JMr3Tvnwt7p7frjtnZ4dpo6f6T8CZkV6umd5ppndmoNeS6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppncaK61keqeZ3pmNnkqmp5rpnWZ6Z16ZUjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM7+x2u9Pa/3OkZnqnmd5p998DgD0AeDF9MfjI/Xv3DtNM7zTTO230VDO9MyO9XDO900zvzECvJdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvNFZayfROM70zGz2VRk810zt9DnfmlSk10ztt9FQzvdNM7zTTO230VDO900zvNNM7zfTObrc7rc1GTzXTO830Trv/HgBc/wHA+ffjyCdrT3f6BE810zvN9E4zvdNGTzXTOzPSyzXTO8301Gz0VDK900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830TmOllUzvNNM7s9FTafRUM73T53BnXplSM73TRk810zvN9E4zvdNGTzXTO830TjO900xP7Xa709rM9E4zvdNM77T7//EcAJzdOHu+G2++eZhmeqeZnupDvNNM7zTTO830Ths91UzvzEgv10zvtNFTs9FTyfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7jZVWMr3TTO/MRk+l0VPN9E6fw515ZUrN9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz212+1OazPTO830TjO90+7/gwOAW2d3nq+Z3mmmd5rpnTZ6qg/xTjO900zvNNM7bfRUM70zI71cM73TRk/NRk8l0zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE+1V0LJ9E4zvTMbPZVGTzXTO30Od+aVKbXRU830TjO900zvNNM7bfRUM73TTO800ztt9Ndot9ud+mamd5rpnWZ6p91/DwD2AOB6NNM7zfROMz3VTO800zsz0ss10ztt9NRs9FQyvdNM7zTTU830TjO900zvNNM7bfRUM73TTO800ztt9FR7JZRM7zTTO7PRU2n0VDO90+dwZ16ZUhs91UzvNNM7zfROM73TRk810zvN9K/ugy+9/Yn+i//6bxxm1rzdbrd7gc1M7zTTO830Trv/HgDsAcD1aKZ3mumdNnqqmd5ppndmpJdrpnfa6KnZ6KlkeqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6Kn2SiiZ3mmmd2ajp9LoqWZ6p8/hzrwypTZ6qpneaaZ3mumdZnqqmf6V5O/lp733ztuHaaZ3mumdWfN2u93uBTYzvdNM7zTTO+3+ewCwBwDXo5neaaZ32uipZnqnmd6ZkV6umd5po6dmo6eS6Z1meqeNnmqmd5rpnWZ6p5meagJwmumdZnqnmd5po6faK6FkeqeZ3pmNXkumd5rpnT6H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p5neaaOnmumdZnqn3ztpNnqqmd5ppnea6Z38BKE2eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmf7h3bh+baebN24tMxo91UzvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvbAuAHZrpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p9XGaaOnmumdZnqnmd5ppqea6Z1meqeZ3un3TpqNnmqmd5rpnWZ6Jz9Bq5neaaZ3mumdZnqnjZ5qpnea6Z1m+of0zFN3XsvV4+srNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO9sC4AdmumdZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnycZpo6ea6Z1meqeZ3mmjp5rpnWZ6p5ne6fdOmo2eaqZ3mumdZnonP0Grmd5ppnea6Z1meqeNnmqmP5s7d559XX/qjS8s00zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvbAmCHZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5psnHa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3+r2TZqOnmumdZnqnmd7JT9Bqpnea6Z1meqeZ/gxu3bx1Ss88c2eZZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnW0BsEMzvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTZUM30TjO900zvNNM7bfRUM73TTO800zv90mEz0zvN9E4zvdNM7+THZzXTO830D+TK0fHp9Txx2uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6Z1sA7NBM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO002VDO900zvNNM7zfROGz3V+OU00zvN9E6/dNjM9E4zvdNM7zTTO/nxndaFRy+cQX+ITjO90/PEaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ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2hYAOzTTO313Oc30TjO988kf+eHf+tXfXubn/uGvLtNM7zTTO230VDO900zvNNM7zfRUM73TTO/MRk8l0ztt9FQzvdNM7zTTO230VDO900zvzEZP5VLnzEKPp5neaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rp73n8yWv79dhj6zTTO830Ths9tS0Admimd/ruQi6cv/jKdWKZT/7ID6/UTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfTObPRUMr3TRk810zvN9E4zvdNGTzXTO830zmz0VO51ziz0eJrpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6V9x903vFG7ffnylZnqnmd5ppnea6almemdbAHzehT90caF7H7pAM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM70zGz2VTE810zvN9E4zvdNM77TRU830TjO9Mxs9lUxPzUgvp5neaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpndGo//YR37Q+bZv+vgyzfROGz3VTO800zvN9E4bPdVM7zzYAuDSxUv3XDh3YankbKeZ3umnO830Ths91UzvNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830zmz0VBo91UzvNNM7zfROM73TRk810zvN9M5s9FQaPTUjvZxmeqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnXtp/s1f9cICf+bd37hMM73TTO800ztt9FQzvdNM7zTTO230VDO98/kFwMm4fxoz0GvJ2U4zvdNPd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpndnoqTR6qpneaaZ3mumdZnqnjZ5qpnea6Z3Z6Kk0empGejnN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvfP7af7mGo89sU4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvbAmCHZnqnn+400ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zuz0VNp9FQzvdNM7zTTO830VDO900zvNNM7s9FTafTUjPRymumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaZHHrv1xCtu3XhsoZvLNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM72wJgh2Z6p5/uNNNTzfROM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7s9FTafRUM73TTO800ztt9FQzvdNM7zTTO7PRU2n01Iz0cprpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1m+r37wJ/98KueuHlnmVe7/DJp9NTM9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvbMtAHZopnf66U4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvTMbPZVGTzXTO830TjO900ZPNdM7zfROM70zGz2VRk/NSC+nmd5ppnfa6KlmeqeZ3mmmd5rpnTb6PXrsxovD2776fcvcq/MLNNM7bfRUGj01M73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfRUM73TTO9sC4AdmumdfrrTRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO/MRk+l0VPN9E4zvdNM77TRU830TjO900zvzEavJdM7M9LLaaZ3mumdNnqqmd5ppnea6ffixTtfXzeO37BSM73TTO800zvN9E4bPZVGT81M7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO2dfAFxavANIznaa6Z1+utNGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9E4zvdNM78xGryXTO830TjO900zvtNFTzfROM73TTO/MQK8l0zsz0stppnea6Z02eqqZ/iFdO3rqtVw9urVMM73TRk810zvN9E4zvdNM77TRU2n01Mz0TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO9sy0Admimd/rpThs91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO9MwO9lkzvNNM7zfROM73TRk810zvN9E4zvTMDvZZM78xIL6eZ3mmmP7Mnr7/t/u489bUrNdM7zfROM73TRk810zvN9E4zvdNM77TRU2n01Mz0TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO9sy0Admimd/rpThs91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO9MwO9lkzvNNM7zfROM73TRk810zvN9E4zvTMDvZZM78xIf6Y5Prp+Gk/cenaZZnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ30uipmemdZnqnjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZnpnWwDs0Ezv9NOpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnpnBnotmd5ppnea6Z1meqqZ3mmmd5rpnWZ6Zwb6B3f5QRxdPlqmmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5Jo6dmpnea6Z02eqqZ3vn/7Nn706d3Xd9x/4DKIZuQMyHIYQ1IEhMgciaAgFRQRPDEQpDCQhQrGxFQvCMRoRFiJUmlw8mik0SoElBBpqaKcoiVVXRbhY6iQ7WeaaXW1q1TGmed7fbz/N6be+/7fny6+c71mscv5JddJt+5cl3PdzO900zvtNFTzfROM73TTO800ztt9FQzvdNM7ywHgBWa6Z3+6VQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvTMGei2Z3mmmd5rpnTZ6qpneaaZ3mum37gmPe+oJ+bIH7Z2mjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z00emrM9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvbMcAFZopnf6p1PN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9M4Y6LVkeqeZ3mmmd9roqWb6rXj79bduw7Wvu3GaZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeieNnhozvdNMTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7ywHgBWa6Z3+6VQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4zPTU2eiqZ3mmmd5rp79R37v/B7XnjNTfN1EzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4aPTVmeqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3lkOACs00zv906lmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02emps9FQy/XHc42733IlHP/zyaZrpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z00emrM9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvbMcAFZopnf6p1PN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9Js594wLdu6L/9Ep0zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO8001PN9E4zvZNGT42Z3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd5YDwArN9FT/Ak4zvdNM7zTTO230VDO900zvNNM7zfRUM73TTO8009cHfvbnd8U3f+23TdNGTzXTO830TjO900xPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM76TRU2Omd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpneUAsEIbPdW/gNNM7zTTO830Ths91UzvNNM7zfROGz3VTH+s3/7dj+2i3/vsb0/TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4aPTVmeqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3lkOACu00VP9CzjN9E4zvdNM77TRU830TjO900x/1A3X3rq7fvT6m2dqpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd9LoqTHTU830TjO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830J2TvBV+ydRd/+QVHLAeA/6uNnupfwGmmd5rpnWZ6qpneaaa/wy/edrvwwZ/76DTN9E4b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0zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO8sBYIVmeqeZ3mmjp5rpnTHSyzXTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVMf0LOPOu0rTvw8v3TNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvLAeAFZrpnWZ6p42eaqZ3xkgv10zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTb92jH/a4E3LqntNnaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumd5QCwQjO900xPNdM7zfTOGOnlmumdNnqqmd5ppnea6Z02eqqZ3mmm34rv+p4XbsOV+6+YppneaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnpnOQCs0EzvtNFTzfROM70zRnq5ZnqnjZ5qpnea6Z1meqeN/k69/k0Htu17f2D/NM30TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900xPNdM7zfROM72zHABWaKZ32uipZnqnmd4ZI71cM73TRk810zvN9MfxKx/7xZ14x4/dOE0bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfQ79NTHPXszj3roE+6wHAD+H830Ths91UzvNNM7Y6SXa6anmulXOvSb/2nnPnnwt6dppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpl+e8476+I7dco9zpmmmd5ZDgArNNM7bfRUM73TTO+MkV7ur/9qqmZ6p5neaaZ3mumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfa6KlmeqeZ3mmmd9roqWZ6p5neaaZ3mumdNnqqmd5ppnea6U/UNa945xY96ynfPlMzvdNM7zTTO8sBYIVmeqeNnmqmH1x14EW75U/+7NPTjJFero2eaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnqnmd5ppnfa6KlmeqeZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6bfuZ2697YS8+Q23TtNM77TRU830TjO900zvLAeAFZrpj3X/+z1gdz3iskdN00zvNNM7Y6SXa6OnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po9+KH/qRq7bn13/r16Zppnea6Z1meqeNnmqmd5rpnWZ6Rx0A7nmPe+6uu93tHtO00VPN9E4zvdNM74yRXq6Nnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpj+9xX/H4bbvokoumaaOnmumdZnqnmd5ppqea6Z1meqeZ3mmmd/7hAHDqnj3b0EzvNNM7bfRUM73TTO800ztjpJdro6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaan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3mmmd9roqWZ6p5neaaZ3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6Z2z0VBs9lUzvNNM7zfROG/3WXbD3ohO1b99zp2mmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1memc5AKxYM73TRk810ztp9NTarpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnfGRk+10VPJ9E4z/Vbsvf8Dt+G+5z1gmjZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6ZzkArFgzvdNGTzXTO2n01Nqumd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6KlmeqeZ3mmmd8ZGrzXTb+6SSy7amQdP00zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfTOcgBYsWZ6qpneaaZ30uiptV0zvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900y/mZdc8ZodOuecM2dKo6fGTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvbMcAFasjZ5qpnea6Z00empt10zvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM32Nb+rb3Wf+4zzN9E4bPZVGT42Z3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6ZzkArFgbPdVM7zTTO2n01Nqumd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppj/W+CK7bJM10zvN9E4bPZVGT42Z3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6ZzkArFgbPdVM7zTTO2n01Nqumd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdZvoj/uQPP7/rxtfHZSf9mumdZnqnjZ5Ko6fGTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvbMcAFasjZ5qpnea6Z00empt10zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TR3+FHrvth5Nb3/utpmumd8fVx2Um/Znqnmd5po6fS6Kkx0zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM7ywHgBVro6ea6Z1meieNnlrbNdM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvTM0+quuvNb5iZ+4ZZo2eqqZ3mmmd8bXx2Un/ZrpnWZ6p42eSqOnxkzvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfROMz21HABWrJneaaZ3mumdNHpqbddM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPHUnz3/6tr5riu6dppnea6almeqeZ3mmmd8bXx2Un/ZrpnWZ6qpneSaOnxkzvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz21HABWrJneaaZ3mumdNHpqbddM7zTTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830zvVvvv5Vr37JHD/wmn8+Uxo9NWZ6p5neaaOnmumdZnqnmd4ZXx+XnfRrpnfa6KlmeieNnhozvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO2301HIAWLFmeqeZ3mmmd9LoqbVdM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfRUMz1yy823XPmCA9Nc9siHTNNM77TRU2n01JjpnWZ6p42eaqZ3mumdZnpnfH1cdtKvmd5po6ea6Z00emrM9E4zvdNGTzXTO830TjO900ZPNdM7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vdNM77TRUxuJ9cJyANhUM73TTO8001PN9M745SrXTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfTO+ORatq010zvN9FQzvdNM7zTTO+PPZY3WTO8002/b8557xfHdcMMbp2mmp5rpnWZ6p5neaaZ32uipZnqnmd5ppnea6almeqeZ3mmmd5rpnTZ6qpneaaZ3mumdZnqqmd5ppnea6Z1meqeNntpIrBeWA8CmmumdZnqnjZ5qpnfGL1e5Znqnmd5po6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ3xifXsm2tmd5po6ea6Z1meqeZ3hl/LneF/be/2ZJ3v/tnpmmmd5rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3mmmd9roqY3EemE5AGyqmd5ppnfa6Klmemf8wJVrpnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3mumdZnpnfHIt29aa6Z02eqqZ3mmmd5rpT9T4Izg51kZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz21kVgv7PQAcOrcG0AzvdNM7zTTO230VDO9M34oyzXTO830VDO900zvNNM7zfROGz3VTO800zvN9E4zPTU+vJad+JrpnTZ6qpl+6/7gs589If/z8N9MM/4rXKM10zvN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800ztt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO800zvN9E4zPdVM72wk1gvLAWBTzfROM73TRk810zvjV7JcM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFT48Nr2YmvmX6LPvTzP3eiPvjBD83UTO800zvjv8I1WjO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfTORmK9sBwANtVM7zTTO230VDO9M34lyzXTO230VDO900zvNNM7zfROGz3VTO800zvN9E4bPTU+vNZlv3bog9M00ztt9FQzvdNM74w/lzVaM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9M5GYr2wHAA21UzvNNNTzfROM70zfiXLNdM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Thv98f3t3/7dTowPr3VZM73TTE810zvN9E4zvTP+XNZozfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM7zfRUM73TTO800zvN9E4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zsbifXCcgDYVDO900ZPNdM7zfTO+JUs10zvtNFTzfROM73TTO+00VPN9E4zvdNMv5nP/dH/3qFPf/KPp2mjp8aH17qsmd5po6ea6Z1meqeZ3hl/Lmu0Znqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ6p42eaqZ3mumdZnqnmd5po6ea6Z2NxHphOQBsqpneaaOnmumdZnpn/EqWa6Z32uipZnqnmd5ppnfa6Klm+nrj1e/aFT99023TNNM7zfROGz01PrzWZc30Ths91UzvNNM7zfTO+HNZozXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvbCTWC8sBYFPN9E4bPdVM7zTTO+NXslwzPdVM7zTTO830TjP94B8/5Qm75YXf8uKZmumdZnqnmd5ppqea6Z3x4bUua6Z32uipZnqnmd5ppnfGn8sarZneaaZ3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaanmumdZnpnI7FeWA4Am2qmd9roqWZ6p5neGb+S5droqWZ6p5n+qIsuvmh3XfLw+03TTO+00VPN9E4zvdNM77TRU830zvjwWpc10ztt9FQzvdNM7zTTO+PPZY3WTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4z/da98fVvPCE3/fhPT7AcADbVTO+00VPN9E4zvTN+Jcu10R/x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eqeZ3mmmp85GTyXTO830TjO900ZPNdM7zfROM73TTE810zvN9E4zvXP+3bPdac30TjO900xPNdM7zfROM71zPpoPaM30TjO900zvNNnfr10APF4zvdNM7zTTO+fZINdGTzXTO830TjO900ZPNdPfi5/68V+u5//t85ezbVe5Znqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ66mz0VDK900zvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO+ffPdud1kzvNNM7bfRUM73TTO800zvno/mA1kzvNNM7zfROk/392gXA4zXTO830TjO9c54NeM30TjO900zvNNO/cJ/+ijf9un70+3/5kprpnbPRU9t2lWumd5rpnWZ6p5neaaOnmumdZnqnmd5po6fORk8l0zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM71z/t2z3WnN9E4zvdNGTzXTO830TjO9cz6aD2jN9E4zvdNM77xrrD///97HdgHweM30TjO900zvnM8dXjO900z/Aj377Be8O2/9ir9/Mc30Ths91UzvnI2e2rarXDO900zvNNM7zfRUM73TTO800zvN9E4bPXU2eiqZ3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6Z3z757tTmumd5rpnTZ6qpneaaZ3mumd89F8QGumd376R95+/uu3G2wXAI/XTO800zvN9M753L2wvfUbX/Non/wpL7uYZnqnmd5ppnfa6Klmeuds9NS2XeWa6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uips9FTyfROM73TRk810zvN9E4zvdNM77TRU830TjO900zvnH/3bHdaM73TTO+00VPN9E4zvdNM75yP5rZdcE/lBcB7XvYOoJneaaa/mw/8wPd7rG/89tdeTBs91UzvNNM7zfROM73TRk810ztno6e27SrXTO800zvN9E4bPdVM7zTTO830TjO900ZPnY2eSqZ3mumdNnqqmd5ppnea6Z1meqeNnmqmd5rpnWZ65/y7Z7vTmumdZnqnjZ5qpnea6e/dD/y9H3qHX/ypn76Y89Hctgvuei8Aftd/8t/d0Hv/7v/qYprpnWZ6p42eaqZ3mumdZnqnmZ5qpnea6Z2z0VPbdpVrpnea6Z1meqeNnmqmd5rpnWZ6p5meaqZ3zkZPJdM7zfROGz3VTO800zvN9E4zPdVM7zTT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c56SdG30VDK900zvpNFT27bh/eoF9Zyktm17aveSdvw7a6Z32uipZnqnmd5ppnea6almeqeZ3jnf4G3btqtfM73TTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfTOeUrSNQ9RyfROM72TRk9t24bXTO/0nKS2bXtqtwuAG2mmd5rpnWZ6p42eaqZ3mumd8w3etm27+jXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM75ynpF4LkZNM7zTTO2n01LZteM30Ts9Jatu2p3a7ALiRZnqnmd5ppnfa6KlmeqeZ3jnf4G3btqtfM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfTOeUrqtRA5yfROM72TRk9t24bXTO/0nKS2bXtq97ReALzysncAzfROM73TTO+00VPN9E4zvXO+wdu2bVe/Znqnmd5ppnfa6KlmeqeZ3mmmd5rpnTZ6qpneaaZ3mumd85TUayFykumdZnonjf6F27btxVszvdNzktq27andLgBupJneaaZ3mumdNnqqmd5ppnfON3jbtu3q10zvNNM7zfROGz3VTO800zvN9E4zPdVM7zTTO830TjO9c56Sei1ETjL93W3btqE101M9Kp1t257a7QLgRprpnWZ6p5neaaOnmumdZnrnfIO3bduufs30TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO+cpuW3btl1ybfRUM72zbdtTu10A3EgzvdNM7zTTU830TjO900zvnG/wtm3b1a+Z3mmmd5rpqWZ6p5neaaZ3mumdNnqqmd5ppnea6W/lT3zAn765N/3Nz76Y85Tctm3bLrk2eqqZ3tm27andLgBupJneaaZ32uipZnqnmd5ppnfON3jbtu3q10zvNNM7bfRUM73TTO800zvN9E4bPdVMf0M/8IP/4Lbe+tVfejHN9E4zPXUelNu2bdvF1kZPNdM727Y9tdsFwI000zvN9E4bPdVM7zTTO830zvkGb9u2Xf2a6Z1meqeNnmqmd5rpnWZ6p5n+Jr7g8z/tDr7u6//2JTXTO830TjO900ZPnQfltm3bdrG10VPN9M62bU/t7vMC4A9e9g6gmd5ppnea6Z02eqqZ3mmmd5rpnfMN3rZtu/o10zvN9E4bPdVM7zTTP8Jf+Jg/90J8yitfdjHN9E4bPdVM7zTTO830Ths9dR6U27Zt28XWRk810zvbtj212wXAjTTTO830Ths91UzvNNM7zfTO+QZv27Zd/ZrpnWZ6p43+3Xnb1/ytF+5TP+njLqaZ3mmmd5rpqWZ6p5neaaZ3mumdNnrqPCi3bdu2S66Z3mmmd7Zte2q3C4AbaaZ3mumdNnqqmd5ppnea6Z3zDd62bbv6NdPXn/6TH3IvPuKlH3YxbfRUM73TTO800ztt9FQzvdNM7zTTO830Ths9dR6U27Zt2yXXTO800zvbtj212wXAjTTTO830VDO900zvNNM7zfTO+QZv27Y9kftnP/5PLqaZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02euo8lLdt27ZLrpneaaZ3tm17arcLgBtppnfa6KlmeqeZ3mmmd5rpnfMN3rZteyLXTO800zvN9FQzvdNM7zTTO830Ths91UzvNNM7zfROMz3VTO+ch/K2bdt2yTXTO830zrZtT+12AXAjzfROGz3VTO800zvN9E4zvXO+wdu2bU/kmumdZnqnjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumd81Detm3bLrlmeqeZ3tm27andLgBupJneaaOnmumdZnqnmd5ppqfOl3jbtu3JWzO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO9cx7K27Zt2yXXTO800zvbtj212wXAjTTTO230VDO900zvNNM7bfTU+RJv27Y9eWumd5rpnTZ6qpneaaZ3mumdZnqqmd5ppnea6Z1meqeNnmqmd85Dedu2bbvkmumdZnpn27andrsAuJFmeqeNnmqmd5rpnWZ6p42eepf391e8bdu2u6yZ3mmmd9roqWZ6p5neaaZ32uipZnqnmd5ppnea6Z02eqqZ3jkP5W3btu2Sa6Z3mumdbdue2u0C4Eaa6almeqeZ3mmmd/7/NP8DF3C+VXzN9M62bdtd1kzvNNM7bfRUM73TTO800ztt9FQzvdNM7zTTO830Ths91UzvnIfytm3bdsk10zvN9M62bU/tdgFwI230VDO988c/4KUX85rPeMPFNNM751vF10zvbNu23WXN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TTE810zvN9M55KG/btm2XXDO900zvbNv21G4XADfypW/8skv66Je94mKa6Z1meqeZ3jnfKr5memfbtu0ua6Z32uipZnqnmd5ppnea6Z02eqqZ3mmmd5rpnTZ6qpneaaZ3zkN527Ztu+Sa6Z1memfbtqd293YB8NI/+8G/5q++7rMv5nu/9x9fTBs91UzvNNM7zfROMz11vlh2zfTOtm3bXdZM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9FQzvdNM75yH8rZt23bJHY1+27btxd5L3hHu70szvdNM77TRU830TjO900zvtNFT54tl10zvbNu23WXN9E4bPdVM7zTTO830TjM91UzvNNM7zfROM73TRk810zvN9M55KG/btm3btm1XvF0A3EgbPdVM7zTTO830Ths9db5Yds30zrZt213WTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO+ch/K2bdu2bdt2xdsFwE010zvN9E4zvdNM77TRU+eLZddM72zbtt1lzfROGz3VTO800zvN9E4bPdVM7zTTO830TjO900ZPNdM7zfTOeShv27Zt27ZtV7xdANxUM73TTO800zvN9E4bPXW+WHbN9M62bdtd1kxPNdM7zfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvnIfytm3btm3bdsXbBcBNNdM7zfROM73TTO+00VPni2XXTO9s27bdZW30VDO900zvNNM7zfROGz3VTO800zvN9E4bPdVM7zTTO830znkob9u2bdu2bVe8XQDcVDO900zvNNM7zfRUM71zvlh2zfTOtm3bXdZGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM75yH8rZt27Zt23bF2wXATTXTO830TjO900ZPNdM754tl10zvbNu23WVt9FQzvdNM7zTTO830VDO900zvNNM7zfROGz3VTO80079An/Lyj3533voVf+NizkN527Zt27Ztu+LtAuCmmumdZnqnmd5po6ea6Z3zxbJrpne2bdvusjZ6qpneaaZ3mumdNnqqmd5ppnea6Z1meqeN/oX4tm/+pkf7tE/82Itppnea6Z3zUN62bdu2bduueE/xBcBfvewdQDO900zvNNM7bfRUM71zvlh2zfTOtm3bXdZGTzXTO830TjO900ZPNdM7zfROM/3dfMkXfeFjff3XfNXFtNFTzfROM73TTO+ch/K2bdu2bdt2xdsFwE010zvN9E4zvdNGTzXTO+eLZddM72zbtt1xzfROM73TTO800ztt9FQz/W299IM/6IY+9RM/5mKa6Z1meqqZ3mmmd5rpnWZ65zyRt23btm3btiveLgBuqpneaaZ3mumdNnqqmd45Xyy7Znpn27btjmumd5rpnWZ6p5n+5t74RZ93Kx/1Zz/0kprpnWZ6p5neaaOnmumdZnqnmd5ppnfOE3nbtm3btm274u0C4Kaa6Z1meqeZnmqmd5rpnfPFsmumd7Zt2+64Znqnmf4mPuxP/6k7eNUnvuJimumdNnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ65zyRt23btm3btiveLgBuqpneaaZ32uipZnqnmd45Xyy7Znpn27ar3nNv/PQ7e9mHf9DFNNM7zfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900xPnQf6tm3btm3bdq3bBcBNNdM7zfROGz3VTO800zvni2XXTO9s22b3xq/4vItpo6ea6Z1meqeZ3mmjp5rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6Knz92bbtm3btm271t3zBcBLL3sH0EzvNNM7zfROGz3VTO800zvni2XXTO9s22bXTO+00VPN9E4zvdNM77TRU830TjO900zvNNM7bfRUM73TTO800ztt9NT5e7Nt27Zt27Zd63YBcFPN9E4zvdNGTzXTO830zvli2TXTU9u2wTXTU830TjO900zvNNM7bfRUM73TTO800zvN9FQzvdNM7zTTO830Ths9df7ebNu2bdu2bde6XQDcVDO900zvtNFTzfROM71zvlh2bfTUtm1wbfRUM73TTO800zvN9E4bPdVM7zTTO830Ths91UzvNNM7zfROM73TRk+dvzfbtm3btm3btW4XADfVTO8001PN9E4zvdNM75wvll0b/b/z02//kft1/su3bbvXtdFTzfROM73TTO800ztt9FQzvdNM7zTTO230VDO900zvNNM7zfROGz11/t5s27Zt27Zt17pdANxUM73TRk810zvN9E4z/Tv87M++/d49//wvXkwbPXWeGdu23eva6KnnkumdZnqnmd5ppqea6Z1meqeZ3mmmd9roqWZ6p5neaaZ3mumdNnrq/L3Ztm3btm3brnW7ALipZnqnjZ5qpn/uDa9FfuanfuJimumdZnqnjZ46z4xt2+51bfTUc8n0TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM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qpneaaZ3mumdZnrnDPTatm3btm3b9qRuFwC30EzvNNM7bfRUM73TTP/u/PD3//0X6Md/+B9dTDO9c54Z23Yda6Z3mumdNnqqmd5ppnea6Z1meqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnmZ46Gz21bdu2bdu2PanbBcAtNNM7zfROG/2785c+42NfuL/3Pd94Mc30TjO900zvnGfGtl3HmumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6fORk9t27Zt27ZtT+ru/wLgQy57B9BM7zTT10d++J+9F3/kf3+fi2mjp5rpnWZ6p5neaaanzmNj265gzfROMz3VTO800zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VNno6e2bdu2bdu2J3UvwgXAy/7cR96jV37iKy6mmd5ppnfa6KlmeqeZ3mmmd9roqfPY2LYrWDO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM7zTTU830TjO900zvNNM7bfTU2eipbdu2bdu27UndS17xMZ9w75rpnWZ6p5neaaZ32uipZnqnmd5ppnfa6Knz2Ni2K1gzvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9E4zvdNM7zTTO2301NnoqW3btm3btu1J3S4AbqGZ3mmmp5rpnWZ6p5neaaZ32uip89jYtitYM73TRk810zvN9E4zvdNM77TRU830TjO900zvtNFTzfROM73TTO800ztt9NTZ6Klt27Zt27btSd0uAG6hmd5po6ea6Z1meqeZ3mmmd9roqfPY2LYrWDO900ZPNdM7zfROM73TTE810zvN9E4zvdNM77TRU830TjO900zvNNNTzfTO2eipbdu2bdu27UndLgBuoZneaaOnmumdZnqnmd5ppnfa6Knz2Ni2K1gzvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+00VPN9E4zvdNM77TRU830ztnoqW3btm3btu1J3S4AbqGZ3mmjp5rpnWZ6p5neaaanmumd89jYtitYM73TRk810zvN9E4zvdNGTzXTO830TjO900zvtNFTzfROM73TTO+00VPN9M7Z6Klt27Zt27btSd0uAG6hmd5po6ea6Z1meqeZ3mmjp5rpnfPY2LYrWDM91UzvNNM7zfROM73TRk810zvN9E4zvdNMTzXTO830TjO900zvtNFTzfTO2eipbdu2bdu27UndLgBuoZneaaOnmumdZnqnmd5po6ea6Z3z2Ni2K1gbPdVM7zTTO830TjO900ZPNdM7zfROM73TRk810zvN9E4zvdNM77TRU++s8z/zoz+knb9t27Zt27Zt21VuFwC30ExPNdM7zfROM73TTO+00VPN9M55bGzbFayNnmqmd5rpnWZ6p5neaaOnmumdZnqnmd5po6ea6Z1meqeZ3nlHmv/6N3/xBfyjv/stl9RM75y/bdu2bdu2bdtVbhcAt9BGTzXTO830TjO900zvtNFTzfTOeWxs2xWsjZ5qpnea6Z1meqeZnmqmd5rpnWZ6p5neaaOnmumdb3vbGy/mq9/4BRfTTE810zvN9M7527Zt27Zt27Zd5XYBcAtt9FQzvdNM7zTTO830Ths91UzvnMfGtl3B2uipZnqnmd5ppnfa6KlmeqeZ3mmmd5rpkde+6i+84bWfcklv+7LXXkwzvdNM77TRU830TjO9c/62bdu2bdu2bVe5XQDcQhs91UzvNNM7zfROMz3VTO800zvnsbFtV7A2eqqZ3mmmd5rpnTZ6qpneaaa/d6/7rFe9w1/+i6+8mNe+6i9cTBs91UzvNNM7zfROGz3VTO800zvnb9u2bdu2bdt2ldsFwC200VPN9E4zvdNM77TRU830TjO9cx4b23Yda6Z3mumdZnqnmd5po79fX/IFn/+u/ubr/vLFvLPOX0AzvdNMTzXTO830TjO900zvtNFTzfROM71z/rBt27Zt27ZtV7ldANxCGz3VTO800zvN9E4bPdVM7zTTO+exsW3XsWZ6p5neaaa/L9//3W8/vPn1b7yYI9BrzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvnD9s27Zt27Zt21VuFwC300zvNNM7zfROM73TRk810zvN9M55bGzbdayZ/oV7EtZM7zTTO230VDO900zvNNM7bfRUM73TTO800zvN9E4bPdVM7zTTO+cPwLZt27Zt23aV2wXA7TTTO830TjO900zvtNFTzfROM71zHhvbtj3Na6Z3mumpZnqnmd5ppnea6Z02eqqZ3mmmd5rpnWZ6qpneaaZ3mumd8wdg27Zt27Ztu8rtAuB2mumdZnqnmd5ppnfa6KlmeqeZ3jmPjW3bnuY10ztt9FQzvdNM7zTTO830Ths91UzvNNM7zfROGz3VTO800zvN9M75A7Bt27Zt27Zd5XYBcDvN9E4zvdNM7zTTU830TjO900zvnMfGtm1P85rpnTZ6qpneaaZ3mumdZnqnjZ5qpnea6Z1meqeNnmqmd5rpnWZ65/wB2LZt27Zt265yuwC4nWZ6p5neaaZ32uipZnqnmd5ppr+t8zDYtu061kzvtNFTzfROM73TTO8001PN9E4zvdNM7zTTO230VDO900zvNNM75w/Atm3btm3bdpXbBcDtNNM7zfROM73TRk8109/cv/7pX72V8/Xatm178tZM77TRU830TjO900zvtNFTzfROM73TTO800ztt9FQzvdNM7zTTO+cPwLZt27Zt23aVe+ovAF522TuAZnqnmd5ppr+517/2DbfyD77z2y+pmd45X69t27Ynb830Ths91UzvNNM7zfROGz3VTO800zvN9E4zvdNGTzXTO830TjO9c/4AbNu2bdu2bVe5XQDcTjP9TfyxP/pH7uAvvuKzLqaZ3mmjp5rpnfP12rZte/LWTE810zvN9E4zvdNM77TRU830TjO900zvNNNTzfROM73TTO800zvnD8C2bdu2bdt2lXtSLgA+5EM+8M7e//3/p4tppnea6Z1meqeNnmqmd87Xa9u27clbGz3VTO800zvN9E4zvdNGTzXTO830TjO900ZPNdM7zfROM73TTO+cPwDbtm3btm3bVe4lr3jFS+9dGz3VTO800zvN9E4zPdVM7zTTO+frtW3b9uStjZ5qpnea6Z1meqeZ3mmjp5rpnWZ6p5neaaOnmumdZnqnmd5ppnfOH4Bt27Zt27btKrcLgNtppnea6Z02eqqZ3mmmd87Xa9u27clbGz3VTO800zvN9E4zPdVM7zTTO830TjO900ZPNdM7zfROM73TTO+cPwDbtm3btm3bVW4XALfTTO800ztt9FQzvdNM75yv17Zt25O3Nnqqmd5ppnea6Z02eqqZ3mmmd5rpnWZ6p42eaqZ3mumdZnqnmZ46fwO2bdu2bdu26xu5AHjFZe8AmumdZnqnmd5po6ea6Z1meud8vbZt2568tdFTzfROM73TTO+00VPN9E4zvdNM7zTTO230VDO900zvNNM7bfTU+Ruwbdu2bdu2Xd92AXA7zfROM73TRk810zvN9M75em3btj2Ra6Z3mumdZnqnmd5po6ea6Z1meqeZ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v74nSbaEmV6NM70XZ3qvudGrzY1eLUmOAWd6r7nRq3Gm95obvRpnei/O9F6c6b240atxpvfiTO/Fmd6LM70XN3o1zvRe2OjV5kzvxZlejTO9F2d6L870XpzpvTDQ282Z3oszvRfX/AV1AFje/PqeJNkSNno1zvRenOm95kavNjd6tSQ5BpzpveZGr8aZ3mtu9Gqc6b0403txpvfiRq/Gmd6LM70XZ3ovzvRe3OjVONN7YaNXmzO9Fzd6Nc70XpzpvTjTe3Gm98JAbzdnei/O9FIvPfvUvWfv718HgL2a3+CTJJvBRq/Gmd6LM73X3OjV5kavliTHgDO919zo1TjTq82Z3oszvRdnei/O9F7c6NU403txpvfiTO/Fmd6LG70aZ3ovbPRqc6b34kavxpneizO9F2d6L870XhjolV598fNvdf/FJzbrpWef2iyu+QvqALBX8xt8kmQz2OjVONN7cab3mhu92tzo1ZLkGHCm95obvRo3erU503txpvfiTO/Fmd6LG70aZ3ovzvRenOm9ONOrcab34kzvhY1ebc70Xtzo1TjTe3Gm9+JMv2K3P/fJB7v75ce27O11foM403txpvfimr+gDgB7Nb/BJ0k2g41ejTO9F2d6r7nRq82N3i5JDh5neq+50atxo1ebM70XZ3ovzvRenOm9uNGrcab34kzvxZneixu9Gmd6L870Xtjo1eZM78WNXo0z/f4988SnLu3245/crndu9Grc6NU403txpvfiTO/FNX9BHQD+rG98/WJBSZIbg41ejTO9F2d6r7nRq82B3i5JDh5neq+50atxo1ebM70XZ3ovzvRenOnVONN7cab34kzvxZneixu9Gmd6L870Xtjo1eZMv2f37/zuu/XilzaNM73X3OjVMNN7caNX40zvxZneizO9F9f8BV3jAPB9/+z7l/WR//3QZnGjV0uS3CTM9F6c6b0403vNjV5tDvR2SXLwONN7zY1ejRu92pzpvTjTe3Gm9+JGr8aZ3oszvRdnei/O9F7c6NU403txpl/Wy08//J69cud3N4szvRpnei/O9F5zo1fDTO/FjV6NM70XZ3ovzvReXPMXdIt7/epxpvfiRq+WJLlJmOm9ONN7cab3mhu92hzo7ZLk4HGm95obvRo3erU503txpvfiTO/FjV6NM70XZ3ovzvRenOm9uNEv6KUvfmLH/uCphzaL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", - "fileSize": "234 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA14": [ - { - "startTime": 1676891420248, - "executionTime": 1533, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "date": "2019-05-05", - "explanation": "This is not a solar eclipse. Pictured here is a busy vista of moons and rings taken at Saturn. The large circular object in the center of the image is Titan, the largest moon of Saturn and one of the most intriguing objects in the entire Solar System. The dark spot in the center is the main solid part of the moon. The bright surrounding ring is atmospheric haze above Titan, gas that is scattering sunlight to a camera operating onboard the robotic Cassini spacecraft. Cutting horizontally across the image are the rings of Saturn, seen nearly edge on. At the lower right of Titan is Enceladus, a small moon of Saturn. Since the image was taken pointing nearly at the Sun, the surfaces of Titan and Enceladus appear in silhouette, and the rings of Saturn appear similar to a photographic negative. Now if you look really really closely at Enceladus, you can see a hint of icy jets shooting out toward the bottom of the image. It is these jets that inspired future proposals to land on Enceladus, burrow into the ice, and search for signs of extraterrestrial life.", - "hdurl": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg", - "media_type": "image", - "service_version": "v1", - "title": "Saturn, Titan, Rings, and Haze", - "url": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg" - }, - "binary": { - "data": { - "mimeType": "image/jpeg", - "fileType": "image", - "fileExtension": "jpg", - "data": "/9j/4AAQSkZJRgABAgAAZABkAAD//gASQWRvYmUgSW1hZ2VSZWFkef/sABFEdWNreQABAAQAAAA8AAD/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAJ8BDgDAREAAhEBAxEB/8QAkQABAQEAAgMBAAAAAAAAAAAAAAECAwUEBgcIAQEAAAAAAAAAAAAAAAAAAAAAEAEAAQMBBAYFBwgHBgMIAwEAARECAwQhEgUGMUFRExQHYXGR0RWBIjJSkhYXocHhQoJTg5OxI0NEVEVVYnLSM3MINDVG8aLiYyQ2VifwoyUYEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwD8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsASCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoEggAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAQAAAAFAoCAAsAAUAoCAoFAAQAAAFoBQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQQAFoCAAsASCAAAAAsASCAAsAoAICAoKCSACAAAsASCAAAAAAAAAoIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwBIEAAgALAEggAAAALAEggALAKACAgKCgAkggAALAEggAAAAAAAALAEggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKCAgAAALAAIACwCgAAyADQAJIIACwCgAgIACwCgAAyACwBIIAAAACwACAAsAoJIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgSBAEggAKCgAgIAAACwACAAsAoAAMgAsAoJIIACwCgAgICgoAAAMgAsAoJIIAACwCggIACwCgkggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBIEASCAsQCgAAgIAC0AoBQAEABYBQAAZBaAAoJIIACwCgAgICgoAAAMgAsAoJIIAACwCggIACwCgAlAQAAFgCgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0AoACAAAAAAAAAoEwBAEggLAKAACAgALAKACAgALAKAACUBQAASQQAFgFABAQFBQAAAZABYBQQCgIACwCggIACwCgAgIAACwBIIAAACgUBAAAAAAAAAAAAAAWgFAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgASQQAAAFBAAAAUFABJBAWAUAAEBAAWAUAEBAAWAUAAAAAAEkEBaAAoAAJQFAAAABKAgLAKAADIALAKCAgALAKACAgAALAEggAAKBAAIAAAAAAAAAAAACgQBIIAAAACggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAkggAAALAEgQCAAoKACSCAsAoAAICAAsAoAICAAsAoAAEdAICgAkggNAAAAAAAAAAAAyCwCgAAyACwCggIACwCgAgIAACwBIIAACwCggIAAAAAAAAAAAACwCgkggAAALAKDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAACSCAAAsAoJIIACgoAEAlwEAoAAICAAsAoAAAMgsAoAAAAAAAAGzsAAAAAAAAAAAAAAAAAAAABAQAFgFABAQAAFgCQQAAAFgAEAABYBQQEABYAkEAABYBQAQEAABYBQZAAAAAAAAAAAAAABQKAgAAAAAAAAKBQCgFAJBAWAUAAAAEoACAsAoJIIACgoAAAAAAAAJQCgKAAAACUBQAAWgFAKAUBnaBtBQUEkACAWgFAQAAAAACegEgFAAAAAABAQAFgFABAQAAFgCQQAAAFgAEAABYBQQEABYAABAAWAUAEBAAAAUEAAAAAAAAAAAAAABYBQZAAAAAAAABYBQAASgFAKAoAAAAAJIICwCggFAQFBQAAAAAAAAAAAAIAoBQCgFAKAtAAAAJBIgFBKAoFASgLQAACgJQCgFAAKASCAoAAAAAAAJQCgKAACAgAALAEggAAALAAIAACwCggIACwCgAlAQFgFAABAQAAFgEAAAAAAAAAAAAAABYBQSgIAAAAAAACwCgAAAAAAAAAAAkwCAsAoAICAoKAAAAAAAAA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AAAAAAAEkCAWQQAAAAAAAEkCAUEBAAWAUAEBAAAWAJBAAAAWAAQAAFgFBAQAAAAAAAFgFBAQAAAFgEAAAAAAAAAAAAAAAAAAAAAAAAABQKAgKBMgAQCgAAAAgIACwBIHSCAAoKAAAAAAAAABE7AKgVAqBUFAAAAAAAAAAAAA6wJAABKgVAAAqAAAAAAAACSBAKCAgALAKACAgAALAEggAAALAAIAACgVAqCAAAAAAAAsASBUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQKggLUCQQFgFAABKgVAqCAAsASBAIACgoAAAAAAAAAEdAAAAAFQKgVBaglQKgoAFQSoLUAACm0CoAJUAAAAAAAAAAAAEqABAKCAgALAKACAgAALAEggAAALAFQQAAAAAAAAAAAAAFgCQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAFABJBAAAAWAJBAAAUFAAAAAAAABAAUAAAAAAAAAFqBUEkACAUACAASQAAAI6QJAABAAUAAEBAAWAUEBAAWAUAEBAAAWAJBAAAAAAAAAAAAapAICAAAAAAsASCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ACSCAAAAAAAAAoKAACSCgAAAgIACwCgAAAAAAAAkAdYLIAAAAAAAAAAAAAAMgAsAoJIIAACwCggIACwCgAgIAACwBIIAAAAAAAAAAADQMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoEgQBIICwCgAAgIACwCgAgIACwCgAAAAAAAAAAAAgICgoAAAMgAsAoJIIAACwCggIACwCgAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgSCAoICwCgAAgIACwCgAgIACwCgAAlQUAAEAqBUAFABAQFqACgAAyACwCgkggAAALUCoIACwCgAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1ABAAAWJoCgAAgIACwCgAgIACwCgAAyCgoAJIIACwCgAgIC0ABQAAZABYAAqCAAAAAAAAtQKgVAqCAAAAAAAAAAAAAAAAAtAQAAAAAAAAAAAAAA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", - "fileName": "TitanBusy_Cassini_1080.jpg", - "fileSize": "23.4 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA13": [ - { - "startTime": 1676891421782, - "executionTime": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "date": "2019-05-05", - "explanation": "This is not a solar eclipse. Pictured here is a busy vista of moons and rings taken at Saturn. The large circular object in the center of the image is Titan, the largest moon of Saturn and one of the most intriguing objects in the entire Solar System. The dark spot in the center is the main solid part of the moon. The bright surrounding ring is atmospheric haze above Titan, gas that is scattering sunlight to a camera operating onboard the robotic Cassini spacecraft. Cutting horizontally across the image are the rings of Saturn, seen nearly edge on. At the lower right of Titan is Enceladus, a small moon of Saturn. Since the image was taken pointing nearly at the Sun, the surfaces of Titan and Enceladus appear in silhouette, and the rings of Saturn appear similar to a photographic negative. Now if you look really really closely at Enceladus, you can see a hint of icy jets shooting out toward the bottom of the image. It is these jets that inspired future proposals to land on Enceladus, burrow into the ice, and search for signs of extraterrestrial life.", - "hdurl": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg", - "media_type": "image", - "service_version": "v1", - "title": "Saturn, Titan, Rings, and Haze", - "url": "https://apod.nasa.gov/apod/image/1905/TitanBusy_Cassini_1080.jpg" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA1": [ - { - "startTime": 1676891421783, - "executionTime": 1052, - "source": [ - { - "previousNode": "NASA" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "links": { - "object": true - }, - "id": "2000433", - "neo_reference_id": "2000433", - "name": "433 Eros (A898 PA)", - "name_limited": "Eros", - "designation": "433", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2000433", - "absolute_magnitude_h": 10.31, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "orbital_data": { - "object": true - }, - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "NASA2": [ - { - "startTime": 1676891422835, - "executionTime": 1487, - "source": [ - { - "previousNode": "NASA1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "links": { - "object": true - }, - "id": "3404768", - "neo_reference_id": "3404768", - "name": "(2008 EE5)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3404768", - "absolute_magnitude_h": 19.71, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": true, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "3775203", - "neo_reference_id": "3775203", - "name": "(2017 LW)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3775203", - "absolute_magnitude_h": 25.4, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "3776070", - "neo_reference_id": "3776070", - "name": "(2017 MB4)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3776070", - "absolute_magnitude_h": 22.5, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "3781896", - "neo_reference_id": "3781896", - "name": "(2017 SN16)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3781896", - "absolute_magnitude_h": 23.3, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "3827141", - "neo_reference_id": "3827141", - "name": "(2018 QS1)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3827141", - "absolute_magnitude_h": 27.6, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "3843318", - "neo_reference_id": "3843318", - "name": "(2019 NC7)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3843318", - "absolute_magnitude_h": 22.12, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54049890", - "neo_reference_id": "54049890", - "name": "(2020 PC)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54049890", - "absolute_magnitude_h": 28, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54050981", - "neo_reference_id": "54050981", - "name": "(2020 PC1)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54050981", - "absolute_magnitude_h": 25.3, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54051038", - "neo_reference_id": "54051038", - "name": "(2020 PL2)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54051038", - "absolute_magnitude_h": 23.06, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54051142", - "neo_reference_id": "54051142", - "name": "(2020 PX5)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54051142", - "absolute_magnitude_h": 29.56, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54051158", - "neo_reference_id": "54051158", - "name": "(2020 PA6)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54051158", - "absolute_magnitude_h": 22.75, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - }, - { - "json": { - "links": { - "object": true - }, - "id": "54192746", - "neo_reference_id": "54192746", - "name": "(2021 RQ2)", - "nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=54192746", - "absolute_magnitude_h": 29.54, - "estimated_diameter": { - "object": true - }, - "is_potentially_hazardous_asteroid": false, - "close_approach_data": [ - "json array" - ], - "is_sentry_object": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "NASA2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2023-02-20T11:09:57.881Z", - "stoppedAt": "2023-02-20T11:10:24.325Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/81-snapshot.json b/test-workflows/snapshots/81-snapshot.json deleted file mode 100644 index ce49774b8a..0000000000 --- a/test-workflows/snapshots/81-snapshot.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011096, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Phantombuster": [ - { - "startTime": 1747344011096, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 62, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "8756817235927468", - "name": "Email Extractor", - "createdAt": 1614591862755, - "scriptOrgName": "phantombuster", - "scriptId": "6774", - "script": "Email Extractor.js", - "branch": "master", - "environment": "release", - "manifest": { - "object": true - }, - "lastEndType": "finished", - "lastEndedAt": 1747343954267, - "lastExitCode": 0, - "nbContainersRunning": 0, - "runningTime": { - "object": true - }, - "launchType": "manually", - "s3Folder": "UKSkFmaigVohTti7pkwW0A" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Phantombuster1": [ - { - "startTime": 1747344011158, - "executionIndex": 2, - "source": [ - { - "previousNode": "Phantombuster" - } - ], - "hints": [], - "executionTime": 73, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "8756817235927468", - "scriptOrgName": "phantombuster", - "scriptId": "6774", - "script": "Email Extractor.js", - "branch": "master", - "environment": "release", - "argument": "{\n\t\"urls\": [\n\t\t\"https://n8n.io/\"\n\t],\n\t\"timeToWait\": 5000,\n\t\"pagesPerLaunch\": 1,\n\t\"onlyGetOneEmail\": false\n}", - "code": { - "object": true - }, - "launchType": "manually", - "nbLaunches": 2262, - "s3Folder": "UKSkFmaigVohTti7pkwW0A", - "orgS3Folder": "sTTpLenO2iY", - "updatedAt": 1614591972895, - "name": "Email Extractor", - "fileMgmt": "mix", - "lastEndType": "finished" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Phantombuster2": [ - { - "startTime": 1747344011231, - "executionIndex": 3, - "source": [ - { - "previousNode": "Phantombuster1" - } - ], - "hints": [], - "executionTime": 599, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "containerId": "670158012016736" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Phantombuster3": [ - { - "startTime": 1747344011830, - "executionIndex": 4, - "source": [ - { - "previousNode": "Phantombuster2" - } - ], - "hints": [], - "executionTime": 60, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "containerId": "670158012016736", - "status": "running", - "output": "", - "outputPos": 0, - "isAgentRunning": false, - "canSoftAbort": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Phantombuster3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.096Z", - "stoppedAt": "2025-05-15T21:20:11.890Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/83-snapshot.json b/test-workflows/snapshots/83-snapshot.json deleted file mode 100644 index de0fc02456..0000000000 --- a/test-workflows/snapshots/83-snapshot.json +++ /dev/null @@ -1,933 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011255, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "RSS Feed Read": [ - { - "startTime": 1747344011255, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 444, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "title": "Bolto", - "link": "https://www.producthunt.com/posts/bolto-3", - "pubDate": "2025-03-11T23:04:40.000Z", - "author": "Garry Tan", - "content": "

\n Find, interview, and hire engineers with AI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/941021", - "isoDate": "2025-03-11T23:04:40.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Flowise", - "link": "https://www.producthunt.com/posts/flowise", - "pubDate": "2025-05-13T08:49:36.000Z", - "author": "Garry Tan", - "content": "

\n Build AI agents, visually\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964762", - "isoDate": "2025-05-13T08:49:36.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Tolt", - "link": "https://www.producthunt.com/posts/tolt", - "pubDate": "2024-09-19T10:10:07.000Z", - "author": "Daniel", - "content": "

\n All-in-one affiliate marketing software for SaaS startups\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/490699", - "isoDate": "2024-09-19T10:10:07.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "HubSpot Meeting Scheduler in Email", - "link": "https://www.producthunt.com/posts/hubspot-meeting-scheduler-in-email", - "pubDate": "2025-05-14T10:33:26.000Z", - "author": "Zeeshan Akhtar", - "content": "

\n More meetings. Less drop-offs.\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965345", - "isoDate": "2025-05-14T10:33:26.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "1Stroke", - "link": "https://www.producthunt.com/posts/1stroke", - "pubDate": "2025-05-12T17:02:24.000Z", - "author": "Mo-Acen", - "content": "

\n Right click and reply with AI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964508", - "isoDate": "2025-05-12T17:02:24.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "OpenMemory MCP", - "link": "https://www.producthunt.com/posts/openmemory-mcp", - "pubDate": "2025-05-14T10:06:56.000Z", - "author": "Zac Zuo", - "content": "

\n Your private, local memory layer for all AI tools\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965334", - "isoDate": "2025-05-14T10:06:56.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "PhraseClip", - "link": "https://www.producthunt.com/posts/phraseclip", - "pubDate": "2025-05-14T18:48:55.000Z", - "author": "Maciej", - "content": "

\n Improve your vocabulary as you browse the web\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965516", - "isoDate": "2025-05-14T18:48:55.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Mukh.1", - "link": "https://www.producthunt.com/posts/mukh-1", - "pubDate": "2025-05-14T19:17:30.000Z", - "author": "Farrukh Anwaar", - "content": "

\n Automate work with AI agents\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965528", - "isoDate": "2025-05-14T19:17:30.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Friendzone", - "link": "https://www.producthunt.com/posts/friendzone-2", - "pubDate": "2025-05-14T15:01:49.000Z", - "author": "Jan Früchtl", - "content": "

\n Privacy-first second brain for relationships\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965471", - "isoDate": "2025-05-14T15:01:49.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Museboard", - "link": "https://www.producthunt.com/posts/museboard", - "pubDate": "2025-05-14T19:28:59.000Z", - "author": "Sage Causie", - "content": "

\n Moodboarding made simple—for creators, by a creator\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965531", - "isoDate": "2025-05-14T19:28:59.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Files Magic AI ", - "link": "https://www.producthunt.com/posts/files-magic-ai", - "pubDate": "2025-05-08T14:10:38.000Z", - "author": "Gowtham V", - "content": "

\n AI based Files organization for macOS\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/962798", - "isoDate": "2025-05-08T14:10:38.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Granola 2.0", - "link": "https://www.producthunt.com/posts/granola-2-0", - "pubDate": "2025-05-14T19:39:09.000Z", - "author": "Chris Messina", - "content": "

\n A second brain for your team\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965535", - "isoDate": "2025-05-14T19:39:09.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Plakar", - "link": "https://www.producthunt.com/posts/plakar", - "pubDate": "2025-05-08T04:28:26.000Z", - "author": "Victor Coisne", - "content": "

\n Effortless open source backup platform\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/962548", - "isoDate": "2025-05-08T04:28:26.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Material 3 Expressive", - "link": "https://www.producthunt.com/posts/material-3-expressive", - "pubDate": "2025-05-14T07:04:45.000Z", - "author": "Ankit Sharma", - "content": "

\n Build more engaging, easy-to-use products\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965231", - "isoDate": "2025-05-14T07:04:45.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Phala Cloud", - "link": "https://www.producthunt.com/posts/phala-cloud", - "pubDate": "2025-05-14T00:27:59.000Z", - "author": "Marvin Tong", - "content": "

\n Zero-trust cloud for safe AGI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965089", - "isoDate": "2025-05-14T00:27:59.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "RustScan", - "link": "https://www.producthunt.com/posts/rustscan", - "pubDate": "2025-05-14T08:38:01.000Z", - "author": "Rishabh Kumar", - "content": "

\n Fast and developer-friendly Rust contract security scanner\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965281", - "isoDate": "2025-05-14T08:38:01.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Joyn", - "link": "https://www.producthunt.com/posts/joyn-4", - "pubDate": "2025-05-13T01:35:25.000Z", - "author": "Larissa Licha", - "content": "

\n Align product teams with the people closest to customers\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964623", - "isoDate": "2025-05-13T01:35:25.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "PixVerse V4.5", - "link": "https://www.producthunt.com/posts/pixverse-v4-5", - "pubDate": "2025-05-14T10:32:34.000Z", - "author": "Zac Zuo", - "content": "

\n Cinematic AI video with pro camera controls & fusion\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965344", - "isoDate": "2025-05-14T10:32:34.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Macrodata Refinement Application", - "link": "https://www.producthunt.com/posts/macrodata-refinement-application", - "pubDate": "2025-05-14T15:55:33.000Z", - "author": "Louie Garofalo", - "content": "

\n Uncover hidden emotions with Macrodata Refinement\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965484", - "isoDate": "2025-05-14T15:55:33.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Opusense", - "link": "https://www.producthunt.com/posts/opusense", - "pubDate": "2025-05-13T17:51:22.000Z", - "author": "Garry Tan", - "content": "

\n AI-generated reports for site inspections\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964981", - "isoDate": "2025-05-13T17:51:22.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Dolphin AI", - "link": "https://www.producthunt.com/posts/dolphin-ai", - "pubDate": "2025-05-11T18:56:18.000Z", - "author": "Ilai Szpiezak", - "content": "

\n Track customer requests from calls on autopilot\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964114", - "isoDate": "2025-05-11T18:56:18.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Sahha Insights API", - "link": "https://www.producthunt.com/posts/sahha-insights-api", - "pubDate": "2025-05-01T04:53:53.000Z", - "author": "Aleks Dahlberg", - "content": "

\n Reveal the patterns in your users' lives that matter most\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/959879", - "isoDate": "2025-05-01T04:53:53.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Ad Tracker for AdMob", - "link": "https://www.producthunt.com/posts/ad-tracker-for-admob", - "pubDate": "2025-05-13T14:21:40.000Z", - "author": "D:Zero", - "content": "

\n A clean, reliable AdMob analytics app\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964905", - "isoDate": "2025-05-13T14:21:40.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "NotionApps 2.0", - "link": "https://www.producthunt.com/posts/notionapps-2-0", - "pubDate": "2024-10-24T13:46:19.000Z", - "author": "Kevin William David", - "content": "

\n Build web apps & portals from Notion without coding\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/534081", - "isoDate": "2024-10-24T13:46:19.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Gadget", - "link": "https://www.producthunt.com/posts/gadget-3", - "pubDate": "2025-04-21T20:57:16.000Z", - "author": "Robleh Jama", - "content": "

\n The fastest way to build and scale apps with AI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/956117", - "isoDate": "2025-04-21T20:57:16.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Tokenomy.ai", - "link": "https://www.producthunt.com/posts/tokenomy-ai", - "pubDate": "2025-05-09T21:46:09.000Z", - "author": "Mahesh Lambe", - "content": "

\n See your LLM token bill before you hit send.\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/963421", - "isoDate": "2025-05-09T21:46:09.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Better Off 2.0", - "link": "https://www.producthunt.com/posts/better-off-2-0", - "pubDate": "2025-05-13T18:05:26.000Z", - "author": "Danielle Juncal", - "content": "

\n Build your online will or trust for free\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964984", - "isoDate": "2025-05-13T18:05:26.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Airbnb Services and Experiences", - "link": "https://www.producthunt.com/posts/airbnb-services-and-experiences", - "pubDate": "2025-05-13T20:46:46.000Z", - "author": "Chris Messina", - "content": "

\n Now you can Airbnb more than an Airbnb\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965062", - "isoDate": "2025-05-13T20:46:46.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "One Click Deploy", - "link": "https://www.producthunt.com/posts/one-click-deploy", - "pubDate": "2025-05-13T20:40:49.000Z", - "author": "Ella", - "content": "

\n Deploy your LiveKit Voice AI agents instantly\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965061", - "isoDate": "2025-05-13T20:40:49.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "SafeTrigger", - "link": "https://www.producthunt.com/posts/safetrigger", - "pubDate": "2025-04-24T20:10:53.000Z", - "author": "Mateusz Piórowski", - "content": "

\n Zero-knowledge vault - secure files, share on your terms\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/957531", - "isoDate": "2025-04-24T20:10:53.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Life, The Human Network", - "link": "https://www.producthunt.com/posts/life-the-human-network", - "pubDate": "2025-05-13T11:49:40.000Z", - "author": "Julien Belmont", - "content": "

\n What social networks always should have been\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964847", - "isoDate": "2025-05-13T11:49:40.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Timesible", - "link": "https://www.producthunt.com/posts/timesible", - "pubDate": "2025-05-06T14:13:58.000Z", - "author": "Amine Barchid", - "content": "

\n From Task to Invoice, without switching tools\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/961881", - "isoDate": "2025-05-06T14:13:58.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Basin MCP", - "link": "https://www.producthunt.com/posts/basin-mcp", - "pubDate": "2025-05-13T13:36:38.000Z", - "author": "Henry Lee", - "content": "

\n Stop your Cursor / Windsurf from hallucinating w/ a MCP tool\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964885", - "isoDate": "2025-05-13T13:36:38.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Kazu Navi (かずナビ)", - "link": "https://www.producthunt.com/posts/kazu-navi", - "pubDate": "2025-05-02T09:14:00.000Z", - "author": "Daniel Ramón Robertson", - "content": "

\n Learn Japanese with clarity, context, and confidence\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/960308", - "isoDate": "2025-05-02T09:14:00.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Unitor", - "link": "https://www.producthunt.com/posts/unitor", - "pubDate": "2025-05-13T04:04:20.000Z", - "author": "Jiva", - "content": "

\n Quickly compare unit prices while shopping smarter.\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964654", - "isoDate": "2025-05-13T04:04:20.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Document Parser by Contextual AI", - "link": "https://www.producthunt.com/posts/document-parser-by-contextual-ai", - "pubDate": "2025-05-13T07:04:45.000Z", - "author": "Jay Chen", - "content": "

\n Multimodal document parser designed for RAG systems\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964719", - "isoDate": "2025-05-13T07:04:45.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Shadow", - "link": "https://www.producthunt.com/posts/shadow-269237dc-c19b-45da-baf7-13cec35e4430", - "pubDate": "2025-03-05T11:01:25.000Z", - "author": "Ben Lang", - "content": "

\n Meet once, stay ahead—Shadow helps you follow through\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/938521", - "isoDate": "2025-03-05T11:01:25.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Generated Assets", - "link": "https://www.producthunt.com/posts/generated-assets", - "pubDate": "2025-05-13T17:00:20.000Z", - "author": "Michael Thomas", - "content": "

\n Turn any idea into an investable index with AI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964967", - "isoDate": "2025-05-13T17:00:20.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "TikTok AI Alive", - "link": "https://www.producthunt.com/posts/tiktok-ai-alive", - "pubDate": "2025-05-14T02:54:37.000Z", - "author": "Zac Zuo", - "content": "

\n Bringing your photos to life on TikTok Stories\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/965115", - "isoDate": "2025-05-14T02:54:37.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "GMSSH", - "link": "https://www.producthunt.com/posts/gmssh", - "pubDate": "2025-05-13T07:23:25.000Z", - "author": "JasperChen", - "content": "

\n Enable everyone to manage servers simply and efficiently\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964727", - "isoDate": "2025-05-13T07:23:25.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Webifier.io", - "link": "https://www.producthunt.com/posts/webifier-io-2", - "pubDate": "2025-05-05T06:58:35.000Z", - "author": "Ali Bockerwey", - "content": "

\n Generate beautiful React websites with AI\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/961225", - "isoDate": "2025-05-05T06:58:35.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Nayla", - "link": "https://www.producthunt.com/posts/nayla", - "pubDate": "2025-05-13T06:45:25.000Z", - "author": "Yannick", - "content": "

\n The all-in-one AI browser & workspace that works for you\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964704", - "isoDate": "2025-05-13T06:45:25.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Zoho Forms", - "link": "https://www.producthunt.com/posts/zoho-forms", - "pubDate": "2025-05-05T06:02:04.000Z", - "author": "Shobana Sruthi Mohan", - "content": "

\n One form builder. Endless possibilities for every business. \n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/961212", - "isoDate": "2025-05-05T06:02:04.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "AppearOnAI ", - "link": "https://www.producthunt.com/posts/appearonai", - "pubDate": "2025-05-10T18:17:12.000Z", - "author": "Chris Messina", - "content": "

\n Get recommended by ChatGPT, Gemini, and Claude\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/963753", - "isoDate": "2025-05-10T18:17:12.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Asendia AI", - "link": "https://www.producthunt.com/posts/asendia-ai-2", - "pubDate": "2025-05-08T02:48:51.000Z", - "author": "Rihab Lajmi", - "content": "

\n Land your dream job 10x faster with Sarah, your AI job agent\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/962527", - "isoDate": "2025-05-08T02:48:51.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "CoLaunchly", - "link": "https://www.producthunt.com/posts/colaunchly", - "pubDate": "2025-04-30T07:39:29.000Z", - "author": "Alex Cloudstar", - "content": "

\n Launch your app faster. With zero guesswork\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/959493", - "isoDate": "2025-04-30T07:39:29.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Probo", - "link": "https://www.producthunt.com/posts/probo", - "pubDate": "2025-04-14T16:19:02.000Z", - "author": "Garry Tan", - "content": "

\n Compliance for Startups to get SOC2/ISO27001/HIPAA in a week\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/953388", - "isoDate": "2025-04-14T16:19:02.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Zetta", - "link": "https://www.producthunt.com/posts/zetta-2", - "pubDate": "2025-05-10T19:22:28.000Z", - "author": "Tyler Hanson", - "content": "

\n Automated business intelligence platform\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/963766", - "isoDate": "2025-05-10T19:22:28.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "Xogot", - "link": "https://www.producthunt.com/posts/xogot", - "pubDate": "2025-05-12T14:11:10.000Z", - "author": "Joseph Hill", - "content": "

\n Godot-powered game dev for iPad\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964449", - "isoDate": "2025-05-12T14:11:10.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - }, - { - "json": { - "title": "RADiCAL", - "link": "https://www.producthunt.com/posts/radical-3", - "pubDate": "2025-05-12T16:22:25.000Z", - "author": "Alice Gardner", - "content": "

\n AI motion capture meets 3D storytelling\n

\n

\n Discussion\n |\n Link\n

\n", - "contentSnippet": "Discussion\n |\n Link", - "id": "tag:www.producthunt.com,2005:Post/964497", - "isoDate": "2025-05-12T16:22:25.000Z" - }, - "pairedItem": [ - { - "item": 0 - } - ] - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011699, - "executionIndex": 2, - "source": [ - { - "previousNode": "RSS Feed Read" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.255Z", - "stoppedAt": "2025-05-15T21:20:11.701Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/84-snapshot.json b/test-workflows/snapshots/84-snapshot.json deleted file mode 100644 index f5884c6efb..0000000000 --- a/test-workflows/snapshots/84-snapshot.json +++ /dev/null @@ -1,425 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011379, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix1": [ - { - "startTime": 1747344011379, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 689, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "room_id": "!ypfCPlfKrBrGazVcnF:matrix.org" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix": [ - { - "startTime": 1747344012068, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 94, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "user_id": "@nodeqa:matrix.org", - "is_guest": false, - "device_id": "PLEEGTGUHF" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix6": [ - { - "startTime": 1747344012162, - "executionIndex": 3, - "source": [ - { - "previousNode": "Matrix1" - } - ], - "hints": [], - "executionTime": 212, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "event_id": "$kVxYRJWbL1iz3wDwRbwnLqRml0tzD1IlASrt_zIXCcg" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix5": [ - { - "startTime": 1747344012374, - "executionIndex": 4, - "source": [ - { - "previousNode": "Matrix1" - } - ], - "hints": [], - "executionTime": 89, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "content": { - "object": true - }, - "origin_server_ts": 1747344011660, - "room_id": "!ypfCPlfKrBrGazVcnF:matrix.org", - "sender": "@nodeqa:matrix.org", - "state_key": "@nodeqa:matrix.org", - "type": "m.room.member", - "unsigned": { - "object": true - }, - "event_id": "$Xd9yYLKJvQ2FjGwigm8WTvS-hKU9AJgGnzFxfCUmmf8", - "user_id": "@nodeqa:matrix.org", - "age": 836 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Read Binary File": [ - { - "startTime": 1747344012463, - "executionIndex": 5, - "source": [ - { - "previousNode": "Matrix1" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "room_id": "!ypfCPlfKrBrGazVcnF:matrix.org" - }, - "binary": { - "data": { - "mimeType": "image/png", - "fileType": "image", - "fileExtension": "png", - "data": "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", - "directory": "/tmp", - "fileName": "n8n-logo.png", - "fileSize": "2.67 kB" - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix7": [ - { - "startTime": 1747344012464, - "executionIndex": 6, - "source": [ - { - "previousNode": "Matrix6" - } - ], - "hints": [], - "executionTime": 175, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "content": { - "object": true - }, - "origin_server_ts": 1747344012300, - "room_id": "!ypfCPlfKrBrGazVcnF:matrix.org", - "sender": "@nodeqa:matrix.org", - "type": "m.room.message", - "unsigned": { - "object": true - }, - "event_id": "$kVxYRJWbL1iz3wDwRbwnLqRml0tzD1IlASrt_zIXCcg", - "user_id": "@nodeqa:matrix.org", - "age": 360 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix8": [ - { - "startTime": 1747344012639, - "executionIndex": 7, - "source": [ - { - "previousNode": "Read Binary File" - } - ], - "hints": [], - "executionTime": 642, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "event_id": "$oiL2HmdbP5xQNk-XvDlULVgqsI2dB4bY40qU0GFpFtY" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix2": [ - { - "startTime": 1747344013281, - "executionIndex": 8, - "source": [ - { - "previousNode": "Matrix7" - } - ], - "hints": [], - "executionTime": 427, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix9": [ - { - "startTime": 1747344013708, - "executionIndex": 9, - "source": [ - { - "previousNode": "Matrix8" - } - ], - "hints": [], - "executionTime": 335, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "content": { - "object": true - }, - "origin_server_ts": 1747344013157, - "room_id": "!ypfCPlfKrBrGazVcnF:matrix.org", - "sender": "@nodeqa:matrix.org", - "type": "m.room.message", - "unsigned": { - "object": true - }, - "event_id": "$oiL2HmdbP5xQNk-XvDlULVgqsI2dB4bY40qU0GFpFtY", - "user_id": "@nodeqa:matrix.org", - "age": 910 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix3": [ - { - "startTime": 1747344014043, - "executionIndex": 10, - "source": [ - { - "previousNode": "Matrix2" - } - ], - "hints": [], - "executionTime": 299, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "startTime": 1747344014342, - "executionIndex": 11, - "source": [ - { - "previousNode": "Matrix3" - }, - { - "previousNode": "Matrix9" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Matrix4": [ - { - "startTime": 1747344014344, - "executionIndex": 12, - "source": [ - { - "previousNode": "Merge" - } - ], - "hints": [], - "executionTime": 279, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Matrix4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.378Z", - "stoppedAt": "2025-05-15T21:20:14.623Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/86-snapshot.json b/test-workflows/snapshots/86-snapshot.json deleted file mode 100644 index 643cdfe69b..0000000000 --- a/test-workflows/snapshots/86-snapshot.json +++ /dev/null @@ -1,875 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078278998, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign": [ - { - "hints": [], - "startTime": 1738078278998, - "executionTime": 4838, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "fake1738078279000@gmail.com", - "cdate": "2025-01-28T09:31:23-06:00", - "udate": "2025-01-28T09:31:23-06:00", - "phone": "", - "orgid": "0", - "orgname": "", - "links": { - "object": true - }, - "id": "6713", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign9": [ - { - "hints": [], - "startTime": 1738078283837, - "executionTime": 642, - "source": [ - { - "previousNode": "ActiveCampaign" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Name1738078283838", - "createdTimestamp": "2025-01-28T09:31:24-06:00", - "updatedTimestamp": "2025-01-28T09:31:24-06:00", - "owner": "1", - "links": { - "object": true - }, - "fields": [ - "json array" - ], - "id": "2126" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign14": [ - { - "hints": [], - "startTime": 1738078284479, - "executionTime": 528, - "source": [ - { - "previousNode": "ActiveCampaign9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contact": "6713", - "account": "2126", - "createdTimestamp": "2025-01-28T09:31:24-06:00", - "updatedTimestamp": "2025-01-28T09:31:24-06:00", - "links": { - "object": true - }, - "id": "1829" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign15": [ - { - "hints": [], - "startTime": 1738078285007, - "executionTime": 897, - "source": [ - { - "previousNode": "ActiveCampaign14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "account": "2126", - "contact": "6713", - "jobTitle": "TestJobTitle", - "createdTimestamp": "2025-01-28T09:31:24-06:00", - "updatedTimestamp": "2025-01-28T09:31:25-06:00", - "links": { - "object": true - }, - "id": "1829" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign16": [ - { - "hints": [], - "startTime": 1738078285905, - "executionTime": 786, - "source": [ - { - "previousNode": "ActiveCampaign15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign10": [ - { - "hints": [], - "startTime": 1738078286691, - "executionTime": 763, - "source": [ - { - "previousNode": "ActiveCampaign16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "updatedName1738078286699", - "accountUrl": "", - "createdTimestamp": "2025-01-28T09:31:24-06:00", - "updatedTimestamp": "2025-01-28T09:31:27-06:00", - "owner": "1", - "links": { - "object": true - }, - "fields": [ - "json array" - ], - "id": "2126" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign11": [ - { - "hints": [], - "startTime": 1738078287455, - "executionTime": 490, - "source": [ - { - "previousNode": "ActiveCampaign10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "account": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign12": [ - { - "hints": [], - "startTime": 1738078287945, - "executionTime": 563, - "source": [ - { - "previousNode": "ActiveCampaign11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "Name1621002658600", - "accountUrl": { - "object": true - }, - "createdTimestamp": "2021-05-14T09:32:11-05:00", - "updatedTimestamp": "2021-08-24T02:34:13-05:00", - "owner": "1", - "contactCount": "0", - "dealCount": "0", - "links": { - "object": true - }, - "id": "48" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign13": [ - { - "hints": [], - "startTime": 1738078288509, - "executionTime": 594, - "source": [ - { - "previousNode": "ActiveCampaign12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign5": [ - { - "hints": [], - "startTime": 1738078289104, - "executionTime": 719, - "source": [ - { - "previousNode": "ActiveCampaign13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "success": true - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign7": [ - { - "hints": [], - "startTime": 1738078289824, - "executionTime": 720, - "source": [ - { - "previousNode": "ActiveCampaign13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contact": "6713", - "tag": "1", - "cdate": "2025-01-28T09:31:30-06:00", - "links": { - "object": true - }, - "id": "3852" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign6": [ - { - "hints": [], - "startTime": 1738078290545, - "executionTime": 700, - "source": [ - { - "previousNode": "ActiveCampaign5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cdate": "2025-01-28T09:31:23-06:00", - "email": "fake1738078279000@gmail.com", - "phone": "", - "firstName": "", - "lastName": "", - "orgid": "0", - "orgname": "", - "segmentio_id": "", - "bounced_hard": "0", - "bounced_soft": "0", - "bounced_date": { - "object": true - }, - "ip": "0", - "ua": "", - "hash": "8b0ad1fff5a956cf672dbcccc12b71f1", - "socialdata_lastcheck": { - "object": true - }, - "email_local": "", - "email_domain": "gmail.com", - "sentcnt": "0", - "rating_tstamp": { - "object": true - }, - "gravatar": "0", - "deleted": "0", - "anonymized": "0", - "adate": { - "object": true - }, - "udate": "2025-01-28T09:31:31-06:00", - "edate": { - "object": true - }, - "deleted_at": { - "object": true - }, - "created_utc_timestamp": "2025-01-28 09:31:23", - "updated_utc_timestamp": "2025-01-28 09:31:31", - "created_timestamp": "2025-01-28 09:31:23", - "updated_timestamp": "2025-01-28 09:31:31", - "created_by": "0", - "updated_by": "0", - "mpp_tracking": "0", - "last_click_date": { - "object": true - }, - "last_open_date": { - "object": true - }, - "last_mpp_open_date": { - "object": true - }, - "best_send_hour": "0", - "links": { - "object": true - }, - "id": "6713", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign8": [ - { - "hints": [], - "startTime": 1738078291245, - "executionTime": 732, - "source": [ - { - "previousNode": "ActiveCampaign7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign1": [ - { - "hints": [], - "startTime": 1738078291977, - "executionTime": 673, - "source": [ - { - "previousNode": "ActiveCampaign8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cdate": "2025-01-28T09:31:23-06:00", - "email": "updatedFake1738078291981@gmail.com", - "phone": "", - "firstName": "", - "lastName": "", - "orgid": "0", - "orgname": "", - "segmentio_id": "", - "bounced_hard": "0", - "bounced_soft": "0", - "bounced_date": { - "object": true - }, - "ip": "0", - "ua": "", - "hash": "8b0ad1fff5a956cf672dbcccc12b71f1", - "socialdata_lastcheck": { - "object": true - }, - "email_local": "", - "email_domain": "gmail.com", - "sentcnt": "0", - "rating_tstamp": { - "object": true - }, - "gravatar": "0", - "deleted": "0", - "anonymized": "0", - "adate": { - "object": true - }, - "udate": "2025-01-28T09:31:32-06:00", - "edate": { - "object": true - }, - "deleted_at": { - "object": true - }, - "created_utc_timestamp": "2025-01-28 09:31:23", - "updated_utc_timestamp": "2025-01-28 09:31:32", - "created_timestamp": "2025-01-28 09:31:23", - "updated_timestamp": "2025-01-28 09:31:32", - "created_by": "0", - "updated_by": "0", - "mpp_tracking": "0", - "best_send_hour": "0", - "links": { - "object": true - }, - "id": "6713", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign2": [ - { - "hints": [], - "startTime": 1738078292650, - "executionTime": 566, - "source": [ - { - "previousNode": "ActiveCampaign1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contactAutomations": [ - "json array" - ], - "contactLists": [ - "json array" - ], - "deals": [ - "json array" - ], - "fieldValues": [ - "json array" - ], - "geoIps": [ - "json array" - ], - "accountContacts": [ - "json array" - ], - "contact": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign3": [ - { - "hints": [], - "startTime": 1738078293216, - "executionTime": 489, - "source": [ - { - "previousNode": "ActiveCampaign2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cdate": "2021-04-14T05:59:52-05:00", - "email": "a@a.com", - "phone": "", - "firstName": "", - "lastName": "", - "orgid": "0", - "orgname": "", - "segmentio_id": "", - "bounced_hard": "0", - "bounced_soft": "0", - "bounced_date": { - "object": true - }, - "ip": "0", - "ua": { - "object": true - }, - "hash": "54a85e50b2a7bf141297a326bd157ca9", - "socialdata_lastcheck": { - "object": true - }, - "email_local": "", - "email_domain": "a.com", - "sentcnt": "0", - "rating_tstamp": { - "object": true - }, - "gravatar": "0", - "deleted": "0", - "anonymized": "0", - "adate": { - "object": true - }, - "udate": "2021-04-14T05:59:52-05:00", - "edate": { - "object": true - }, - "deleted_at": { - "object": true - }, - "created_utc_timestamp": "2021-04-14 05:59:52", - "updated_utc_timestamp": "2022-06-02 20:44:36", - "created_timestamp": "2021-04-14 05:59:52", - "updated_timestamp": "2022-06-02 20:44:36", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "mpp_tracking": "0", - "last_click_date": { - "object": true - }, - "last_open_date": { - "object": true - }, - "last_mpp_open_date": { - "object": true - }, - "best_send_hour": { - "object": true - }, - "scoreValues": [ - "json array" - ], - "accountContacts": [ - "json array" - ], - "links": { - "object": true - }, - "id": "97", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Merge": [ - { - "hints": [], - "startTime": 1738078293705, - "executionTime": 1, - "source": [ - { - "previousNode": "ActiveCampaign3" - }, - { - "previousNode": "ActiveCampaign6" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cdate": "2021-04-14T05:59:52-05:00", - "email": "a@a.com", - "phone": "", - "firstName": "", - "lastName": "", - "orgid": "0", - "orgname": "", - "segmentio_id": "", - "bounced_hard": "0", - "bounced_soft": "0", - "bounced_date": { - "object": true - }, - "ip": "0", - "ua": { - "object": true - }, - "hash": "54a85e50b2a7bf141297a326bd157ca9", - "socialdata_lastcheck": { - "object": true - }, - "email_local": "", - "email_domain": "a.com", - "sentcnt": "0", - "rating_tstamp": { - "object": true - }, - "gravatar": "0", - "deleted": "0", - "anonymized": "0", - "adate": { - "object": true - }, - "udate": "2021-04-14T05:59:52-05:00", - "edate": { - "object": true - }, - "deleted_at": { - "object": true - }, - "created_utc_timestamp": "2021-04-14 05:59:52", - "updated_utc_timestamp": "2022-06-02 20:44:36", - "created_timestamp": "2021-04-14 05:59:52", - "updated_timestamp": "2022-06-02 20:44:36", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "mpp_tracking": "0", - "last_click_date": { - "object": true - }, - "last_open_date": { - "object": true - }, - "last_mpp_open_date": { - "object": true - }, - "best_send_hour": { - "object": true - }, - "scoreValues": [ - "json array" - ], - "accountContacts": [ - "json array" - ], - "links": { - "object": true - }, - "id": "97", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign4": [ - { - "hints": [], - "startTime": 1738078293706, - "executionTime": 796, - "source": [ - { - "previousNode": "Merge" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ActiveCampaign4" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:31:18.996Z", - "stoppedAt": "2025-01-28T15:31:34.502Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/87-snapshot.json b/test-workflows/snapshots/87-snapshot.json deleted file mode 100644 index 54a4046a1b..0000000000 --- a/test-workflows/snapshots/87-snapshot.json +++ /dev/null @@ -1,829 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078283500, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign": [ - { - "hints": [], - "startTime": 1738078283500, - "executionTime": 1276, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connection": { - "object": true - }, - "meta": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign5": [ - { - "hints": [], - "startTime": 1738078284777, - "executionTime": 947, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "email": "fake1738078284778@gmail.com", - "cdate": "2025-01-28T09:31:25-06:00", - "udate": "2025-01-28T09:31:25-06:00", - "phone": "", - "orgid": "0", - "orgname": "", - "links": { - "object": true - }, - "id": "6714", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign8": [ - { - "hints": [], - "startTime": 1738078285724, - "executionTime": 657, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "stringid": "testlist", - "userid": "1", - "name": "TestList", - "cdate": "2021-03-02T10:30:17-06:00", - "p_use_tracking": "1", - "p_use_analytics_read": "0", - "p_use_analytics_link": "0", - "p_use_twitter": "0", - "p_use_facebook": "0", - "p_embed_image": "1", - "p_use_captcha": "1", - "send_last_broadcast": "0", - "private": "0", - "analytics_domains": { - "object": true - }, - "analytics_source": "", - "analytics_ua": "", - "twitter_token": "", - "twitter_token_secret": "", - "facebook_session": { - "object": true - }, - "carboncopy": { - "object": true - }, - "subscription_notify": { - "object": true - }, - "unsubscription_notify": { - "object": true - }, - "require_name": "0", - "get_unsubscribe_reason": "0", - "to_name": "Subscriber", - "optinoptout": "1", - "sender_name": "", - "sender_addr1": "", - "sender_addr2": "", - "sender_city": "", - "sender_state": "", - "sender_zip": "", - "sender_country": "", - "sender_phone": "", - "sender_url": "https://n8n1612344344.activehosted.com", - "sender_reminder": "You are receiving these emails because you are subscribed to our updates.", - "fulladdress": "", - "optinmessageid": "0", - "optoutconf": "0", - "deletestamp": { - "object": true - }, - "udate": { - "object": true - }, - "created_timestamp": "2021-03-02 10:30:17", - "updated_timestamp": "2021-03-02 10:30:17", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "channel": "email", - "description": { - "object": true - }, - "non_deleted_subscribers": "4", - "active_subscribers": "2", - "links": { - "object": true - }, - "id": "1", - "user": "1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign9": [ - { - "hints": [], - "startTime": 1738078286381, - "executionTime": 717, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tag": "Tag1738078286384", - "tagType": "contact", - "cdate": "2025-01-28T09:31:27-06:00", - "links": { - "object": true - }, - "id": "1991" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign1": [ - { - "hints": [], - "startTime": 1738078287099, - "executionTime": 930, - "source": [ - { - "previousNode": "ActiveCampaign" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connection": { - "object": true - }, - "meta": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign7": [ - { - "hints": [], - "startTime": 1738078288029, - "executionTime": 777, - "source": [ - { - "previousNode": "ActiveCampaign5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "contacts": [ - "json array" - ], - "dealGroups": [ - "json array" - ], - "dealStages": [ - "json array" - ], - "deal": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign10": [ - { - "hints": [], - "startTime": 1738078288806, - "executionTime": 585, - "source": [ - { - "previousNode": "ActiveCampaign9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tagType": "contact", - "tag": "Tag1738078286384", - "description": "", - "subscriber_count": "0", - "cdate": "2025-01-28T09:31:27-06:00", - "created_timestamp": "2025-01-28 09:31:27", - "updated_timestamp": "2025-01-28 09:31:27", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "deleted": "0", - "links": { - "object": true - }, - "id": "1991" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign2": [ - { - "hints": [], - "startTime": 1738078289392, - "executionTime": 529, - "source": [ - { - "previousNode": "ActiveCampaign1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connection": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign14": [ - { - "hints": [], - "startTime": 1738078289922, - "executionTime": 686, - "source": [ - { - "previousNode": "ActiveCampaign7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "dealStages": [ - "json array" - ], - "deal": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign11": [ - { - "hints": [], - "startTime": 1738078290609, - "executionTime": 602, - "source": [ - { - "previousNode": "ActiveCampaign10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tag": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign3": [ - { - "hints": [], - "startTime": 1738078291212, - "executionTime": 476, - "source": [ - { - "previousNode": "ActiveCampaign2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "service": "n8n", - "externalid": "1621002648800", - "name": "Name1621002648800", - "isInternal": "0", - "connectionType": "ecommerce", - "status": "1", - "syncStatus": "0", - "sync_request_time": { - "object": true - }, - "sync_start_time": { - "object": true - }, - "lastSync": { - "object": true - }, - "logoUrl": "https://n8n.io/_nuxt/img/df5be1c.png", - "linkUrl": "https://n8n.io/", - "credentialExpiration": { - "object": true - }, - "cdate": "2021-05-14T09:31:09-05:00", - "udate": "2021-05-14T09:31:09-05:00", - "disconnectDate": { - "object": true - }, - "listId": { - "object": true - }, - "planTier": { - "object": true - }, - "links": { - "object": true - }, - "id": "92", - "serviceName": "n8n" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign15": [ - { - "hints": [], - "startTime": 1738078291689, - "executionTime": 704, - "source": [ - { - "previousNode": "ActiveCampaign14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "deal": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign12": [ - { - "hints": [], - "startTime": 1738078292393, - "executionTime": 464, - "source": [ - { - "previousNode": "ActiveCampaign11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "tagType": "contact", - "tag": "TestTag", - "description": "", - "subscriber_count": "2", - "cdate": "2021-03-02T10:29:14-06:00", - "created_timestamp": "2021-03-02 10:29:14", - "updated_timestamp": "2025-01-28 09:31:31", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "deleted": "0", - "links": { - "object": true - }, - "id": "1" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign4": [ - { - "hints": [], - "startTime": 1738078292858, - "executionTime": 966, - "source": [ - { - "previousNode": "ActiveCampaign3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "meta": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign16": [ - { - "hints": [], - "startTime": 1738078293824, - "executionTime": 681, - "source": [ - { - "previousNode": "ActiveCampaign15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "deals": [ - "json array" - ], - "note": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign13": [ - { - "hints": [], - "startTime": 1738078294505, - "executionTime": 631, - "source": [ - { - "previousNode": "ActiveCampaign12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign17": [ - { - "hints": [], - "startTime": 1738078295137, - "executionTime": 616, - "source": [ - { - "previousNode": "ActiveCampaign16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "users": [ - "json array" - ], - "deals": [ - "json array" - ], - "note": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign18": [ - { - "hints": [], - "startTime": 1738078295754, - "executionTime": 613, - "source": [ - { - "previousNode": "ActiveCampaign17" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "hash": "069b44df", - "owner": "1", - "contact": "6714", - "organization": { - "object": true - }, - "group": "1", - "stage": "1", - "title": "Title1738078288034", - "description": "", - "percent": "0", - "cdate": "2025-01-28T09:31:28-06:00", - "mdate": "2025-01-28T09:31:34-06:00", - "nextdate": { - "object": true - }, - "nexttaskid": "0", - "value": "201", - "currency": "usd", - "winProbability": { - "object": true - }, - "winProbabilityMdate": { - "object": true - }, - "status": "0", - "activitycount": "4", - "nextdealid": "1780", - "edate": { - "object": true - }, - "links": { - "object": true - }, - "id": "1780", - "isDisabled": false, - "nextTask": { - "object": true - }, - "account": { - "object": true - }, - "customerAccount": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign19": [ - { - "hints": [], - "startTime": 1738078296367, - "executionTime": 732, - "source": [ - { - "previousNode": "ActiveCampaign18" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign6": [ - { - "hints": [], - "startTime": 1738078297099, - "executionTime": 713, - "source": [ - { - "previousNode": "ActiveCampaign19" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ActiveCampaign6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:31:23.497Z", - "stoppedAt": "2025-01-28T15:31:37.813Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/88-snapshot.json b/test-workflows/snapshots/88-snapshot.json deleted file mode 100644 index 5516ee3eb1..0000000000 --- a/test-workflows/snapshots/88-snapshot.json +++ /dev/null @@ -1,704 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "hints": [], - "startTime": 1738078289583, - "executionTime": 0, - "source": [], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign": [ - { - "hints": [], - "startTime": 1738078289583, - "executionTime": 1168, - "source": [ - { - "previousNode": "Start" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connection": { - "object": true - }, - "meta": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign1": [ - { - "hints": [], - "startTime": 1738078290752, - "executionTime": 722, - "source": [ - { - "previousNode": "ActiveCampaign" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connections": [ - "json array" - ], - "ecomCustomer": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign7": [ - { - "hints": [], - "startTime": 1738078291475, - "executionTime": 731, - "source": [ - { - "previousNode": "ActiveCampaign1" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connections": [ - "json array" - ], - "ecomOrderProducts": [ - "json array" - ], - "ecomOrder": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign12": [ - { - "hints": [], - "startTime": 1738078292207, - "executionTime": 495, - "source": [ - { - "previousNode": "ActiveCampaign7" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomOrderProduct": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign13": [ - { - "hints": [], - "startTime": 1738078292703, - "executionTime": 514, - "source": [ - { - "previousNode": "ActiveCampaign12" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomOrderProducts": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign14": [ - { - "hints": [], - "startTime": 1738078293218, - "executionTime": 639, - "source": [ - { - "previousNode": "ActiveCampaign13" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "orderid": "112", - "connectionid": "636", - "externalid": "ProductId1644891804797", - "sku": "", - "name": "Product1644891804797", - "description": { - "object": true - }, - "price": "101", - "quantity": "1", - "category": "Test", - "imageUrl": "", - "productUrl": "", - "createdDate": "2022-02-14T20:23:25-06:00", - "updatedDate": "2022-02-14T20:23:25-06:00", - "tags": { - "object": true - }, - "isOnSale": { - "object": true - }, - "brand": { - "object": true - }, - "averageRating": { - "object": true - }, - "tstamp": "2022-02-14T20:23:25-06:00", - "links": { - "object": true - }, - "id": "110", - "ecomOrder": "112" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign8": [ - { - "hints": [], - "startTime": 1738078293858, - "executionTime": 529, - "source": [ - { - "previousNode": "ActiveCampaign14" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomOrderProducts": [ - "json array" - ], - "contactConversions": [ - "json array" - ], - "ecomOrder": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign9": [ - { - "hints": [], - "startTime": 1738078294387, - "executionTime": 824, - "source": [ - { - "previousNode": "ActiveCampaign8" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomOrder": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign10": [ - { - "hints": [], - "startTime": 1738078295211, - "executionTime": 481, - "source": [ - { - "previousNode": "ActiveCampaign9" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "customerid": "3", - "connectionid": "6", - "state": "1", - "source": "0", - "externalid": "externalOrderId1614707598654", - "externalcheckoutid": { - "object": true - }, - "orderNumber": "", - "email": "customerEmail1614707598651@gmail.com", - "totalPrice": "201", - "discountAmount": { - "object": true - }, - "shippingAmount": { - "object": true - }, - "taxAmount": { - "object": true - }, - "totalProducts": "0", - "currency": "EUR", - "shippingMethod": "", - "orderUrl": "", - "externalCreatedDate": "2021-03-02T11:48:16-06:00", - "externalUpdatedDate": { - "object": true - }, - "abandonedDate": { - "object": true - }, - "createdDate": "2021-03-02T11:53:19-06:00", - "updatedDate": "2021-03-02T11:54:15-06:00", - "orderDate": "2021-03-02T11:48:16-06:00", - "tstamp": "2021-03-02T11:54:15-06:00", - "links": { - "object": true - }, - "id": "2", - "connection": "6", - "customer": "3" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign11": [ - { - "hints": [], - "startTime": 1738078295693, - "executionTime": 565, - "source": [ - { - "previousNode": "ActiveCampaign10" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign2": [ - { - "hints": [], - "startTime": 1738078296259, - "executionTime": 588, - "source": [ - { - "previousNode": "ActiveCampaign11" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomCustomer": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign3": [ - { - "hints": [], - "startTime": 1738078296847, - "executionTime": 536, - "source": [ - { - "previousNode": "ActiveCampaign2" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "ecomCustomer": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign4": [ - { - "hints": [], - "startTime": 1738078297384, - "executionTime": 628, - "source": [ - { - "previousNode": "ActiveCampaign3" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "connectionid": "6", - "externalid": "", - "email": "deleted+10@example.com", - "totalRevenue": "201", - "totalOrders": "1", - "totalProducts": "0", - "avgRevenuePerOrder": "201", - "avgProductCategory": "", - "tstamp": "2021-05-14T20:06:40-05:00", - "acceptsMarketing": "0", - "sms_marketing_state": { - "object": true - }, - "sms_opt_in_level": { - "object": true - }, - "sms_consent_updated_at": { - "object": true - }, - "links": { - "object": true - }, - "id": "3", - "connection": "6" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign15": [ - { - "hints": [], - "startTime": 1738078298013, - "executionTime": 552, - "source": [ - { - "previousNode": "ActiveCampaign4" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "cdate": "2025-01-28T09:31:31-06:00", - "email": "fake1738078290762@gmail.com", - "phone": "", - "firstName": "", - "lastName": "", - "orgid": "0", - "orgname": "", - "segmentio_id": "", - "bounced_hard": "0", - "bounced_soft": "0", - "bounced_date": { - "object": true - }, - "ip": "0", - "ua": { - "object": true - }, - "hash": "3df37e90a2290eed6f0c840247d4d46a", - "socialdata_lastcheck": { - "object": true - }, - "email_local": "", - "email_domain": "gmail.com", - "sentcnt": "0", - "rating_tstamp": { - "object": true - }, - "gravatar": "0", - "deleted": "0", - "anonymized": "0", - "adate": { - "object": true - }, - "udate": "2025-01-28T09:31:31-06:00", - "edate": { - "object": true - }, - "deleted_at": { - "object": true - }, - "created_utc_timestamp": "2025-01-28 09:31:31", - "updated_utc_timestamp": "2025-01-28 09:31:31", - "created_timestamp": "2025-01-28 09:31:31", - "updated_timestamp": "2025-01-28 09:31:31", - "created_by": { - "object": true - }, - "updated_by": { - "object": true - }, - "mpp_tracking": "0", - "last_click_date": { - "object": true - }, - "last_open_date": { - "object": true - }, - "last_mpp_open_date": { - "object": true - }, - "best_send_hour": { - "object": true - }, - "scoreValues": [ - "json array" - ], - "accountContacts": [ - "json array" - ], - "links": { - "object": true - }, - "id": "6715", - "organization": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign16": [ - { - "hints": [], - "startTime": 1738078298566, - "executionTime": 663, - "source": [ - { - "previousNode": "ActiveCampaign15" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign5": [ - { - "hints": [], - "startTime": 1738078299229, - "executionTime": 564, - "source": [ - { - "previousNode": "ActiveCampaign16" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "ActiveCampaign6": [ - { - "hints": [], - "startTime": 1738078299794, - "executionTime": 1189, - "source": [ - { - "previousNode": "ActiveCampaign5" - } - ], - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "meta": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "ActiveCampaign6" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-01-28T15:31:29.580Z", - "stoppedAt": "2025-01-28T15:31:40.984Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/90-snapshot.json b/test-workflows/snapshots/90-snapshot.json deleted file mode 100644 index d3ecaa1b68..0000000000 --- a/test-workflows/snapshots/90-snapshot.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011734, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time": [ - { - "startTime": 1747344011734, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "03/03/2021" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time1": [ - { - "startTime": 1747344011734, - "executionIndex": 2, - "source": [ - { - "previousNode": "Date & Time" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "2021/03/03" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time2": [ - { - "startTime": 1747344011735, - "executionIndex": 3, - "source": [ - { - "previousNode": "Date & Time1" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "March 03 2021" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time3": [ - { - "startTime": 1747344011735, - "executionIndex": 4, - "source": [ - { - "previousNode": "Date & Time2" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "03-03-2021" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time4": [ - { - "startTime": 1747344011735, - "executionIndex": 5, - "source": [ - { - "previousNode": "Date & Time3" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "2021-03-03" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Date & Time5": [ - { - "startTime": 1747344011735, - "executionIndex": 6, - "source": [ - { - "previousNode": "Date & Time4" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "1614764492" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011735, - "executionIndex": 7, - "source": [ - { - "previousNode": "Date & Time5" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "1614764492" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.734Z", - "stoppedAt": "2025-05-15T21:20:11.737Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/91-snapshot.json b/test-workflows/snapshots/91-snapshot.json deleted file mode 100644 index 161a6af0da..0000000000 --- a/test-workflows/snapshots/91-snapshot.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011746, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "FunctionItem": [ - { - "startTime": 1747344011746, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 3, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "\n\n\n\n
\"background
\"background
\"background

\n\t\t\t\t\t\tExtendable workflow automation\n\t\t\t\t\t

\"n8n
\n\t\tGithub\n\t
\"Play

\n\t\t\t\t\t\tWatch how simple it is to design a\n\t\t\t\t\t\tTypeform +\n\t\t\t\t\t\tGoogle Sheets +\n\t\t\t\t\t\tSlack workflow\n\t\t\t\t\t

Open icon

Open

\n\t\t\t\t\t\tThanks to our fair-code license, run n8n locally, or the cloud.\n\t\t\t\t\t\tDecide who gets access and where your data is stored.\n\t\t\t\t\t

Extendable icon

Extendable

\n\t\t\t\t\t\tEasy to augment with custom functions logic, and apps with minimal\n\t\t\t\t\t\tengineering effort.\n\t\t\t\t\t

Powerful icon

Powerful

\n\t\t\t\t\t\tn8n's node based editor lets you map anything to everything and go\n\t\t\t\t\t\tbeyond basic ETL.\n\t\t\t\t\t

What can I do with n8n?

Sync data between 150+ apps

\n\t\t\t\t\t\t\tMove and transform data between different apps and databases without getting caught up in API docs and troubleshooting CORS errors.\n\t\t\t\t\t\t

Design powerful workflows

Create custom integrations

\n\t\t\t\t\t\t\tSee what else you can do with n8n! Visit our\n\t\t\t\t\t\t\tMedium publication

How to get started?

\n\t\t\t\t\t\tCLI\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\tClick to copy\n\t

\n\t\t\t\t\t\tDocker\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\t\t\t\t\t\t\tn8n.cloud - our hosted offering is now in early access\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\tGet updates from n8n\n\t\t\t\t\t

Subscribe to our newsletter

\n\t\tBy submitting your email address you agree to your personal data being\n\t\tstored and used to provide you with information and commercial offers\n\t\tabout n8n.\n\t

\n
\n\n" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "HTML Extract": [ - { - "startTime": 1747344011749, - "executionIndex": 2, - "source": [ - { - "previousNode": "FunctionItem" - } - ], - "hints": [], - "executionTime": 13, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "extracted": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Move Binary Data": [ - { - "startTime": 1747344011762, - "executionIndex": 3, - "source": [ - { - "previousNode": "FunctionItem" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "mimeType": "application/json", - "fileType": "json", - "fileExtension": "json", - "data": "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGRhdGEtbi1oZWFkLXNzcj4KCjxib2R5ID4KPGRpdiBkYXRhLXNlcnZlci1yZW5kZXJlZD0idHJ1ZSIgaWQ9Il9fbnV4dCI+PCEtLS0tPjxkaXYgaWQ9Il9fbGF5b3V0Ij48ZGl2IGNsYXNzPSJsYXlvdXQtZnVsbC1wYWdlIj48aGVhZGVyIGNsYXNzPSJlbC1oZWFkZXIgaGVhZGVyIiBzdHlsZT0iaGVpZ2h0OmF1dG87Ij48IS0tLS0+IDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PGRpdiBjbGFzcz0iZWwtcm93Ij48ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTI0IGVsLWNvbC14cy0xNiBlbC1jb2wtc20tMTYgZWwtY29sLW1kLTUgZWwtY29sLWxnLTYiPjxhIGhyZWY9Ii8iIGFyaWEtY3VycmVudD0icGFnZSIgY2xhc3M9Im51eHQtbGluay1leGFjdC1hY3RpdmUgbnV4dC1saW5rLWFjdGl2ZSI+PHN2ZyB3aWR0aD0iMTI0cHgiIGhlaWdodD0iMjhweCIgdmlld0JveD0iMCAwIDEyNCAyOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48dGl0bGU+bjg8L3RpdGxlPiA8ZyBpZD0ibmF2LW1lbnUtKFYxKSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGcgaWQ9Im5hdi1tZW51LSh2MSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjAuMDAwMDAwLCAtMTE2LjAwMDAwMCkiIGZpbGwtcnVsZT0ibm9uemVybyI+PGcgaWQ9Im44IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAuMDAwMDAwLCAxMTYuMDAwMDAwKSI+PHBhdGggZD0iTTQ4LjczODQ5MDYsMC4xOTAxODg2NzkgQzQ2LjE1NzczNTgsMC4xOTAxODg2NzkgNDMuOTg2NDE1MSwxLjk2NzkyNDUzIDQzLjM3MzU4NDksNC4zNjExMzIwOCBMMzUuNjUyNDUyOCw0LjM2MTEzMjA4IEMzMi42MjI2NDE1LDQuMzYxMTMyMDggMzAuMTU4MTEzMiw2LjgyNTY2MDM4IDMwLjE1ODExMzIsOS44NTU0NzE3IEMzMC4xNTgxMTMyLDExLjM2OTA1NjYgMjguOTI3MTY5OCwxMi42MDI2NDE1IDI3LjQxMDk0MzQsMTIuNjAyNjQxNSBMMjYuMzA5NDM0LDEyLjYwMjY0MTUgQzI1LjY5NjYwMzgsMTAuMjA5NDM0IDIzLjUyNzkyNDUsOC40MzE2OTgxMSAyMC45NDQ1MjgzLDguNDMxNjk4MTEgQzE4LjM2Mzc3MzYsOC40MzE2OTgxMSAxNi4xOTI0NTI4LDEwLjIwOTQzNCAxNS41Nzk2MjI2LDEyLjYwMjY0MTUgTDExLjE2ODMwMTksMTIuNjAyNjQxNSBDMTAuNTU1NDcxNywxMC4yMDk0MzQgOC4zODY3OTI0NSw4LjQzMTY5ODExIDUuODAzMzk2MjMsOC40MzE2OTgxMSBDMi43NDcxNjk4MSw4LjQzMTY5ODExIDAuMjU4ODY3OTI1LDEwLjkxNzM1ODUgMC4yNTg4Njc5MjUsMTMuOTc2MjI2NCBDMC4yNTg4Njc5MjUsMTcuMDMyNDUyOCAyLjc0NDUyODMsMTkuNTIwNzU0NyA1LjgwMzM5NjIzLDE5LjUyMDc1NDcgQzguMzg0MTUwOTQsMTkuNTIwNzU0NyAxMC41NTU0NzE3LDE3Ljc0MzAxODkgMTEuMTY4MzAxOSwxNS4zNDk4MTEzIEwxNS41ODQ5MDU3LDE1LjM0OTgxMTMgQzE2LjE5NzczNTgsMTcuNzQzMDE4OSAxOC4zNjY0MTUxLDE5LjUyMDc1NDcgMjAuOTQ5ODExMywxOS41MjA3NTQ3IEMyMy41MTQ3MTcsMTkuNTIwNzU0NyAyNS42NzAxODg3LDE3Ljc2OTQzNCAyNi4zMDE1MDk0LDE1LjQgTDI3LjQxMzU4NDksMTUuNCBDMjguOTI3MTY5OCwxNS40IDMwLjE2MDc1NDcsMTYuNjMwOTQzNCAzMC4xNjA3NTQ3LDE4LjE0NzE2OTggQzMwLjE2MDc1NDcsMjEuMTc2OTgxMSAzMi42MjUyODMsMjMuNjQxNTA5NCAzNS42NTUwOTQzLDIzLjY0MTUwOTQgTDM3LjQ1Mzk2MjMsMjMuNjQxNTA5NCBDMzguMDY2NzkyNSwyNi4wMzQ3MTcgNDAuMjM1NDcxNywyNy44MTI0NTI4IDQyLjgxODg2NzksMjcuODEyNDUyOCBDNDUuODc1MDk0MywyNy44MTI0NTI4IDQ4LjM2MzM5NjIsMjUuMzI2NzkyNSA0OC4zNjMzOTYyLDIyLjI2NzkyNDUgQzQ4LjM2MzM5NjIsMTkuMjExNjk4MSA0NS44Nzc3MzU4LDE2LjcyMzM5NjIgNDIuODE4ODY3OSwxNi43MjMzOTYyIEM0MC4yMzgxMTMyLDE2LjcyMzM5NjIgMzguMDY2NzkyNSwxOC41MDExMzIxIDM3LjQ1Mzk2MjMsMjAuODk0MzM5NiBMMzUuNjU1MDk0MywyMC44OTQzMzk2IEMzNC4xNDE1MDk0LDIwLjg5NDMzOTYgMzIuOTA3OTI0NSwxOS42NjMzOTYyIDMyLjkwNzkyNDUsMTguMTQ3MTY5OCBDMzIuOTA3OTI0NSwxNi40OTM1ODQ5IDMyLjE2ODMwMTksMTUuMDA5MDU2NiAzMS4wMDg2NzkyLDE0LjAwMjY0MTUgQzMyLjE3MDk0MzQsMTIuOTkzNTg0OSAzMi45MDc5MjQ1LDExLjUxMTY5ODEgMzIuOTA3OTI0NSw5Ljg1ODExMzIxIEMzMi45MDc5MjQ1LDguMzQ0NTI4MyAzNC4xMzg4Njc5LDcuMTEwOTQzNCAzNS42NTUwOTQzLDcuMTEwOTQzNCBMNDMuMzc2MjI2NCw3LjExMDk0MzQgQzQzLjk4OTA1NjYsOS41MDQxNTA5NCA0Ni4xNTc3MzU4LDExLjI4MTg4NjggNDguNzQxMTMyMSwxMS4yODE4ODY4IEM1MS43OTczNTg1LDExLjI4MTg4NjggNTQuMjg1NjYwNCw4Ljc5NjIyNjQyIDU0LjI4NTY2MDQsNS43MzczNTg0OSBDNTQuMjgzMDE4OSwyLjY3ODQ5MDU3IDUxLjc5NDcxNywwLjE5MDE4ODY3OSA0OC43Mzg0OTA2LDAuMTkwMTg4Njc5IFogTTUuODA4Njc5MjUsMTYuNzcwOTQzNCBDNC4yNjYwMzc3NCwxNi43NzA5NDM0IDMuMDExMzIwNzUsMTUuNTE2MjI2NCAzLjAxMTMyMDc1LDEzLjk3MzU4NDkgQzMuMDExMzIwNzUsMTIuNDMwOTQzNCA0LjI2NjAzNzc0LDExLjE3NjIyNjQgNS44MDg2NzkyNSwxMS4xNzYyMjY0IEM3LjM1MTMyMDc1LDExLjE3NjIyNjQgOC42MDYwMzc3NCwxMi40MzA5NDM0IDguNjA2MDM3NzQsMTMuOTczNTg0OSBDOC42MDYwMzc3NCwxNS41MTYyMjY0IDcuMzUxMzIwNzUsMTYuNzcwOTQzNCA1LjgwODY3OTI1LDE2Ljc3MDk0MzQgWiBNMjAuOTQ5ODExMywxNi43NzA5NDM0IEMxOS40MDcxNjk4LDE2Ljc3MDk0MzQgMTguMTUyNDUyOCwxNS41MTYyMjY0IDE4LjE1MjQ1MjgsMTMuOTczNTg0OSBDMTguMTUyNDUyOCwxMi40MzA5NDM0IDE5LjQwNzE2OTgsMTEuMTc2MjI2NCAyMC45NDk4MTEzLDExLjE3NjIyNjQgQzIyLjQ5MjQ1MjgsMTEuMTc2MjI2NCAyMy43NDcxNjk4LDEyLjQzMDk0MzQgMjMuNzQ3MTY5OCwxMy45NzM1ODQ5IEMyMy43NDcxNjk4LDE1LjUxNjIyNjQgMjIuNDkyNDUyOCwxNi43NzA5NDM0IDIwLjk0OTgxMTMsMTYuNzcwOTQzNCBaIE00Mi44MTYyMjY0LDE5LjQ2NzkyNDUgQzQ0LjM1ODg2NzksMTkuNDY3OTI0NSA0NS42MTM1ODQ5LDIwLjcyMjY0MTUgNDUuNjEzNTg0OSwyMi4yNjUyODMgQzQ1LjYxMzU4NDksMjMuODA3OTI0NSA0NC4zNTg4Njc5LDI1LjA2MjY0MTUgNDIuODE2MjI2NCwyNS4wNjI2NDE1IEM0MS4yNzM1ODQ5LDI1LjA2MjY0MTUgNDAuMDE4ODY3OSwyMy44MDc5MjQ1IDQwLjAxODg2NzksMjIuMjY1MjgzIEM0MC4wMjE1MDk0LDIwLjcyMjY0MTUgNDEuMjc2MjI2NCwxOS40Njc5MjQ1IDQyLjgxNjIyNjQsMTkuNDY3OTI0NSBaIE00OC43Mzg0OTA2LDguNTMyMDc1NDcgQzQ3LjE5NTg0OTEsOC41MzIwNzU0NyA0NS45NDExMzIxLDcuMjc3MzU4NDkgNDUuOTQxMTMyMSw1LjczNDcxNjk4IEM0NS45NDExMzIxLDQuMTkyMDc1NDcgNDcuMTk1ODQ5MSwyLjkzNzM1ODQ5IDQ4LjczODQ5MDYsMi45MzczNTg0OSBDNTAuMjgxMTMyMSwyLjkzNzM1ODQ5IDUxLjUzNTg0OTEsNC4xOTIwNzU0NyA1MS41MzU4NDkxLDUuNzM0NzE2OTggQzUxLjUzNTg0OTEsNy4yNzczNTg0OSA1MC4yODExMzIxLDguNTMyMDc1NDcgNDguNzM4NDkwNiw4LjUzMjA3NTQ3IFoiIGlkPSJTaGFwZSIgZmlsbD0iI0ZGNkQ1QSI+PC9wYXRoPiA8ZyBpZD0iR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU2LjUyODMwMiwgNS41NDcxNzApIiBmaWxsPSIjMzg0RDVCIj48cGF0aCBkPSJNMS41Nzk2MjI2NCw3LjA5NzczNTg1IEMxLjU3OTYyMjY0LDYuNzY0OTA1NjYgMS40MDI2NDE1MSw2LjYwOTA1NjYgMS4wOTA5NDM0LDYuNjA5MDU2NiBMMC4xNzk2MjI2NDIsNi42MDkwNTY2IEwwLjE3OTYyMjY0Miw0Ljc2NTI4MzAyIEwyLjI0NzkyNDUzLDQuNzY1MjgzMDIgQzMuMjA0MTUwOTQsNC43NjUyODMwMiAzLjY3MTY5ODExLDUuMTg3OTI0NTMgMy42NzE2OTgxMSw2LjAwOTQzMzk2IEwzLjY3MTY5ODExLDYuNDMyMDc1NDcgQzMuNjcxNjk4MTEsNi43ODg2NzkyNSAzLjYyNjc5MjQ1LDcuMDc2NjAzNzcgMy42MjY3OTI0NSw3LjA3NjYwMzc3IEwzLjY3MTY5ODExLDcuMDc2NjAzNzcgQzQuMTE1NDcxNyw2LjA5OTI0NTI4IDUuNDQ5NDMzOTYsNC40OTg0OTA1NyA3Ljg5NTQ3MTcsNC40OTg0OTA1NyBDMTAuNTYzMzk2Miw0LjQ5ODQ5MDU3IDExLjc2MjY0MTUsNS45NDMzOTYyMyAxMS43NjI2NDE1LDguODA5NDMzOTYgTDExLjc2MjY0MTUsMTMuNjc3NzM1OCBDMTEuNzYyNjQxNSwxNC4wMTA1NjYgMTEuOTM5NjIyNiwxNC4xNjY0MTUxIDEyLjI1MTMyMDgsMTQuMTY2NDE1MSBMMTMuMTYyNjQxNSwxNC4xNjY0MTUxIEwxMy4xNjI2NDE1LDE2LjAxMDE4ODcgTDExLjAyODMwMTksMTYuMDEwMTg4NyBDMTAuMDI3MTY5OCwxNi4wMTAxODg3IDkuNjA0NTI4MywxNS41ODc1NDcyIDkuNjA0NTI4MywxNC41ODY0MTUxIEw5LjYwNDUyODMsOS4yOTgxMTMyMSBDOS42MDQ1MjgzLDcuNzE4NDkwNTcgOS4yOTI4MzAxOSw2LjQ3NDMzOTYyIDcuNDkzOTYyMjYsNi40NzQzMzk2MiBDNS43NjExMzIwOCw2LjQ3NDMzOTYyIDQuMzgyMjY0MTUsNy42MDc1NDcxNyAzLjkzODQ5MDU3LDkuMjMyMDc1NDcgQzMuNzgyNjQxNTEsOS42NzU4NDkwNiAzLjczNzczNTg1LDEwLjE4ODMwMTkgMy43Mzc3MzU4NSwxMC43NDMwMTg5IEwzLjczNzczNTg1LDE2LjAxMDE4ODcgTDEuNTgyMjY0MTUsMTYuMDEwMTg4NyBMMS41ODIyNjQxNSw3LjA5NzczNTg1IEwxLjU3OTYyMjY0LDcuMDk3NzM1ODUgWiIgaWQ9IlBhdGgiPjwvcGF0aD4gPHBhdGggZD0iTTE3LjY2OTA1NjYsNy40OTY2MDM3NyBMMTcuNjY5MDU2Niw3LjQ1MTY5ODExIEMxNy42NjkwNTY2LDcuNDUxNjk4MTEgMTUuNzM1NDcxNyw2LjQyOTQzMzk2IDE1LjczNTQ3MTcsNC4yNTAxODg2OCBDMTUuNzM1NDcxNywyLjA3MDk0MzQgMTcuNDY4MzAxOSwwLjA1MDE4ODY3OTIgMjAuNjI0OTA1NywwLjA1MDE4ODY3OTIgQzIzLjYyNTY2MDQsMC4wNTAxODg2NzkyIDI1LjUzODExMzIsMS44NTE2OTgxMSAyNS41MzgxMTMyLDQuMjk1MDk0MzQgQzI1LjUzODExMzIsNi42MDY0MTUwOSAyMy42NDk0MzQsOC4wMzAxODg2OCAyMy42NDk0MzQsOC4wMzAxODg2OCBMMjMuNjQ5NDM0LDguMDc1MDk0MzQgQzI1LjA3MzIwNzUsOC44OTY2MDM3NyAyNS45ODQ1MjgzLDkuOTg3NTQ3MTcgMjUuOTg0NTI4MywxMS42NzU0NzE3IEMyNS45ODQ1MjgzLDE0LjEyMTUwOTQgMjMuNzYzMDE4OSwxNi4yNzY5ODExIDIwLjU2MTUwOTQsMTYuMjc2OTgxMSBDMTcuNjA1NjYwNCwxNi4yNzY5ODExIDE1LjA5MzU4MjksMTQuNDMzMjA3NSAxNS4wOTM1ODI5LDExLjUxOTYyMjYgQzE1LjA5MDk0MzQsOC45NDE1MDk0MyAxNy42NjkwNTY2LDcuNDk2NjAzNzcgMTcuNjY5MDU2Niw3LjQ5NjYwMzc3IFogTTIwLjU1ODg2NzksMTQuMjUzNTg0OSBDMjIuMjA0NTI4MywxNC4yNTM1ODQ5IDIzLjczNjYwMzgsMTMuMTY1MjgzIDIzLjczNjYwMzgsMTEuNjA5NDM0IEMyMy43MzY2MDM4LDEwLjIzMDU2NiAyMi41NTg0OTA2LDkuNjMwOTQzNCAyMS4wOTI0NTI4LDkuMDMxMzIwNzUgQzIwLjQ5MjgzMDIsOC43ODU2NjAzOCAxOS42NDc1NDcyLDguNDUyODMwMTkgMTkuNDcwNTY2LDguNDUyODMwMTkgQzE4LjkxNTg0OTEsOC40NTI4MzAxOSAxNy4zMzYyMjY0LDkuNzQxODg2NzkgMTcuMzM2MjI2NCwxMS40MDg2NzkyIEMxNy4zMzYyMjY0LDEzLjE2NTI4MyAxOC44NDcxNjk4LDE0LjI1MzU4NDkgMjAuNTU4ODY3OSwxNC4yNTM1ODQ5IFogTTIxLjcxNTg0OTEsNy4xNCBDMjIuMjQ5NDM0LDcuMTQgMjMuMzgyNjQxNSw1LjgyNzE2OTgxIDIzLjM4MjY0MTUsNC40MjcxNjk4MSBDMjMuMzgyNjQxNSwyLjk4MjI2NDE1IDIyLjIyNTY2MDQsMi4wNzA5NDM0IDIwLjYyNzU0NzIsMi4wNzA5NDM0IEMxOC45MTU4NDkxLDIuMDcwOTQzNCAxNy45MTQ3MTcsMy4wNDgzMDE4OSAxNy45MTQ3MTcsNC4yOTI0NTI4MyBDMTcuOTE0NzE3LDUuNjcxMzIwNzUgMTkuMDkyODMwMiw2LjIwNDkwNTY2IDIwLjQ5MjgzMDIsNi43NTk2MjI2NCBDMjAuODA0NTI4Myw2Ljg5Njk4MTEzIDIxLjQ0OTA1NjYsNy4xNCAyMS43MTU4NDkxLDcuMTQgWiIgaWQ9IlNoYXBlIj48L3BhdGg+IDxwYXRoIGQ9Ik0yOS40MDUyODMsNy4wOTc3MzU4NSBDMjkuNDA1MjgzLDYuNzY0OTA1NjYgMjkuMjI4MzAxOSw2LjYwOTA1NjYgMjguOTE2NjAzOCw2LjYwOTA1NjYgTDI4LjAwNTI4Myw2LjYwOTA1NjYgTDI4LjAwNTI4Myw0Ljc2NTI4MzAyIEwzMC4wNzM1ODQ5LDQuNzY1MjgzMDIgQzMxLjAyOTgxMTMsNC43NjUyODMwMiAzMS40OTczNTg1LDUuMTg3OTI0NTMgMzEuNDk3MzU4NSw2LjAwOTQzMzk2IEwzMS40OTczNTg1LDYuNDMyMDc1NDcgQzMxLjQ5NzM1ODUsNi43ODg2NzkyNSAzMS40NTI0NTI4LDcuMDc2NjAzNzcgMzEuNDUyNDUyOCw3LjA3NjYwMzc3IEwzMS40OTczNTg1LDcuMDc2NjAzNzcgQzMxLjk0MTEzMjEsNi4wOTkyNDUyOCAzMy4yNzUwOTQzLDQuNDk4NDkwNTcgMzUuNzIxMTMyMSw0LjQ5ODQ5MDU3IEMzOC4zODkwNTY2LDQuNDk4NDkwNTcgMzkuNTg4MzAxOSw1Ljk0MzM5NjIzIDM5LjU4ODMwMTksOC44MDk0MzM5NiBMMzkuNTg4MzAxOSwxMy42Nzc3MzU4IEMzOS41ODgzMDE5LDE0LjAxMDU2NiAzOS43NjUyODMsMTQuMTY2NDE1MSA0MC4wNzY5ODExLDE0LjE2NjQxNTEgTDQwLjk4ODMwMTksMTQuMTY2NDE1MSBMNDAuOTg4MzAxOSwxNi4wMTAxODg3IEwzOC44NTM5NjIzLDE2LjAxMDE4ODcgQzM3Ljg1MjgzMDIsMTYuMDEwMTg4NyAzNy40MzAxODg3LDE1LjU4NzU0NzIgMzcuNDMwMTg4NywxNC41ODY0MTUxIEwzNy40MzAxODg3LDkuMjk4MTEzMjEgQzM3LjQzMDE4ODcsNy43MTg0OTA1NyAzNy4xMTg0OTA2LDYuNDc0MzM5NjIgMzUuMzE5NjIyNiw2LjQ3NDMzOTYyIEMzMy41ODY3OTI1LDYuNDc0MzM5NjIgMzIuMjA3OTI0NSw3LjYwNzU0NzE3IDMxLjc2NDE1MDksOS4yMzIwNzU0NyBDMzEuNjA4MzAxOSw5LjY3NTg0OTA2IDMxLjU2MzM5NjIsMTAuMTg4MzAxOSAzMS41NjMzOTYyLDEwLjc0MzAxODkgTDMxLjU2MzM5NjIsMTYuMDEwMTg4NyBMMjkuNDA3OTI0NSwxNi4wMTAxODg3IEwyOS40MDc5MjQ1LDcuMDk3NzM1ODUgTDI5LjQwNTI4Myw3LjA5NzczNTg1IFoiIGlkPSJQYXRoIj48L3BhdGg+IDxwb2x5Z29uIGlkPSJQYXRoIiBwb2ludHM9IjQzLjU0IDEzLjcyIDQ1Ljc0MDM3NzQgMTMuNzIgNDUuNzQwMzc3NCAxNi4wMTAxODg3IDQzLjU0IDE2LjAxMDE4ODciPjwvcG9seWdvbj4gPHBhdGggZD0iTTQ4LjcxNzM1ODUsNy4wOTc3MzU4NSBDNDguNzE3MzU4NSw2Ljc2NDkwNTY2IDQ4LjU0MDM3NzQsNi42MDkwNTY2IDQ4LjIyODY3OTIsNi42MDkwNTY2IEw0Ny4zMTczNTg1LDYuNjA5MDU2NiBMNDcuMzE3MzU4NSw0Ljc2NTI4MzAyIEw0OS40Mjc5MjQ1LDQuNzY1MjgzMDIgQzUwLjQyOTA1NjYsNC43NjUyODMwMiA1MC44NTE2OTgxLDUuMTg3OTI0NTMgNTAuODUxNjk4MSw2LjE4OTA1NjYgTDUwLjg1MTY5ODEsMTMuNjgwMzc3NCBDNTAuODUxNjk4MSwxNC4wMTMyMDc1IDUxLjAyODY3OTIsMTQuMTY5MDU2NiA1MS4zNDAzNzc0LDE0LjE2OTA1NjYgTDUyLjI1MTY5ODEsMTQuMTY5MDU2NiBMNTIuMjUxNjk4MSwxNi4wMTI4MzAyIEw1MC4xNDExMzIxLDE2LjAxMjgzMDIgQzQ5LjE0LDE2LjAxMjgzMDIgNDguNzE3MzU4NSwxNS41OTAxODg3IDQ4LjcxNzM1ODUsMTQuNTg5MDU2NiBMNDguNzE3MzU4NSw3LjA5NzczNTg1IFoiIGlkPSJQYXRoIj48L3BhdGg+IDxwYXRoIGQ9Ik02MC4yMzE2OTgxLDQuNDk1ODQ5MDYgQzYzLjU4OTA1NjYsNC40OTU4NDkwNiA2Ni4yOTkyNDUzLDYuOTYzMDE4ODcgNjYuMjk5MjQ1MywxMC4zNjUyODMgQzY2LjI5OTI0NTMsMTMuNzg4Njc5MiA2My41ODY0MTUxLDE2LjI3Njk4MTEgNjAuMjMxNjk4MSwxNi4yNzY5ODExIEM1Ni44NzQzMzk2LDE2LjI3Njk4MTEgNTQuMTg1MjgzLDEzLjc4NjAzNzcgNTQuMTg1MjgzLDEwLjM2NTI4MyBDNTQuMTg1MjgzLDYuOTYzMDE4ODcgNTYuODc0MzM5Niw0LjQ5NTg0OTA2IDYwLjIzMTY5ODEsNC40OTU4NDkwNiBaIE02MC4yMzE2OTgxLDE0LjQwOTQzNCBDNjIuMzY2MDM3NywxNC40MDk0MzQgNjQuMDk4ODY3OSwxMi43MTg4Njc5IDY0LjA5ODg2NzksMTAuMzYyNjQxNSBDNjQuMDk4ODY3OSw4LjAyNzU0NzE3IDYyLjM2NjAzNzcsNi4zNjA3NTQ3MiA2MC4yMzE2OTgxLDYuMzYwNzU0NzIgQzU4LjEyMTEzMjEsNi4zNjA3NTQ3MiA1Ni4zODU2NjA0LDguMDI3NTQ3MTcgNTYuMzg1NjYwNCwxMC4zNjI2NDE1IEM1Ni4zODU2NjA0LDEyLjcyMTUwOTQgNTguMTE4NDkwNiwxNC40MDk0MzQgNjAuMjMxNjk4MSwxNC40MDk0MzQgWiIgaWQ9IlNoYXBlIj48L3BhdGg+PC9nPiA8cGF0aCBkPSJNMTA2LjIzMDk0Myw5LjYzODg2NzkyIEMxMDUuMTI0MTUxLDkuNjM4ODY3OTIgMTA0LjIyMzM5Niw4LjczODExMzIxIDEwNC4yMjMzOTYsNy42MzEzMjA3NSBDMTA0LjIyMzM5Niw2LjUyNDUyODMgMTA1LjEyNDE1MSw1LjYyMzc3MzU4IDEwNi4yMzA5NDMsNS42MjM3NzM1OCBDMTA3LjMzNzczNiw1LjYyMzc3MzU4IDEwOC4yMzg0OTEsNi41MjQ1MjgzIDEwOC4yMzg0OTEsNy42MzEzMjA3NSBDMTA4LjIzODQ5MSw4LjczODExMzIxIDEwNy4zMzc3MzYsOS42Mzg4Njc5MiAxMDYuMjMwOTQzLDkuNjM4ODY3OTIgWiBNMTA2LjIzMDk0Myw2LjU4NzkyNDUzIEMxMDUuNjU3NzM2LDYuNTg3OTI0NTMgMTA1LjE5MDE4OSw3LjA1NTQ3MTcgMTA1LjE5MDE4OSw3LjYyODY3OTI1IEMxMDUuMTkwMTg5LDguMjAxODg2NzkgMTA1LjY1NzczNiw4LjY2OTQzMzk2IDEwNi4yMzA5NDMsOC42Njk0MzM5NiBDMTA2LjgwNDE1MSw4LjY2OTQzMzk2IDEwNy4yNzE2OTgsOC4yMDE4ODY3OSAxMDcuMjcxNjk4LDcuNjI4Njc5MjUgQzEwNy4yNzE2OTgsNy4wNTU0NzE3IDEwNi44MDQxNTEsNi41ODc5MjQ1MyAxMDYuMjMwOTQzLDYuNTg3OTI0NTMgWiIgaWQ9IlNoYXBlIiBmaWxsPSIjRkY2RDVBIj48L3BhdGg+PC9nPjwvZz48L2c+PC9zdmc+PC9hPjwvZGl2PiA8ZGl2IGNsYXNzPSJoaWRkZW4tc20tYW5kLWRvd24gZWwtY29sIGVsLWNvbC0yNCBlbC1jb2wtbWQtMTkgZWwtY29sLWxnLTE4Ij48dWwgcm9sZT0ibWVudWJhciIgbW9kZT0iaG9yaXpvbnRhbCIgY2xhc3M9ImRlZmF1bHQtbWVudSBlbC1tZW51LS1ob3Jpem9udGFsIGVsLW1lbnUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij48bGkgcm9sZT0ibWVudWl0ZW0iIGFyaWEtaGFzcG9wdXA9InRydWUiIGNsYXNzPSJuYXZpZ2F0aW9uLWl0ZW0gZWwtc3VibWVudSI+PGRpdiBjbGFzcz0iZWwtc3VibWVudV9fdGl0bGUiIHN0eWxlPSJib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+UHJvZHVjdDxpIGNsYXNzPSJlbC1zdWJtZW51X19pY29uLWFycm93IGVsLWljb24tYXJyb3ctZG93biI+PC9pPjwvZGl2PjxkaXYgY2xhc3M9ImVsLW1lbnUtLWhvcml6b250YWwiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dWwgcm9sZT0ibWVudSIgY2xhc3M9ImVsLW1lbnUgZWwtbWVudS0tcG9wdXAgZWwtbWVudS0tcG9wdXAtIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmOyI+IDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iZWwtbWVudS1pdGVtIiBzdHlsZT0iY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij48YSBocmVmPSJodHRwczovL2RvY3MubjhuLmlvL2dldHRpbmctc3RhcnRlZC9xdWlja3N0YXJ0Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5RdWlja3N0YXJ0PC9hPjwvbGk+IDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iZWwtbWVudS1pdGVtIiBzdHlsZT0iY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij48YSBocmVmPSIvaW50ZWdyYXRpb25zIj5BcHBzICZhbXA7IG5vZGVzPC9hPjwvbGk+IDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iZWwtbWVudS1pdGVtIiBzdHlsZT0iY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij48YSBocmVmPSIvd29ya2Zsb3dzIj5Xb3JrZmxvd3M8L2E+PC9saT4gPGRpdiBjbGFzcz0iZHJvcGRvd24tbWVudS1kaXZpZGVyIj48L2Rpdj4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5uOG4uaW8vIiB0YXJnZXQ9Il9ibGFuayI+RG9jczwvYT48L2xpPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9ImNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL244bi1pby9uOG4iIHRhcmdldD0iX2JsYW5rIj5HaXRodWI8L2E+PC9saT48L3VsPjwvZGl2PjwvbGk+IDxsaSByb2xlPSJtZW51aXRlbSIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgY2xhc3M9Im5hdmlnYXRpb24taXRlbSBlbC1zdWJtZW51Ij48ZGl2IGNsYXNzPSJlbC1zdWJtZW51X190aXRsZSIgc3R5bGU9ImJvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij5Db21tdW5pdHk8aSBjbGFzcz0iZWwtc3VibWVudV9faWNvbi1hcnJvdyBlbC1pY29uLWFycm93LWRvd24iPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJlbC1tZW51LS1ob3Jpem9udGFsIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHVsIHJvbGU9Im1lbnUiIGNsYXNzPSJlbC1tZW51IGVsLW1lbnUtLXBvcHVwIGVsLW1lbnUtLXBvcHVwLSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZjsiPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9ImNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9jb21tdW5pdHkubjhuLmlvIiB0YXJnZXQ9Il9ibGFuayI+Rm9ydW08L2E+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9uOG4taW8vIiB0YXJnZXQ9Il9ibGFuayI+QmxvZzwvYT48L2xpPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9ImNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLm44bi5pby9yZWZlcmVuY2UvY29udHJpYnV0aW5nLmh0bWwiIHRhcmdldD0iX2JsYW5rIj4KCQkJCUNvbnRyaWJ1dGUKCQkJPC9hPjwvbGk+PC91bD48L2Rpdj48L2xpPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSBuYXZpZ2F0aW9uLWl0ZW0iIHN0eWxlPSJjb2xvcjojMzMzO2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9uOG4uY2xvdWQiIHRhcmdldD0iX2JsYW5rIj5uOG4uY2xvdWQ8L2E+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0gdXNlci1tZW51IiBzdHlsZT0iY29sb3I6IzMzMztib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Ii9sb2dpbiIgdGl0bGU9IkxvZ2luIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVsLWJ1dHRvbiBlbC1idXR0b24tLXNlY29uZGFyeSBlbC1idXR0b24tLXNtYWxsIGlzLXJvdW5kIj48IS0tLS0+PCEtLS0tPjxzcGFuPjxzcGFuPlNpZ24gaW48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvYT4gPGEgaHJlZj0iL3JlZ2lzdGVyIiB0aXRsZT0iUmVnaXN0ZXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZWwtYnV0dG9uIGVsLWJ1dHRvbi0tcHJpbWFyeSBlbC1idXR0b24tLXNtYWxsIGlzLXJvdW5kIj48IS0tLS0+PCEtLS0tPjxzcGFuPjxzcGFuPlJlZ2lzdGVyPC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48L2E+PC9saT48L3VsPjwvZGl2PiA8ZGl2IGNsYXNzPSJtZW51LXRvZ2dsZSBoaWRkZW4tbWQtYW5kLXVwIGVsLWNvbCBlbC1jb2wtMjQgZWwtY29sLXhzLTggZWwtY29sLXNtLTgiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZWwtYnV0dG9uIGVsLWJ1dHRvbi0tZGVmYXVsdCBlbC1idXR0b24tLW1lZGl1bSI+PCEtLS0tPjwhLS0tLT48c3Bhbj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLXByZWZpeD0iZmFzIiBkYXRhLWljb249ImJhcnMiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWJhcnMgZmEtdy0xNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTYgMTMyaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2Vjc2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZIMTZDNy4xNjMgNjAgMCA2Ny4xNjMgMCA3NnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2eiI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4gPGRpdiBjbGFzcz0iaGlkZGVuLW1kLWFuZC11cCBlbC1jb2wgZWwtY29sLTI0IGVsLWNvbC1zbS0yNCI+PGRpdiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGRpdiBjbGFzcz0ibWVudS1jb250YWluZXIiPjx1bCByb2xlPSJtZW51YmFyIiBtb2RlPSJ2ZXJ0aWNhbCIgY2xhc3M9ImRlZmF1bHQtbWVudSBlbC1tZW51IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGxpIHJvbGU9Im1lbnVpdGVtIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0ibmF2aWdhdGlvbi1pdGVtIGVsLXN1Ym1lbnUiPjxkaXYgY2xhc3M9ImVsLXN1Ym1lbnVfX3RpdGxlIiBzdHlsZT0icGFkZGluZy1sZWZ0OjIwcHg7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij5Qcm9kdWN0PGkgY2xhc3M9ImVsLXN1Ym1lbnVfX2ljb24tYXJyb3cgZWwtaWNvbi1hcnJvdy1kb3duIj48L2k+PC9kaXY+PHVsIHJvbGU9Im1lbnUiIGNsYXNzPSJlbC1tZW51IGVsLW1lbnUtLWlubGluZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5Om5vbmU7Ij4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NDBweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Imh0dHBzOi8vZG9jcy5uOG4uaW8vZ2V0dGluZy1zdGFydGVkL3F1aWNrc3RhcnQuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlF1aWNrc3RhcnQ8L2E+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NDBweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Ii9pbnRlZ3JhdGlvbnMiPkFwcHMgJmFtcDsgbm9kZXM8L2E+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NDBweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Ii93b3JrZmxvd3MiPldvcmtmbG93czwvYT48L2xpPiA8ZGl2IGNsYXNzPSJkcm9wZG93bi1tZW51LWRpdmlkZXIiPjwvZGl2PiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9InBhZGRpbmctbGVmdDo0MHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLm44bi5pby8iIHRhcmdldD0iX2JsYW5rIj5Eb2NzPC9hPjwvbGk+IDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iZWwtbWVudS1pdGVtIiBzdHlsZT0icGFkZGluZy1sZWZ0OjQwcHg7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbjhuLWlvL244biIgdGFyZ2V0PSJfYmxhbmsiPkdpdGh1YjwvYT48L2xpPjwvdWw+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBjbGFzcz0ibmF2aWdhdGlvbi1pdGVtIGVsLXN1Ym1lbnUiPjxkaXYgY2xhc3M9ImVsLXN1Ym1lbnVfX3RpdGxlIiBzdHlsZT0icGFkZGluZy1sZWZ0OjIwcHg7Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ij5Db21tdW5pdHk8aSBjbGFzcz0iZWwtc3VibWVudV9faWNvbi1hcnJvdyBlbC1pY29uLWFycm93LWRvd24iPjwvaT48L2Rpdj48dWwgcm9sZT0ibWVudSIgY2xhc3M9ImVsLW1lbnUgZWwtbWVudS0taW5saW5lIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6bm9uZTsiPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9InBhZGRpbmctbGVmdDo0MHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9jb21tdW5pdHkubjhuLmlvIiB0YXJnZXQ9Il9ibGFuayI+Rm9ydW08L2E+PC9saT4gPGxpIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGNsYXNzPSJlbC1tZW51LWl0ZW0iIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NDBweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9uOG4taW8vIiB0YXJnZXQ9Il9ibGFuayI+QmxvZzwvYT48L2xpPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSIgc3R5bGU9InBhZGRpbmctbGVmdDo0MHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLm44bi5pby9yZWZlcmVuY2UvY29udHJpYnV0aW5nLmh0bWwiIHRhcmdldD0iX2JsYW5rIj4KCQkJCUNvbnRyaWJ1dGUKCQkJPC9hPjwvbGk+PC91bD48L2xpPiA8bGkgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgY2xhc3M9ImVsLW1lbnUtaXRlbSBuYXZpZ2F0aW9uLWl0ZW0iIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDtjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZjsiPjxhIGhyZWY9Imh0dHBzOi8vbjhuLmNsb3VkIiB0YXJnZXQ9Il9ibGFuayI+bjhuLmNsb3VkPC9hPjwvbGk+IDxsaSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iZWwtbWVudS1pdGVtIHVzZXItbWVudSIgc3R5bGU9InBhZGRpbmctbGVmdDoyMHB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZmZmOyI+PGEgaHJlZj0iL2xvZ2luIiB0aXRsZT0iTG9naW4iPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZWwtYnV0dG9uIGVsLWJ1dHRvbi0tc2Vjb25kYXJ5IGVsLWJ1dHRvbi0tc21hbGwgaXMtcm91bmQiPjwhLS0tLT48IS0tLS0+PHNwYW4+PHNwYW4+U2lnbiBpbjwvc3Bhbj48L3NwYW4+PC9idXR0b24+PC9hPiA8YSBocmVmPSIvcmVnaXN0ZXIiIHRpdGxlPSJSZWdpc3RlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbC1idXR0b24gZWwtYnV0dG9uLS1wcmltYXJ5IGVsLWJ1dHRvbi0tc21hbGwgaXMtcm91bmQiPjwhLS0tLT48IS0tLS0+PHNwYW4+PHNwYW4+UmVnaXN0ZXI8L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9oZWFkZXI+IDxkaXYgY2xhc3M9ImNvbnRlbnQtbWFpbiI+PG1haW4gY2xhc3M9ImVsLW1haW4iPjxzZWN0aW9uIGNsYXNzPSJwYWdlLWhvbWUiPjxkaXYgY2xhc3M9ImJhY2tncm91bmQtaW1hZ2UgYm90dG9tLWJhY2tncm91bmQtaW1hZ2UiIGRhdGEtdi03YTM3MmFkYz48aW1nIGRhdGEtc3Jjc2V0PSIvX251eHQvaW1nLzZmNzU4NTAucG5nIDF4LCAvX251eHQvaW1nLzZmNzU4NTAucG5nIDF4LCAvX251eHQvaW1nLzFkNjhiMmYucG5nIDJ4IiBhbHQ9ImJhY2tncm91bmQgaW1hZ2UiIHdpZHRoPSIxMDAlIiBkYXRhLXYtN2EzNzJhZGM+PC9kaXY+IDxkaXYgY2xhc3M9InNlY3Rpb24gaW50cm8iPjxkaXYgY2xhc3M9ImJhY2tncm91bmQtaW1hZ2UgaXMtbWlycm9yZWQiIGRhdGEtdi03YTM3MmFkYz48aW1nIGRhdGEtc3Jjc2V0PSIvX251eHQvaW1nLzA3YjQwYzMucG5nIDF4LCAvX251eHQvaW1nLzJhMDY5OGIucG5nIDJ4IiBhbHQ9ImJhY2tncm91bmQgaW1hZ2UiIHdpZHRoPSIxMDAlIiBkYXRhLXYtN2EzNzJhZGM+PC9kaXY+IDxkaXYgY2xhc3M9ImJhY2tncm91bmQtaW1hZ2UiIGRhdGEtdi03YTM3MmFkYz48aW1nIGRhdGEtc3Jjc2V0PSIvX251eHQvaW1nL2Q4MTc3MjcucG5nIDF4LCAvX251eHQvaW1nL2NkZTQwN2YucG5nIDJ4IiBhbHQ9ImJhY2tncm91bmQgaW1hZ2UiIHdpZHRoPSIxMDAlIiBkYXRhLXYtN2EzNzJhZGM+PC9kaXY+IDxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PGRpdiBjbGFzcz0ibWItMSBlbC1yb3ciPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC1vZmZzZXQtMyBlbC1jb2wtbWQtMTgiPjxoMSBjbGFzcz0iaGVhZGluZyBjZW50ZXIiPgoJCQkJCQlFeHRlbmRhYmxlIHdvcmtmbG93IGF1dG9tYXRpb24KCQkJCQk8L2gxPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJtYi01IGVsLXJvdyI+PGRpdiBjbGFzcz0iZWwtY29sIGVsLWNvbC0yMCBlbC1jb2wtb2Zmc2V0LTIgZWwtY29sLW1kLW9mZnNldC01IGVsLWNvbC1tZC0xNCI+PGRpdiBjbGFzcz0ic3ViLWhlYWRpbmciPjxhIGhyZWY9Imh0dHBzOi8vZmFpcmNvZGUuaW8iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0icHJpbWFyeSI+ZmFpci1jb2RlPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbjhuLWlvL244bi9ibG9iL21hc3Rlci9wYWNrYWdlcy9jbGkvTElDRU5TRS5tZCIgdGl0bGU9IkxpY2Vuc2UgaW5mb3JtYXRpb24iIHRhcmdldD0iX2JsYW5rIj4KCQkJCQkJCWxpY2Vuc2VkIC0gQXBhY2hlIDIuMCB3aXRoIENvbW1vbnMgQ2xhdXNlCgkJCQkJCTwvYT48L2Rpdj48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgbWItOCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbC1idXR0b24gZ2V0LXN0YXJ0ZWQtYnV0dG9uIGVsLWJ1dHRvbi0tcHJpbWFyeSBlbC1idXR0b24tLWxhcmdlIGlzLXJvdW5kIj48IS0tLS0+PCEtLS0tPjxzcGFuPkdldCBTdGFydGVkCgkJCQk8L3NwYW4+PC9idXR0b24+PC9kaXY+IDxkaXYgY2xhc3M9ImJhZGdlLXJvdyBlbC1yb3ciIHN0eWxlPSJtYXJnaW4tbGVmdDotMTBweDttYXJnaW4tcmlnaHQ6LTEwcHg7Ij48ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTQgZWwtY29sLW1kLTggZWwtY29sLWxnLW9mZnNldC02IGVsLWNvbC1sZy02IiBzdHlsZT0icGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4OyI+PGRpdiBjbGFzcz0icHJvZHVjdC1odW50LWJhZGdlIiBkYXRhLXYtZWEyNmQ1ZmE+PGEgaHJlZj0iaHR0cHM6Ly93d3cucHJvZHVjdGh1bnQuY29tL3Bvc3RzL244bj91dG1fc291cmNlPWJhZGdlLXRvcC1wb3N0LWJhZGdlJnV0bV9tZWRpdW09YmFkZ2UmdXRtX3NvdWNlPWJhZGdlLW44biIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtdi1lYTI2ZDVmYT48aW1nIHNyYz0iaHR0cHM6Ly9hcGkucHJvZHVjdGh1bnQuY29tL3dpZGdldHMvZW1iZWQtaW1hZ2UvdjEvdG9wLXBvc3QtYmFkZ2Uuc3ZnP3Bvc3RfaWQ9MTcwMzkxJnRoZW1lPWxpZ2h0JnBlcmlvZD13ZWVrbHkiIGFsdD0ibjhuIC0gRnJlZSB3b3JrZmxvdyBhdXRvbWF0aW9uIHRvb2wgfCBQcm9kdWN0IEh1bnQgRW1iZWQiIHdpZHRoPSIyNTBweCIgaGVpZ2h0PSI1NHB4IiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDU0cHg7IiBkYXRhLXYtZWEyNmQ1ZmE+PC9hPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTAgZWwtY29sLW1kLTggZWwtY29sLWxnLW9mZnNldC0wIGVsLWNvbC1sZy02IiBzdHlsZT0icGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4OyI+PGRpdiBjbGFzcz0iZ2l0aHViLWJhZGdlIj48ZGl2IGNsYXNzPSJnaXRodWItYmFkZ2VfX3RpdGxlIj4KCQlHaXRodWIKCTwvZGl2PiA8ZGl2IGNsYXNzPSJnaC1idXR0b24tY29udGFpbmVyIj48YSBjbGFzcz0iZ2gtYnV0dG9uIj48c3ZnIHZlcnNpb249IjEuMSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTIgMTYiIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLXN5bmMgc3BpbiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAuMjQgNy40YTQuMTUgNC4xNSAwIDAgMS0xLjIgMy42IDQuMzQ2IDQuMzQ2IDAgMCAxLTUuNDEuNTRMNC44IDEwLjQuNSA5LjhsLjYgNC4yIDEuMzEtMS4yNmMyLjM2IDEuNzQgNS43IDEuNTcgNy44NC0uNTRhNS44NzYgNS44NzYgMCAwIDAgMS43NC00LjQ2bC0xLjc1LS4zNHpNMi45NiA1YTQuMzQ2IDQuMzQ2IDAgMCAxIDUuNDEtLjU0TDcuMiA1LjZsNC4zLjYtLjYtNC4yLTEuMzEgMS4yNmMtMi4zNi0xLjc0LTUuNy0xLjU3LTcuODUuNTRDLjUgNS4wMy0uMDYgNi42NS4wMSA4LjI2bDEuNzUuMzVBNC4xNyA0LjE3IDAgMCAxIDIuOTYgNXoiPjwvcGF0aD48L3N2Zz48L2E+PC9kaXY+IDxkaXYgY2xhc3M9ImdoLWJ1dHRvbi1jb250YWluZXIiPjxhIGNsYXNzPSJnaC1idXR0b24iPjxzdmcgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxMiAxNiIgYXJpYS1oaWRkZW49InRydWUiIGNsYXNzPSJvY3RpY29uIG9jdGljb24tc3luYyBzcGluIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMC4yNCA3LjRhNC4xNSA0LjE1IDAgMCAxLTEuMiAzLjYgNC4zNDYgNC4zNDYgMCAwIDEtNS40MS41NEw0LjggMTAuNC41IDkuOGwuNiA0LjIgMS4zMS0xLjI2YzIuMzYgMS43NCA1LjcgMS41NyA3Ljg0LS41NGE1Ljg3NiA1Ljg3NiAwIDAgMCAxLjc0LTQuNDZsLTEuNzUtLjM0ek0yLjk2IDVhNC4zNDYgNC4zNDYgMCAwIDEgNS40MS0uNTRMNy4yIDUuNmw0LjMuNi0uNi00LjItMS4zMSAxLjI2Yy0yLjM2LTEuNzQtNS43LTEuNTctNy44NS41NEMuNSA1LjAzLS4wNiA2LjY1LjAxIDguMjZsMS43NS4zNUE0LjE3IDQuMTcgMCAwIDEgMi45NiA1eiI+PC9wYXRoPjwvc3ZnPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0ic2VjdGlvbiBoZXJvIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD0iZ3JhZDEiIGN4PSI1MCUiIGN5PSI1MCUiIHI9Ijc1JSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDI1MywgMjUzLCAyNTUpO3N0b3Atb3BhY2l0eToxOyI+PC9zdG9wPiA8c3RvcCBvZmZzZXQ9IjQ0JSIgc3R5bGU9InN0b3AtY29sb3I6cmdiKDI1MywgMjUzLCAyNTUpO3N0b3Atb3BhY2l0eToxOyI+PC9zdG9wPiA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYigyMzcsIDIzNiwgMjQ0KTtzdG9wLW9wYWNpdHk6MTsiPjwvc3RvcD48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz4gPHBvbHlnb24gZmlsbD0idXJsKCNncmFkMSkiIHBvaW50cz0iMCwwIDUwLDE1IDEwMCwwIDEwMCwxMDAgMCwxMDAiPjwvcG9seWdvbj48L3N2Zz4gPGRpdiBjbGFzcz0iY29udGVudC13cmFwcGVyIj48ZGl2IGNsYXNzPSJlbC1yb3ciPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC1vZmZzZXQtNCBlbC1jb2wtbWQtMTYiPjxkaXYgY2xhc3M9Imhlcm8taW1hZ2UtY29udGFpbmVyIj48ZGl2IGNsYXNzPSJoZXJvLWltYWdlLWRlY29yYXRpb24gbGVmdCI+PGltZyB3aWR0aD0iMTAwJSI+PC9kaXY+IDxkaXYgY2xhc3M9Imhlcm8taW1hZ2UtZGVjb3JhdGlvbiByaWdodCI+PGltZyB3aWR0aD0iMTAwJSI+PC9kaXY+IDwhLS0tLT4gPGRpdiBjbGFzcz0iaGVyby1pbWFnZS1vdmVybGF5Ij48ZGl2IGNsYXNzPSJoZXJvLWltYWdlLXBsYXktY29udGFpbmVyIj48aW1nIHNyYz0iL19udXh0L2ltZy85MTlkZTQ2LnN2ZyIgYWx0PSJQbGF5IGljb24iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiA8ZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTYgZWwtY29sLW1kLTEyIj48cCBjbGFzcz0idGV4dCBtdXRlZCBtdC0yIG1iLTMiPgoJCQkJCQlXYXRjaCBob3cgc2ltcGxlIGl0IGlzIHRvIGRlc2lnbiBhCgkJCQkJCTxzcGFuIGNsYXNzPSJ0ZXh0IHNlbWlib2xkIj5UeXBlZm9ybTwvc3Bhbj4gKwoJCQkJCQk8c3BhbiBjbGFzcz0idGV4dCBzZW1pYm9sZCI+R29vZ2xlIFNoZWV0czwvc3Bhbj4gKwoJCQkJCQk8c3BhbiBjbGFzcz0idGV4dCBzZW1pYm9sZCI+U2xhY2s8L3NwYW4+IHdvcmtmbG93CgkJCQkJPC9wPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJtdC04IHBiLTUgYmVuZWZpdHMtcm93IGVsLXJvdyI+PGRpdiBjbGFzcz0iZWwtY29sIGVsLWNvbC0yMiBlbC1jb2wtb2Zmc2V0LTEgZWwtY29sLW1kLW9mZnNldC0yIGVsLWNvbC1tZC02Ij48ZGl2IGNsYXNzPSJpY29uLXRleHQtZGVzY3JpcHRpb24tY2FyZCIgZGF0YS12LWE4NmYyNTJlPjxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIgbWItMyIgZGF0YS12LWE4NmYyNTJlPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0ibWF0ZXJpYWwtaWNvbiBtYXRlcmlhbC1pY29uX19wcmltYXJ5IiBzdHlsZT0id2lkdGg6NDhweDtoZWlnaHQ6NDhweDsiIGRhdGEtdi0xZGUzZGQ2OCBkYXRhLXYtYTg2ZjI1MmU+PHRpdGxlIGRhdGEtdi0xZGUzZGQ2OD5PcGVuIGljb248L3RpdGxlPiA8IS0tLS0+IDxwYXRoIGQ9Ik0xNy45LDE3LjM5QzE3LjY0LDE2LjU5IDE2Ljg5LDE2IDE2LDE2SDE1VjEzQTEsMSAwIDAsMCAxNCwxMkg4VjEwSDEwQTEsMSAwIDAsMCAxMSw5VjdIMTNBMiwyIDAgMCwwIDE1LDVWNC41OUMxNy45Myw1Ljc3IDIwLDguNjQgMjAsMTJDMjAsMTQuMDggMTkuMiwxNS45NyAxNy45LDE3LjM5TTExLDE5LjkzQzcuMDUsMTkuNDQgNCwxNi4wOCA0LDEyQzQsMTEuMzggNC4wOCwxMC43OCA0LjIxLDEwLjIxTDksMTVWMTZBMiwyIDAgMCwwIDExLDE4TTEyLDJBMTAsMTAgMCAwLDAgMiwxMkExMCwxMCAwIDAsMCAxMiwyMkExMCwxMCAwIDAsMCAyMiwxMkExMCwxMCAwIDAsMCAxMiwyWiIgZmlsbD0iIiBkYXRhLXYtMWRlM2RkNjg+PC9wYXRoPjwvc3ZnPjwvZGl2PiA8aDMgY2xhc3M9ImhlYWRpbmciIGRhdGEtdi1hODZmMjUyZT5PcGVuPC9oMz4gPHAgY2xhc3M9InRleHQgbXV0ZWQiIGRhdGEtdi1hODZmMjUyZT4KCQkJCQkJVGhhbmtzIHRvIG91ciBmYWlyLWNvZGUgbGljZW5zZSwgcnVuIG44biBsb2NhbGx5LCBvciB0aGUgY2xvdWQuCgkJCQkJCURlY2lkZSB3aG8gZ2V0cyBhY2Nlc3MgYW5kIHdoZXJlIHlvdXIgZGF0YSBpcyBzdG9yZWQuCgkJCQkJPC9wPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtNiI+PGRpdiBjbGFzcz0iaWNvbi10ZXh0LWRlc2NyaXB0aW9uLWNhcmQiIGRhdGEtdi1hODZmMjUyZT48ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIG1iLTMiIGRhdGEtdi1hODZmMjUyZT48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgY2xhc3M9Im1hdGVyaWFsLWljb24gbWF0ZXJpYWwtaWNvbl9fcHJpbWFyeSIgc3R5bGU9IndpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7IiBkYXRhLXYtMWRlM2RkNjggZGF0YS12LWE4NmYyNTJlPjx0aXRsZSBkYXRhLXYtMWRlM2RkNjg+RXh0ZW5kYWJsZSBpY29uPC90aXRsZT4gPCEtLS0tPiA8cGF0aCBkPSJNOCwzQTIsMiAwIDAsMCA2LDVWOUEyLDIgMCAwLDEgNCwxMUgzVjEzSDRBMiwyIDAgMCwxIDYsMTVWMTlBMiwyIDAgMCwwIDgsMjFIMTBWMTlIOFYxNEEyLDIgMCAwLDAgNiwxMkEyLDIgMCAwLDAgOCwxMFY1SDEwVjNNMTYsM0EyLDIgMCAwLDEgMTgsNVY5QTIsMiAwIDAsMCAyMCwxMUgyMVYxM0gyMEEyLDIgMCAwLDAgMTgsMTVWMTlBMiwyIDAgMCwxIDE2LDIxSDE0VjE5SDE2VjE0QTIsMiAwIDAsMSAxOCwxMkEyLDIgMCAwLDEgMTYsMTBWNUgxNFYzSDE2WiIgZmlsbD0iIiBkYXRhLXYtMWRlM2RkNjg+PC9wYXRoPjwvc3ZnPjwvZGl2PiA8aDMgY2xhc3M9ImhlYWRpbmciIGRhdGEtdi1hODZmMjUyZT5FeHRlbmRhYmxlPC9oMz4gPHAgY2xhc3M9InRleHQgbXV0ZWQiIGRhdGEtdi1hODZmMjUyZT4KCQkJCQkJRWFzeSB0byBhdWdtZW50IHdpdGggY3VzdG9tIGZ1bmN0aW9ucyBsb2dpYywgYW5kIGFwcHMgd2l0aCBtaW5pbWFsCgkJCQkJCWVuZ2luZWVyaW5nIGVmZm9ydC4KCQkJCQk8L3A+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC02Ij48ZGl2IGNsYXNzPSJpY29uLXRleHQtZGVzY3JpcHRpb24tY2FyZCIgZGF0YS12LWE4NmYyNTJlPjxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIgbWItMyIgZGF0YS12LWE4NmYyNTJlPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBjbGFzcz0ibWF0ZXJpYWwtaWNvbiBtYXRlcmlhbC1pY29uX19wcmltYXJ5IiBzdHlsZT0id2lkdGg6NDhweDtoZWlnaHQ6NDhweDsiIGRhdGEtdi0xZGUzZGQ2OCBkYXRhLXYtYTg2ZjI1MmU+PHRpdGxlIGRhdGEtdi0xZGUzZGQ2OD5Qb3dlcmZ1bCBpY29uPC90aXRsZT4gPCEtLS0tPiA8cGF0aCBkPSJNMTIsMkExMCwxMCAwIDAsMCAyLDEyQTEwLDEwIDAgMCwwIDEyLDIyQTEwLDEwIDAgMCwwIDIyLDEyQTEwLDEwIDAgMCwwIDEyLDJNMTIsNEE4LDggMCAwLDEgMjAsMTJDMjAsMTQuNCAxOSwxNi41IDE3LjMsMThDMTUuOSwxNi43IDE0LDE2IDEyLDE2QzEwLDE2IDguMiwxNi43IDYuNywxOEM1LDE2LjUgNCwxNC40IDQsMTJBOCw4IDAgMCwxIDEyLDRNMTAsNkExLDEgMCAwLDAgOSw3QTEsMSAwIDAsMCAxMCw4QTEsMSAwIDAsMCAxMSw3QTEsMSAwIDAsMCAxMCw2TTE0LDZBMSwxIDAgMCwwIDEzLDdBMSwxIDAgMCwwIDE0LDhBMSwxIDAgMCwwIDE1LDdBMSwxIDAgMCwwIDE0LDZNMTcuMDksOC45NEMxNi45Niw4Ljk0IDE2Ljg0LDguOTcgMTYuNyw5TDEzLjUsMTAuMzJMMTMuMjMsMTAuNDNDMTIuNjcsMTAgMTEuOTEsOS44OCAxMS4yNSwxMC4xNUMxMC4yMywxMC41NiA5LjczLDExLjczIDEwLjE1LDEyLjc1QzEwLjU2LDEzLjc3IDExLjczLDE0LjI3IDEyLjc1LDEzLjg1QzEzLjQxLDEzLjU5IDEzLjg4LDEzIDE0LDEyLjI4TDE0LjIzLDEyLjE4TDE3LjQ1LDEwLjg4TDE3LjQ3LDEwLjg3QzE4LDEwLjY2IDE4LjIzLDEwLjA4IDE4LjAzLDkuNTZDMTcuODcsOS4xOCAxNy41LDguOTMgMTcuMDksOC45NE03LDlBMSwxIDAgMCwwIDYsMTBBMSwxIDAgMCwwIDcsMTFBMSwxIDAgMCwwIDgsMTBBMSwxIDAgMCwwIDcsOVoiIGZpbGw9IiIgZGF0YS12LTFkZTNkZDY4PjwvcGF0aD48L3N2Zz48L2Rpdj4gPGgzIGNsYXNzPSJoZWFkaW5nIiBkYXRhLXYtYTg2ZjI1MmU+UG93ZXJmdWw8L2gzPiA8cCBjbGFzcz0idGV4dCBtdXRlZCIgZGF0YS12LWE4NmYyNTJlPgoJCQkJCQluOG4ncyBub2RlIGJhc2VkIGVkaXRvciBsZXRzIHlvdSBtYXAgYW55dGhpbmcgdG8gZXZlcnl0aGluZyBhbmQgZ28KCQkJCQkJYmV5b25kIGJhc2ljIEVUTC4KCQkJCQk8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9InNlY3Rpb24gZmVhdHVyZXMiPjxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PGRpdiBjbGFzcz0iZWwtcm93Ij48ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTggZWwtY29sLW1kLTgiPjxoMiBjbGFzcz0iaGVhZGluZyBjZW50ZXIiPldoYXQgY2FuIEkgZG8gd2l0aCBuOG4/PC9oMj48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmVhdHVyZXMtcm93IGVsLXJvdyBlbC1yb3ctLWZsZXgiPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC1vZmZzZXQtMCBlbC1jb2wtbWQtMTAiPjxkaXYgY2xhc3M9InB0LTIiPjxkaXYgZGVzY3JpcHRpb249Ik1vdmUgYW5kIHRyYW5zZm9ybSBkYXRhIGJldHdlZW4gZGlmZmVyZW50IGFwcHMgYW5kIGRhdGFiYXNlcyB3aXRob3V0IGdldHRpbmcgY2F1Z2h0IHVwIGluIEFQSSBkb2NzIGFuZCB0cm91Ymxlc2hvb3RpbmcgQ09SUyBlcnJvcnMuIiBzcmM9Ii9fbnV4dC9pbWcvMjg3MzE4Zi5wbmciIHRodW1ibmFpbFdpZHRoPSIxMDAlIiBjbGFzcz0iZWwtY2FyZCBmZWF0dXJlLWNhcmQgaXMtbmV2ZXItc2hhZG93IGlzLWFjdGl2ZSIgZGF0YS12LTkxMWQ1ODAyPjwhLS0tLT48ZGl2IGNsYXNzPSJlbC1jYXJkX19ib2R5Ij48aDMgY2xhc3M9ImhlYWRpbmciIGRhdGEtdi05MTFkNTgwMj5TeW5jIGRhdGEgYmV0d2VlbiAxNTArIGFwcHM8L2gzPiA8cCBjbGFzcz0idGV4dCBtdXRlZCBtdC0yIiBkYXRhLXYtOTExZDU4MDI+CgkJCQkJCQlNb3ZlIGFuZCB0cmFuc2Zvcm0gZGF0YSBiZXR3ZWVuIGRpZmZlcmVudCBhcHBzIGFuZCBkYXRhYmFzZXMgd2l0aG91dCBnZXR0aW5nIGNhdWdodCB1cCBpbiBBUEkgZG9jcyBhbmQgdHJvdWJsZXNob290aW5nIENPUlMgZXJyb3JzLgoJCQkJCQk8L3A+PC9kaXY+PC9kaXY+PGRpdiBkZXNjcmlwdGlvbj0iR28gYmV5b25kIEVUTDogc3RhcnQgd2l0aCBzaW1wbGUgbm8tY29kZSBmbG93cyBhbmQgYWRkIGphdmFzY3JpcHQgZnVuY3Rpb25zLCBjb25kaXRpb25hbCBsb2dpYywgb3IgY3VzdG9tIGh0dHAgcmVxdWVzdHMgaW4gYSBzbmFwLiIgc3JjPSIvX251eHQvaW1nLzJkYzNhZTAuZ2lmIiB0aHVtYm5haWxXaWR0aD0iMTAwJSIgY2xhc3M9ImVsLWNhcmQgZmVhdHVyZS1jYXJkIGlzLW5ldmVyLXNoYWRvdyIgZGF0YS12LTkxMWQ1ODAyPjwhLS0tLT48ZGl2IGNsYXNzPSJlbC1jYXJkX19ib2R5Ij48aDMgY2xhc3M9ImhlYWRpbmciIGRhdGEtdi05MTFkNTgwMj5EZXNpZ24gcG93ZXJmdWwgd29ya2Zsb3dzPC9oMz4gPCEtLS0tPjwvZGl2PjwvZGl2PjxkaXYgZGVzY3JpcHRpb249IkRlc2lnbiBiZXNwb2tlIG5vZGVzIGZvciBhIHByb3ByaWV0YXJ5IENSTSwgZW5kcG9pbnRzIGZvciB5b3VyIHByb2R1Y3QsIG9yIGFueSBvdGhlciBzb2Z0d2FyZSwgYW5kIGVtcG93ZXIgeW91ciBtYXJrZXRpbmcgYW5kIG9wcyB0ZWFtcyB0byBjcmVhdGUgdGhlaXIgb3duIHdvcmtmbG93cy4iIHNyYz0iL19udXh0L2ltZy80MjY0OWZmLmpwZyIgdGh1bWJuYWlsV2lkdGg9IjEwMCUiIGNsYXNzPSJlbC1jYXJkIGZlYXR1cmUtY2FyZCBpcy1uZXZlci1zaGFkb3ciIGRhdGEtdi05MTFkNTgwMj48IS0tLS0+PGRpdiBjbGFzcz0iZWwtY2FyZF9fYm9keSI+PGgzIGNsYXNzPSJoZWFkaW5nIiBkYXRhLXYtOTExZDU4MDI+Q3JlYXRlIGN1c3RvbSBpbnRlZ3JhdGlvbnM8L2gzPiA8IS0tLS0+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9ImltYWdlLWNvbCBlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTIgZWwtY29sLW1kLTEyIj48ZGl2IGNsYXNzPSJmZWF0dXJlLWltYWdlLWNvbnRhaW5lciI+PCEtLS0tPiA8cCBjbGFzcz0idGV4dCBtdXRlZCB0ZXh0LWNlbnRlciI+CgkJCQkJCQlTZWUgd2hhdCBlbHNlIHlvdSBjYW4gZG8gd2l0aCBuOG4hIFZpc2l0IG91cgoJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL244bi1pbyIgdGFyZ2V0PSJfYmxhbmsiPk1lZGl1bSBwdWJsaWNhdGlvbjwvYT48L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9InNlY3Rpb24gZ2V0LXN0YXJ0ZWQiPjxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PGRpdiBjbGFzcz0iZWwtcm93Ij48ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTggZWwtY29sLW1kLTgiPjxoMiBjbGFzcz0iaGVhZGluZyBjZW50ZXIiPkhvdyB0byBnZXQgc3RhcnRlZD88L2gyPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJnZXQtc3RhcnRlZC1yb3cgZWwtcm93IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTEwcHg7bWFyZ2luLXJpZ2h0Oi0xMHB4OyI+PGRpdiBjbGFzcz0iZWwtY29sIGVsLWNvbC0yNCBlbC1jb2wtbWQtMTIiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7Ij48aDMgY2xhc3M9ImhlYWRpbmcgY2VudGVyIG1iLTIiPgoJCQkJCQlDTEkKCQkJCQk8L2gzPiA8ZGl2IGNsYXNzPSJleGVjdXRpb24tY29kZSBjbGktbnB4Ij48ZGl2IGNsYXNzPSJjbGljay10by1jb3B5IGNsaWNrYWJsZSI+CgkJQ2xpY2sgdG8gY29weQoJPC9kaXY+IDwhLS0tLT48L2Rpdj4gPGRpdiBjbGFzcz0iZXhlY3V0aW9uLWNvZGUgY2xpLW5wbS1pbnN0YWxsIj48ZGl2IGNsYXNzPSJjbGljay10by1jb3B5IGNsaWNrYWJsZSI+CgkJQ2xpY2sgdG8gY29weQoJPC9kaXY+IDwhLS0tLT48L2Rpdj4gPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9uOG4taW8vbjhuL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2NsaS9SRUFETUUubWQiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibGluay1wcmltYXJ5Ij4KCQkJCQkJCUFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgQ0xJCgkJCQkJCTwvYT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZWwtY29sIGVsLWNvbC0yNCBlbC1jb2wtbWQtMTIiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7Ij48aDMgY2xhc3M9ImhlYWRpbmcgY2VudGVyIG1iLTIiPgoJCQkJCQlEb2NrZXIKCQkJCQk8L2gzPiA8ZGl2IGNsYXNzPSJleGVjdXRpb24tY29kZSBkb2NrZXIiPjxkaXYgY2xhc3M9ImNsaWNrLXRvLWNvcHkgY2xpY2thYmxlIj4KCQlDbGljayB0byBjb3B5Cgk8L2Rpdj4gPCEtLS0tPjwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL244bi1pby9uOG4vYmxvYi9tYXN0ZXIvZG9ja2VyL2ltYWdlcy9uOG4vUkVBRE1FLm1kIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImxpbmstcHJpbWFyeSI+CgkJCQkJCQlBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IGRvY2tlciBkZXBsb3ltZW50CgkJCQkJCTwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0ic2VjdGlvbiBob3N0aW5nLWluZm8iPjxkaXYgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+PGRpdiBjbGFzcz0iZWwtcm93Ij48ZGl2IGNsYXNzPSJlbC1jb2wgZWwtY29sLTIyIGVsLWNvbC1vZmZzZXQtMSBlbC1jb2wtbWQtb2Zmc2V0LTUgZWwtY29sLW1kLTE0Ij48ZGl2IGNsYXNzPSJlbC1jYXJkIGhvc3RpbmctaW5mby1jYXJkIGlzLW5ldmVyLXNoYWRvdyI+PCEtLS0tPjxkaXYgY2xhc3M9ImVsLWNhcmRfX2JvZHkiPjxkaXYgY2xhc3M9ImVsLXJvdyBpcy1qdXN0aWZ5LXNwYWNlLWJldHdlZW4gaXMtYWxpZ24tbWlkZGxlIGVsLXJvdy0tZmxleCI+PHNwYW4+CgkJCQkJCQkJbjhuLmNsb3VkIC0gb3VyIGhvc3RlZCBvZmZlcmluZyBpcyBub3cgaW4gZWFybHkgYWNjZXNzCgkJCQkJCQk8L3NwYW4+IDxkaXY+PGEgaHJlZj0iaHR0cHM6Ly9uOG4uY2xvdWQ/dXRtX3NvdXJjZT1uOG4uaW8mYW1wO3V0bV9tZWRpdW09d2ViJmFtcDt1dG1fY2FtcGFpZ249aG9tZXBhZ2UtY2xvdWQtY3RhIiB0YXJnZXQ9Il9ibGFuayI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbC1idXR0b24gZWwtYnV0dG9uLS1kZWZhdWx0IGlzLXJvdW5kIj48IS0tLS0+PCEtLS0tPjxzcGFuPkxlYXJuIG1vcmU8L3NwYW4+PC9idXR0b24+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJzZWN0aW9uIGNvbnRhY3QtaW5mbyBkYXJrIHB0LTggcGItOCI+PGRpdiBjbGFzcz0iY29udGVudC13cmFwcGVyIj48ZGl2IGNsYXNzPSJlbC1yb3ciPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC05Ij48aDIgY2xhc3M9ImhlYWRpbmcgbWItMiI+CgkJCQkJCUdldCB1cGRhdGVzIGZyb20gbjhuCgkJCQkJPC9oMj48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0ibWItNSBlbC1yb3ciPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC0xMSI+PGRpdiBjbGFzcz0iYnJhbmRpbmctaXRlbXMiPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9uOG4taW8iIGNsYXNzPSJicmFuZGluZy1pdGVtIiBkYXRhLXYtYTNjMTUzNGE+PGRpdiBjbGFzcz0iYnJhbmRpbmctaXRlbV9fY29udGVudCIgZGF0YS12LWEzYzE1MzRhPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGRhdGEtcHJlZml4PSJmYWIiIGRhdGEtaWNvbj0ibWVkaXVtIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZWRpdW0gZmEtdy0xNCIgZGF0YS12LWEzYzE1MzRhIGRhdGEtdi1hM2MxNTM0YT48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0wIDMydjQ0OGg0NDhWMzJIMHptMzcyLjIgMTA2LjFsLTI0IDIzYy0yLjEgMS42LTMuMSA0LjItMi43IDYuN3YxNjkuM2MtLjQgMi42LjYgNS4yIDIuNyA2LjdsMjMuNSAyM3Y1LjFoLTExOFYzNjdsMjQuMy0yMy42YzIuNC0yLjQgMi40LTMuMSAyLjQtNi43VjE5OS44bC02Ny42IDE3MS42aC05LjFMMTI1IDE5OS44djExNWMtLjcgNC44IDEgOS43IDQuNCAxMy4ybDMxLjYgMzguM3Y1LjFINzEuMnYtNS4xbDMxLjYtMzguM2MzLjQtMy41IDQuOS04LjQgNC4xLTEzLjJ2LTEzM2MuNC0zLjctMS03LjMtMy44LTkuOEw3NSAxMzguMVYxMzNoODcuM2w2Ny40IDE0OEwyODkgMTMzLjFoODMuMnY1eiIgZGF0YS12LWEzYzE1MzRhIGRhdGEtdi1hM2MxNTM0YT48L3BhdGg+PC9zdmc+IDxzcGFuIGRhdGEtdi1hM2MxNTM0YT5CbG9nPC9zcGFuPjwvZGl2PjwvYT48YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL244bl9pbyIgY2xhc3M9ImJyYW5kaW5nLWl0ZW0iIGRhdGEtdi1hM2MxNTM0YT48ZGl2IGNsYXNzPSJicmFuZGluZy1pdGVtX19jb250ZW50IiBkYXRhLXYtYTNjMTUzNGE+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhYiIgZGF0YS1pY29uPSJ0d2l0dGVyIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS10d2l0dGVyIGZhLXctMTYiIGRhdGEtdi1hM2MxNTM0YSBkYXRhLXYtYTNjMTUzNGE+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNDU5LjM3IDE1MS43MTZjLjMyNSA0LjU0OC4zMjUgOS4wOTcuMzI1IDEzLjY0NSAwIDEzOC43Mi0xMDUuNTgzIDI5OC41NTgtMjk4LjU1OCAyOTguNTU4LTU5LjQ1MiAwLTExNC42OC0xNy4yMTktMTYxLjEzNy00Ny4xMDYgOC40NDcuOTc0IDE2LjU2OCAxLjI5OSAyNS4zNCAxLjI5OSA0OS4wNTUgMCA5NC4yMTMtMTYuNTY4IDEzMC4yNzQtNDQuODMyLTQ2LjEzMi0uOTc1LTg0Ljc5Mi0zMS4xODgtOTguMTEyLTcyLjc3MiA2LjQ5OC45NzQgMTIuOTk1IDEuNjI0IDE5LjgxOCAxLjYyNCA5LjQyMSAwIDE4Ljg0My0xLjMgMjcuNjE0LTMuNTczLTQ4LjA4MS05Ljc0Ny04NC4xNDMtNTEuOTgtODQuMTQzLTEwMi45ODV2LTEuMjk5YzEzLjk2OSA3Ljc5NyAzMC4yMTQgMTIuNjcgNDcuNDMxIDEzLjMxOS0yOC4yNjQtMTguODQzLTQ2Ljc4MS01MS4wMDUtNDYuNzgxLTg3LjM5MSAwLTE5LjQ5MiA1LjE5Ny0zNy4zNiAxNC4yOTQtNTIuOTU0IDUxLjY1NSA2My42NzUgMTI5LjMgMTA1LjI1OCAyMTYuMzY1IDEwOS44MDctMS42MjQtNy43OTctMi41OTktMTUuOTE4LTIuNTk5LTI0LjA0IDAtNTcuODI4IDQ2Ljc4Mi0xMDQuOTM0IDEwNC45MzQtMTA0LjkzNCAzMC4yMTMgMCA1Ny41MDIgMTIuNjcgNzYuNjcgMzMuMTM3IDIzLjcxNS00LjU0OCA0Ni40NTYtMTMuMzIgNjYuNTk5LTI1LjM0LTcuNzk4IDI0LjM2Ni0yNC4zNjYgNDQuODMzLTQ2LjEzMiA1Ny44MjcgMjEuMTE3LTIuMjczIDQxLjU4NC04LjEyMiA2MC40MjYtMTYuMjQzLTE0LjI5MiAyMC43OTEtMzIuMTYxIDM5LjMwOC01Mi42MjggNTQuMjUzeiIgZGF0YS12LWEzYzE1MzRhIGRhdGEtdi1hM2MxNTM0YT48L3BhdGg+PC9zdmc+IDxzcGFuIGRhdGEtdi1hM2MxNTM0YT5Ud2l0dGVyPC9zcGFuPjwvZGl2PjwvYT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbjhuLWlvL244biIgY2xhc3M9ImJyYW5kaW5nLWl0ZW0iIGRhdGEtdi1hM2MxNTM0YT48ZGl2IGNsYXNzPSJicmFuZGluZy1pdGVtX19jb250ZW50IiBkYXRhLXYtYTNjMTUzNGE+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhYiIgZGF0YS1pY29uPSJnaXRodWIiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDk2IDUxMiIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWdpdGh1YiBmYS13LTE2IiBkYXRhLXYtYTNjMTUzNGEgZGF0YS12LWEzYzE1MzRhPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTE2NS45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zLjMtNS42LTEuMy01LjYtMy42IDAtMiAyLjMtMy42IDUuMi0zLjYgMy0uMyA1LjYgMS4zIDUuNiAzLjZ6bS0zMS4xLTQuNWMtLjcgMiAxLjMgNC4zIDQuMyA0LjkgMi42IDEgNS42IDAgNi4yLTJzLTEuMy00LjMtNC4zLTUuMmMtMi42LS43LTUuNS4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkuNy00LjkgMi42LTQuNiA0LjkuMyAyIDIuOSAzLjMgNS45IDIuNiAyLjktLjcgNC45LTIuNiA0LjYtNC42LS4zLTEuOS0zLTMuMi01LjktMi45ek0yNDQuOCA4QzEwNi4xIDggMCAxMTMuMyAwIDI1MmMwIDExMC45IDY5LjggMjA1LjggMTY5LjUgMjM5LjIgMTIuOCAyLjMgMTcuMy01LjYgMTcuMy0xMi4xIDAtNi4yLS4zLTQwLjQtLjMtNjEuNCAwIDAtNzAgMTUtODQuNy0yOS44IDAgMC0xMS40LTI5LjEtMjcuOC0zNi42IDAgMC0yMi45LTE1LjcgMS42LTE1LjQgMCAwIDI0LjkgMiAzOC42IDI1LjggMjEuOSAzOC42IDU4LjYgMjcuNSA3Mi45IDIwLjkgMi4zLTE2IDguOC0yNy4xIDE2LTMzLjctNTUuOS02LjItMTEyLjMtMTQuMy0xMTIuMy0xMTAuNSAwLTI3LjUgNy42LTQxLjMgMjMuNi01OC45LTIuNi02LjUtMTEuMS0zMy4zIDIuNi02Ny45IDIwLjktNi41IDY5IDI3IDY5IDI3IDIwLTUuNiA0MS41LTguNSA2Mi44LTguNXM0Mi44IDIuOSA2Mi44IDguNWMwIDAgNDguMS0zMy42IDY5LTI3IDEzLjcgMzQuNyA1LjIgNjEuNCAyLjYgNjcuOSAxNiAxNy43IDI1LjggMzEuNSAyNS44IDU4LjkgMCA5Ni41LTU4LjkgMTA0LjItMTE0LjggMTEwLjUgOS4yIDcuOSAxNyAyMi45IDE3IDQ2LjQgMCAzMy43LS4zIDc1LjQtLjMgODMuNiAwIDYuNSA0LjYgMTQuNCAxNy4zIDEyLjFDNDI4LjIgNDU3LjggNDk2IDM2Mi45IDQ5NiAyNTIgNDk2IDExMy4zIDM4My41IDggMjQ0LjggOHpNOTcuMiAzNTIuOWMtMS4zIDEtMSAzLjMuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zLjMgMi45IDIuMyAzLjkgMS42IDEgMy42LjcgNC4zLS43LjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMy43em0zMi40IDM1LjZjLTEuNiAxLjMtMSA0LjMgMS4zIDYuMiAyLjMgMi4zIDUuMiAyLjYgNi41IDEgMS4zLTEuMy43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOSAxLjYgMi4zIDQuMyAzLjMgNS42IDIuMyAxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnoiIGRhdGEtdi1hM2MxNTM0YSBkYXRhLXYtYTNjMTUzNGE+PC9wYXRoPjwvc3ZnPiA8c3BhbiBkYXRhLXYtYTNjMTUzNGE+R2l0aHViPC9zcGFuPjwvZGl2PjwvYT48YSBocmVmPSJodHRwczovL2xpbmtlZGluLmNvbS9jb21wYW55L244biIgY2xhc3M9ImJyYW5kaW5nLWl0ZW0iIGRhdGEtdi1hM2MxNTM0YT48ZGl2IGNsYXNzPSJicmFuZGluZy1pdGVtX19jb250ZW50IiBkYXRhLXYtYTNjMTUzNGE+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhYiIgZGF0YS1pY29uPSJsaW5rZWRpbiIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlua2VkaW4gZmEtdy0xNCIgZGF0YS12LWEzYzE1MzRhIGRhdGEtdi1hM2MxNTM0YT48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00MTYgMzJIMzEuOUMxNC4zIDMyIDAgNDYuNSAwIDY0LjN2MzgzLjRDMCA0NjUuNSAxNC4zIDQ4MCAzMS45IDQ4MEg0MTZjMTcuNiAwIDMyLTE0LjUgMzItMzIuM1Y2NC4zYzAtMTcuOC0xNC40LTMyLjMtMzItMzIuM3pNMTM1LjQgNDE2SDY5VjIwMi4yaDY2LjVWNDE2em0tMzMuMi0yNDNjLTIxLjMgMC0zOC41LTE3LjMtMzguNS0zOC41UzgwLjkgOTYgMTAyLjIgOTZjMjEuMiAwIDM4LjUgMTcuMyAzOC41IDM4LjUgMCAyMS4zLTE3LjIgMzguNS0zOC41IDM4LjV6bTI4Mi4xIDI0M2gtNjYuNFYzMTJjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOVY0MTZoLTY2LjRWMjAyLjJoNjMuN3YyOS4yaC45YzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45VjQxNnoiIGRhdGEtdi1hM2MxNTM0YSBkYXRhLXYtYTNjMTUzNGE+PC9wYXRoPjwvc3ZnPiA8c3BhbiBkYXRhLXYtYTNjMTUzNGE+TGlua2VkSW48L3NwYW4+PC9kaXY+PC9hPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9uOG5pby8iIGNsYXNzPSJicmFuZGluZy1pdGVtIiBkYXRhLXYtYTNjMTUzNGE+PGRpdiBjbGFzcz0iYnJhbmRpbmctaXRlbV9fY29udGVudCIgZGF0YS12LWEzYzE1MzRhPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGRhdGEtcHJlZml4PSJmYWIiIGRhdGEtaWNvbj0iZmFjZWJvb2siIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWZhY2Vib29rIGZhLXctMTYiIGRhdGEtdi1hM2MxNTM0YSBkYXRhLXYtYTNjMTUzNGE+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNTA0IDI1NkM1MDQgMTE5IDM5MyA4IDI1NiA4UzggMTE5IDggMjU2YzAgMTIzLjc4IDkwLjY5IDIyNi4zOCAyMDkuMjUgMjQ1VjMyNy42OWgtNjNWMjU2aDYzdi01NC42NGMwLTYyLjE1IDM3LTk2LjQ4IDkzLjY3LTk2LjQ4IDI3LjE0IDAgNTUuNTIgNC44NCA1NS41MiA0Ljg0djYxaC0zMS4yOGMtMzAuOCAwLTQwLjQxIDE5LjEyLTQwLjQxIDM4LjczVjI1Nmg2OC43OGwtMTEgNzEuNjloLTU3Ljc4VjUwMUM0MTMuMzEgNDgyLjM4IDUwNCAzNzkuNzggNTA0IDI1NnoiIGRhdGEtdi1hM2MxNTM0YSBkYXRhLXYtYTNjMTUzNGE+PC9wYXRoPjwvc3ZnPiA8c3BhbiBkYXRhLXYtYTNjMTUzNGE+RmFjZWJvb2s8L3NwYW4+PC9kaXY+PC9hPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2MvbjhuLWlvIiBjbGFzcz0iYnJhbmRpbmctaXRlbSIgZGF0YS12LWEzYzE1MzRhPjxkaXYgY2xhc3M9ImJyYW5kaW5nLWl0ZW1fX2NvbnRlbnQiIGRhdGEtdi1hM2MxNTM0YT48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLXByZWZpeD0iZmFiIiBkYXRhLWljb249InlvdXR1YmUiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXlvdXR1YmUgZmEtdy0xOCIgZGF0YS12LWEzYzE1MzRhIGRhdGEtdi1hM2MxNTM0YT48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6IiBkYXRhLXYtYTNjMTUzNGEgZGF0YS12LWEzYzE1MzRhPjwvcGF0aD48L3N2Zz4gPHNwYW4gZGF0YS12LWEzYzE1MzRhPllvdVR1YmU8L3NwYW4+PC9kaXY+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJlbC1yb3ciPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMjIgZWwtY29sLW9mZnNldC0xIGVsLWNvbC1tZC05Ij48ZGl2IGNsYXNzPSJtYWlsLWNoaW1wLXN1YnNjcmliZS1mb3JtIj48aDMgY2xhc3M9ImhlYWRpbmcgbWItMiI+U3Vic2NyaWJlIHRvIG91ciBuZXdzbGV0dGVyPC9oMz4gPGRpdiBpZD0ibWNfZW1iZWRfc2lnbnVwIj48Zm9ybSBhY3Rpb249Imh0dHBzOi8vbjhuLnVzMjAubGlzdC1tYW5hZ2UuY29tL3N1YnNjcmliZS9wb3N0P3U9MmM4ODQ1ODIwYjBkOTA1M2E3YmQwZmE1ZiZpZD03MmRhMjczNDNkIiBtZXRob2Q9InBvc3QiIGlkPSJtYy1lbWJlZGRlZC1zdWJzY3JpYmUtZm9ybSIgbmFtZT0ibWMtZW1iZWRkZWQtc3Vic2NyaWJlLWZvcm0iIHRhcmdldD0iX2JsYW5rIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIiBjbGFzcz0idmFsaWRhdGUiPjxkaXYgY2xhc3M9Im1iLTIgZWwtcm93IiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTVweDttYXJnaW4tcmlnaHQ6LTVweDsiPjxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMTQgZWwtY29sLXNtLTE2IiBzdHlsZT0icGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXJpZ2h0OjVweDsiPjxkaXYgY2xhc3M9ImVsLWlucHV0Ij48IS0tLS0+PGlucHV0IHR5cGU9InRleHQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBuYW1lPSJFTUFJTCIgcGxhY2Vob2xkZXI9IkVtYWlsIiBjbGFzcz0iZWwtaW5wdXRfX2lubmVyIj48IS0tLS0+PCEtLS0tPjwhLS0tLT48IS0tLS0+PC9kaXY+PC9kaXY+IDxkaXYgY2xhc3M9ImVsLWNvbCBlbC1jb2wtMTAgZWwtY29sLXNtLTgiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6NXB4OyI+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJlbC1idXR0b24gZWwtYnV0dG9uLS1wcmltYXJ5IGlzLXJvdW5kIj48IS0tLS0+PCEtLS0tPjxzcGFuPlN1YnNjcmliZQoJCQkJCTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj4gPGRpdiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTUwMDBweDsiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiXzJjODg0NTgyMGIwZDkwNTNhN2JkMGZhNWZfNzJkYTI3MzQzZCIgdGFiaW5kZXg9Ii0xIiB2YWx1ZT48L2Rpdj48L2Zvcm0+PC9kaXY+IDxwIGNsYXNzPSJ0ZXh0IG1pbmkgbXV0ZWQiPgoJCUJ5IHN1Ym1pdHRpbmcgeW91ciBlbWFpbCBhZGRyZXNzIHlvdSBhZ3JlZSB0byB5b3VyIHBlcnNvbmFsIGRhdGEgYmVpbmcKCQlzdG9yZWQgYW5kIHVzZWQgdG8gcHJvdmlkZSB5b3Ugd2l0aCBpbmZvcm1hdGlvbiBhbmQgY29tbWVyY2lhbCBvZmZlcnMKCQlhYm91dCBuOG4uCgk8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvbWFpbj48L2Rpdj4gPGZvb3RlciBjbGFzcz0iZWwtZm9vdGVyIiBzdHlsZT0iaGVpZ2h0OjYwcHg7IiBkYXRhLXYtNjM2ZmNlNDY+PGRpdiBjbGFzcz0iY29udGVudC13cmFwcGVyIGVsLXJvdyIgZGF0YS12LTYzNmZjZTQ2PjxkaXYgY2xhc3M9ImxlZnQtc2lkZSBlbC1jb2wgZWwtY29sLTI0IGVsLWNvbC1zbS0yNCBlbC1jb2wtbWQtOCIgZGF0YS12LTYzNmZjZTQ2PgoJCQnDgsKpIDIwMTktMjAyMSBuOG4uaW8gQWxsIHJpZ2h0cyBSZXNlcnZlZAoJCTwvZGl2PiA8ZGl2IGNsYXNzPSJyaWdodC1zaWRlIGVsLWNvbCBlbC1jb2wtMjQgZWwtY29sLXNtLTI0IGVsLWNvbC1tZC0xNiIgZGF0YS12LTYzNmZjZTQ2PjxhIGhyZWY9Imh0dHBzOi8vbjhuLmpvaW4uY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImxpbmstcHJpbWFyeSIgZGF0YS12LTYzNmZjZTQ2PgoJCQkJSm9icwoJCQk8L2E+IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9uOG4taW8vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImxpbmstcHJpbWFyeSIgZGF0YS12LTYzNmZjZTQ2PgoJCQkJQmxvZwoJCQk8L2E+IDxhIGhyZWY9Ii9jb250YWN0IiBjbGFzcz0ibGluay1wcmltYXJ5IiBkYXRhLXYtNjM2ZmNlNDY+CgkJCQlDb250YWN0CgkJCTwvYT4gPGEgaHJlZj0iL3ByZXNzIiBjbGFzcz0ibGluay1wcmltYXJ5IiBkYXRhLXYtNjM2ZmNlNDY+CgkJCQlQcmVzcwoJCQk8L2E+IDxhIGhyZWY9Ii9pbXByZXNzdW0iIGNsYXNzPSJsaW5rLXByaW1hcnkiIGRhdGEtdi02MzZmY2U0Nj4KCQkJCUltcHJlc3N1bQoJCQk8L2E+IDxhIGhyZWY9Ii9wcml2YWN5IiBjbGFzcz0ibGluay1wcmltYXJ5IiBkYXRhLXYtNjM2ZmNlNDY+CgkJCQlQcml2YWN5CgkJCTwvYT4gPGEgaHJlZj0iL3Rlcm1zIiBjbGFzcz0ibGluay1wcmltYXJ5IiBkYXRhLXYtNjM2ZmNlNDY+CgkJCQlUZXJtcyBvZiBTZXJ2aWNlCgkJCTwvYT48L2Rpdj4gPGRpdiBjbGFzcz0ic29jaWFsLW1lZGlhIGVsLWNvbCBlbC1jb2wtMjQgZWwtY29sLXNtLTI0IGVsLWNvbC1tZC0yNCIgZGF0YS12LTYzNmZjZTQ2PgoJCQlGb2xsb3cgdXMgb24gOgoJCQk8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vbjhuLWlvIiB0YXJnZXQ9Il9ibGFuayIgZGF0YS12LTYzNmZjZTQ2PjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGRhdGEtcHJlZml4PSJmYWIiIGRhdGEtaWNvbj0ibWVkaXVtIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZWRpdW0gZmEtdy0xNCIgZGF0YS12LTYzNmZjZTQ2PjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTAgMzJ2NDQ4aDQ0OFYzMkgwem0zNzIuMiAxMDYuMWwtMjQgMjNjLTIuMSAxLjYtMy4xIDQuMi0yLjcgNi43djE2OS4zYy0uNCAyLjYuNiA1LjIgMi43IDYuN2wyMy41IDIzdjUuMWgtMTE4VjM2N2wyNC4zLTIzLjZjMi40LTIuNCAyLjQtMy4xIDIuNC02LjdWMTk5LjhsLTY3LjYgMTcxLjZoLTkuMUwxMjUgMTk5Ljh2MTE1Yy0uNyA0LjggMSA5LjcgNC40IDEzLjJsMzEuNiAzOC4zdjUuMUg3MS4ydi01LjFsMzEuNi0zOC4zYzMuNC0zLjUgNC45LTguNCA0LjEtMTMuMnYtMTMzYy40LTMuNy0xLTcuMy0zLjgtOS44TDc1IDEzOC4xVjEzM2g4Ny4zbDY3LjQgMTQ4TDI4OSAxMzMuMWg4My4ydjV6IiBkYXRhLXYtNjM2ZmNlNDY+PC9wYXRoPjwvc3ZnPgoJCQkJbjhuLWlvCgkJCTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL244bi1pby9uOG4iIHRhcmdldD0iX2JsYW5rIiBkYXRhLXYtNjM2ZmNlNDY+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhYiIgZGF0YS1pY29uPSJnaXRodWIiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDk2IDUxMiIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWdpdGh1YiBmYS13LTE2IiBkYXRhLXYtNjM2ZmNlNDY+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTY1LjkgMzk3LjRjMCAyLTIuMyAzLjYtNS4yIDMuNi0zLjMuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41LjMtNi4yIDIuM3ptNDQuMi0xLjdjLTIuOS43LTQuOSAyLjYtNC42IDQuOS4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI0NC44IDhDMTA2LjEgOCAwIDExMy4zIDAgMjUyYzAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMUM0MjguMiA0NTcuOCA0OTYgMzYyLjkgNDk2IDI1MiA0OTYgMTEzLjMgMzgzLjUgOCAyNDQuOCA4ek05Ny4yIDM1Mi45Yy0xLjMgMS0xIDMuMy43IDUuMiAxLjYgMS42IDMuOSAyLjMgNS4yIDEgMS4zLTEgMS0zLjMtLjctNS4yLTEuNi0xLjYtMy45LTIuMy01LjItMXptLTEwLjgtOC4xYy0uNyAxLjMuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYuNyA0LjMtLjcuNy0xLjMtLjMtMi45LTIuMy0zLjktMi0uNi0zLjYtLjMtNC4zLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zLjctNC4zLTEuMy02LjItMi4yLTIuMy01LjItMi42LTYuNS0xem0tMTEuNC0xNC43Yy0xLjYgMS0xLjYgMy42IDAgNS45IDEuNiAyLjMgNC4zIDMuMyA1LjYgMi4zIDEuNi0xLjMgMS42LTMuOSAwLTYuMi0xLjQtMi4zLTQtMy4zLTUuNi0yeiIgZGF0YS12LTYzNmZjZTQ2PjwvcGF0aD48L3N2Zz4KCQkJCW44bi1pbwoJCQk8L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9uOG5pbyIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtdi02MzZmY2U0Nj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLXByZWZpeD0iZmFiIiBkYXRhLWljb249ImZhY2Vib29rIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1mYWNlYm9vayBmYS13LTE2IiBkYXRhLXYtNjM2ZmNlNDY+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNTA0IDI1NkM1MDQgMTE5IDM5MyA4IDI1NiA4UzggMTE5IDggMjU2YzAgMTIzLjc4IDkwLjY5IDIyNi4zOCAyMDkuMjUgMjQ1VjMyNy42OWgtNjNWMjU2aDYzdi01NC42NGMwLTYyLjE1IDM3LTk2LjQ4IDkzLjY3LTk2LjQ4IDI3LjE0IDAgNTUuNTIgNC44NCA1NS41MiA0Ljg0djYxaC0zMS4yOGMtMzAuOCAwLTQwLjQxIDE5LjEyLTQwLjQxIDM4LjczVjI1Nmg2OC43OGwtMTEgNzEuNjloLTU3Ljc4VjUwMUM0MTMuMzEgNDgyLjM4IDUwNCAzNzkuNzggNTA0IDI1NnoiIGRhdGEtdi02MzZmY2U0Nj48L3BhdGg+PC9zdmc+CgkJCQluOG5pbwoJCQk8L2E+IDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vbjhuX2lvIiB0YXJnZXQ9Il9ibGFuayIgZGF0YS12LTYzNmZjZTQ2PjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGRhdGEtcHJlZml4PSJmYWIiIGRhdGEtaWNvbj0idHdpdHRlciIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtdHdpdHRlciBmYS13LTE2IiBkYXRhLXYtNjM2ZmNlNDY+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNDU5LjM3IDE1MS43MTZjLjMyNSA0LjU0OC4zMjUgOS4wOTcuMzI1IDEzLjY0NSAwIDEzOC43Mi0xMDUuNTgzIDI5OC41NTgtMjk4LjU1OCAyOTguNTU4LTU5LjQ1MiAwLTExNC42OC0xNy4yMTktMTYxLjEzNy00Ny4xMDYgOC40NDcuOTc0IDE2LjU2OCAxLjI5OSAyNS4zNCAxLjI5OSA0OS4wNTUgMCA5NC4yMTMtMTYuNTY4IDEzMC4yNzQtNDQuODMyLTQ2LjEzMi0uOTc1LTg0Ljc5Mi0zMS4xODgtOTguMTEyLTcyLjc3MiA2LjQ5OC45NzQgMTIuOTk1IDEuNjI0IDE5LjgxOCAxLjYyNCA5LjQyMSAwIDE4Ljg0My0xLjMgMjcuNjE0LTMuNTczLTQ4LjA4MS05Ljc0Ny04NC4xNDMtNTEuOTgtODQuMTQzLTEwMi45ODV2LTEuMjk5YzEzLjk2OSA3Ljc5NyAzMC4yMTQgMTIuNjcgNDcuNDMxIDEzLjMxOS0yOC4yNjQtMTguODQzLTQ2Ljc4MS01MS4wMDUtNDYuNzgxLTg3LjM5MSAwLTE5LjQ5MiA1LjE5Ny0zNy4zNiAxNC4yOTQtNTIuOTU0IDUxLjY1NSA2My42NzUgMTI5LjMgMTA1LjI1OCAyMTYuMzY1IDEwOS44MDctMS42MjQtNy43OTctMi41OTktMTUuOTE4LTIuNTk5LTI0LjA0IDAtNTcuODI4IDQ2Ljc4Mi0xMDQuOTM0IDEwNC45MzQtMTA0LjkzNCAzMC4yMTMgMCA1Ny41MDIgMTIuNjcgNzYuNjcgMzMuMTM3IDIzLjcxNS00LjU0OCA0Ni40NTYtMTMuMzIgNjYuNTk5LTI1LjM0LTcuNzk4IDI0LjM2Ni0yNC4zNjYgNDQuODMzLTQ2LjEzMiA1Ny44MjcgMjEuMTE3LTIuMjczIDQxLjU4NC04LjEyMiA2MC40MjYtMTYuMjQzLTE0LjI5MiAyMC43OTEtMzIuMTYxIDM5LjMwOC01Mi42MjggNTQuMjUzeiIgZGF0YS12LTYzNmZjZTQ2PjwvcGF0aD48L3N2Zz4KCQkJCW44bl9pbwoJCQk8L2E+IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L244biIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtdi02MzZmY2U0Nj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLXByZWZpeD0iZmFiIiBkYXRhLWljb249ImxpbmtlZGluIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1saW5rZWRpbiBmYS13LTE0IiBkYXRhLXYtNjM2ZmNlNDY+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNDE2IDMySDMxLjlDMTQuMyAzMiAwIDQ2LjUgMCA2NC4zdjM4My40QzAgNDY1LjUgMTQuMyA0ODAgMzEuOSA0ODBINDE2YzE3LjYgMCAzMi0xNC41IDMyLTMyLjNWNjQuM2MwLTE3LjgtMTQuNC0zMi4zLTMyLTMyLjN6TTEzNS40IDQxNkg2OVYyMDIuMmg2Ni41VjQxNnptLTMzLjItMjQzYy0yMS4zIDAtMzguNS0xNy4zLTM4LjUtMzguNVM4MC45IDk2IDEwMi4yIDk2YzIxLjIgMCAzOC41IDE3LjMgMzguNSAzOC41IDAgMjEuMy0xNy4yIDM4LjUtMzguNSAzOC41em0yODIuMSAyNDNoLTY2LjRWMzEyYzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlWNDE2aC02Ni40VjIwMi4yaDYzLjd2MjkuMmguOWM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOVY0MTZ6IiBkYXRhLXYtNjM2ZmNlNDY+PC9wYXRoPjwvc3ZnPgoJCQkJbjhuCgkJCTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vYy9uOG4taW8iIHRhcmdldD0iX2JsYW5rIiBkYXRhLXYtNjM2ZmNlNDY+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhYiIgZGF0YS1pY29uPSJ5b3V0dWJlIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3NiA1MTIiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS15b3V0dWJlIGZhLXctMTgiIGRhdGEtdi02MzZmY2U0Nj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6IiBkYXRhLXYtNjM2ZmNlNDY+PC9wYXRoPjwvc3ZnPgoJCQkJbjhuLWlvCgkJCTwvYT48L2Rpdj48L2Rpdj48L2Zvb3Rlcj4gPGlmcmFtZSBzcmM9Imh0dHBzOi8vYXBpLm44bi5pby9odWIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBkYXRhLXYtMThlZDRhODE+PC9pZnJhbWU+PC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdD53aW5kb3cuX19OVVhUX189KGZ1bmN0aW9uKGEsYil7cmV0dXJuIHtsYXlvdXQ6ImZ1bGwtcGFnZSIsZGF0YTpbe31dLGZldGNoOltdLGVycm9yOmIsc3RhdGU6e2F1dGg6e3VzZXI6YixzZXNzaW9uRXhwaXJlZDphLGlzU2V0dXA6YX0sbm9kZXM6e2xvYWRpbmc6YSxub2RlczpbXX0sd29ya2Zsb3dzOntsb2FkaW5nOmEsd29ya2Zsb3dzOltdfX0sc2VydmVyUmVuZGVyZWQ6dHJ1ZSxyb3V0ZVBhdGg6Ii8ifX0oZmFsc2UsbnVsbCkpOzwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX251eHQvNjUyZGZkNmY1MmMzMjdkNGU0OTMuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX251eHQvNjFiNzkyNjE1ZGMxYWE5MWYyZjUuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX251eHQvZGQ5ZWFmM2YyZGUxNDI1NzMyNjMuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX251eHQvYTBhM2YyYTliNjAxN2IwNmNlZWEuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX251eHQvYzU5OGUzMmJiMDYxZWJmOGEyYTEuanMiIGRlZmVyPjwvc2NyaXB0Pgo8ZGl2IGlkPSJjb25zZW50LWNvbnRhaW5lciI+PC9kaXY+CjwvYm9keT4KPC9odG1sPg==", - "fileSize": "44.2 kB" - } - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011762, - "executionIndex": 4, - "source": [ - { - "previousNode": "HTML Extract" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "extracted": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "HTML Extract1": [ - { - "startTime": 1747344011764, - "executionIndex": 5, - "source": [ - { - "previousNode": "Move Binary Data" - } - ], - "hints": [], - "executionTime": 5, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "extracted": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function1": [ - { - "startTime": 1747344011769, - "executionIndex": 6, - "source": [ - { - "previousNode": "HTML Extract1" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "extracted": [ - "json array" - ] - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.746Z", - "stoppedAt": "2025-05-15T21:20:11.770Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/93-snapshot.json b/test-workflows/snapshots/93-snapshot.json deleted file mode 100644 index 441e9de7ad..0000000000 --- a/test-workflows/snapshots/93-snapshot.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011783, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "FunctionItem": [ - { - "startTime": 1747344011783, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "indexes": [ - "json array" - ], - "subobj": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Move Binary Data": [ - { - "startTime": 1747344011784, - "executionIndex": 2, - "source": [ - { - "previousNode": "FunctionItem" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - }, - "binary": { - "data": { - "mimeType": "application/json", - "fileType": "json", - "fileExtension": "json", - "data": "eyJuYW1lIjoidGVzdCIsImluZGV4ZXMiOlsxLDIsM10sInN1Ym9iaiI6eyJuYW1lIjoic3VidGVzdCJ9fQ==", - "fileSize": "61 B" - } - } - } - ] - ] - } - } - ], - "Move Binary Data1": [ - { - "startTime": 1747344011784, - "executionIndex": 3, - "source": [ - { - "previousNode": "Move Binary Data" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "indexes": [ - "json array" - ], - "subobj": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "binary": {} - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011785, - "executionIndex": 4, - "source": [ - { - "previousNode": "Move Binary Data1" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test", - "indexes": [ - "json array" - ], - "subobj": { - "object": true - } - }, - "pairedItem": { - "item": 0 - }, - "binary": {}, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.783Z", - "stoppedAt": "2025-05-15T21:20:11.786Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/95-snapshot.json b/test-workflows/snapshots/95-snapshot.json deleted file mode 100644 index f9c5b14c36..0000000000 --- a/test-workflows/snapshots/95-snapshot.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011791, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Set": [ - { - "startTime": 1747344011791, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011791, - "executionIndex": 2, - "source": [ - { - "previousNode": "Set" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "name": "test" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.791Z", - "stoppedAt": "2025-05-15T21:20:11.792Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/96-snapshot.json b/test-workflows/snapshots/96-snapshot.json deleted file mode 100644 index 8e153f7ebd..0000000000 --- a/test-workflows/snapshots/96-snapshot.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011798, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MessageBird": [ - { - "startTime": 1747344011798, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 145, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "payment": "prepaid", - "type": "dollars", - "amount": 0 - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "MessageBird1": [ - { - "startTime": 1747344011943, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 137, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "52553d3188e047aa843be860383dfe0d", - "href": "https://rest.messagebird.com/messages/52553d3188e047aa843be860383dfe0d", - "direction": "mt", - "type": "sms", - "originator": "4930270504079", - "body": "TestMessage", - "reference": { - "object": true - }, - "validity": { - "object": true - }, - "gateway": 10, - "typeDetails": { - "object": true - }, - "datacoding": "plain", - "mclass": 1, - "scheduledDatetime": { - "object": true - }, - "createdDatetime": "2025-05-15T21:20:12+00:00", - "recipients": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "MessageBird1" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.798Z", - "stoppedAt": "2025-05-15T21:20:12.080Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/97-snapshot.json b/test-workflows/snapshots/97-snapshot.json deleted file mode 100644 index 987a335f77..0000000000 --- a/test-workflows/snapshots/97-snapshot.json +++ /dev/null @@ -1,551 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011899, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto0": [ - { - "startTime": 1747344011900, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "5877e26c078d6409fde54d508bf25721" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto4": [ - { - "startTime": 1747344011900, - "executionIndex": 2, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "3fb7c95bca84c0bf49045b4e6a279dc0" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto10": [ - { - "startTime": 1747344011900, - "executionIndex": 3, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "9d0bc120a967882743370f715dfa90789c4d9322a4faf691d1f80b306c6bd900bfcba5f62946ef88ba7e1fdd008ff3efe8545b979299b14e0e0eccd3e33b1afa11397494526e31968f13d2ac3e3deaa2bc4a27862b7025444c91ebed5f1b98d2c0390630d8eabc6a7662a9ab069cb3aab273ae1c09f20f51fa8e04af4bcccbc6" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto1": [ - { - "startTime": 1747344011900, - "executionIndex": 4, - "source": [ - { - "previousNode": "Crypto0" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "636396f02b6571e40d8fe91cba550515c0cdc0e7d314c210e00b02256375a796" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto5": [ - { - "startTime": 1747344011900, - "executionIndex": 5, - "source": [ - { - "previousNode": "Crypto4" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "a8066096944b87daa8d0459629d8f3958d35fa453c310e7370b619d0b81ce48e" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto11": [ - { - "startTime": 1747344011900, - "executionIndex": 6, - "source": [ - { - "previousNode": "Crypto10" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto2": [ - { - "startTime": 1747344011901, - "executionIndex": 7, - "source": [ - { - "previousNode": "Crypto1" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "c7049c8950ea211bec236edffb37cbecf2aa338443c5e048c1cbb4e2ee20eb60fa9a1d34699d7a86e7362b010bb4ffe7" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto6": [ - { - "startTime": 1747344011901, - "executionIndex": 8, - "source": [ - { - "previousNode": "Crypto5" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "08bec8212275cd79a1c6bf52cad5b31ccd46ec87c7a8a9d1c8589c816f8a7124313528040b138229e15c32c1b3c82b80" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto12": [ - { - "startTime": 1747344011901, - "executionIndex": 9, - "source": [ - { - "previousNode": "Crypto11" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto3": [ - { - "startTime": 1747344011901, - "executionIndex": 10, - "source": [ - { - "previousNode": "Crypto2" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "a8a7eec953f1f31484a479c84982d52847de602d7f220ac3903518369a7536693d60882e5eb782599e72024fb649cc03aa0a19ebce632e9039b4f604335834af" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto7": [ - { - "startTime": 1747344011901, - "executionIndex": 11, - "source": [ - { - "previousNode": "Crypto6" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "0f53f3a374314123991b32e47159ad44e1c61d1c0e96809c1f19d54a5e955c06d5b633f376f2a8419e36ea4b63346fcb39d389714c344771140fd512ac55723a" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto13": [ - { - "startTime": 1747344011901, - "executionIndex": 12, - "source": [ - { - "previousNode": "Crypto12" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function": [ - { - "startTime": 1747344011902, - "executionIndex": 13, - "source": [ - { - "previousNode": "Crypto3" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "a8a7eec953f1f31484a479c84982d52847de602d7f220ac3903518369a7536693d60882e5eb782599e72024fb649cc03aa0a19ebce632e9039b4f604335834af" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Function1": [ - { - "startTime": 1747344011904, - "executionIndex": 14, - "source": [ - { - "previousNode": "Crypto7" - } - ], - "hints": [], - "executionTime": 2, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "0f53f3a374314123991b32e47159ad44e1c61d1c0e96809c1f19d54a5e955c06d5b633f376f2a8419e36ea4b63346fcb39d389714c344771140fd512ac55723a" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ], - "Crypto14": [ - { - "startTime": 1747344011906, - "executionIndex": 15, - "source": [ - { - "previousNode": "Crypto13" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "b9d0c7c4acb8ef55b5c323f82755fb420e5145bafe4de34925e86c53c9f652eb08ec0d87a9be95ca0c0d90b16dd1b55f1200d87c13e4cdb1ae902f41998314f7b85ffc82f0f1d5296119bd92e23ae685b8b59a3a4ba4b8d54db2314c077b1b238c4ac582e36b51c18c0b5474f0d68c1f42e01c08985111ded4cfd3463068d89a" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto15": [ - { - "startTime": 1747344011906, - "executionIndex": 16, - "source": [ - { - "previousNode": "Crypto14" - } - ], - "hints": [], - "executionTime": 0, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "1387958052cf887bd50925a8d44bbf8f138cdd23f51a3422028edf39ad413a1591f5ebd653c4f225298cd6857044648bcfb768113674e7bd11c632fb0fc40cfa646301934b8fcf4da9799272a737155a239e1f8db5e92a23bfa2aeabc6732f5be14078a5815fff542842efed681ac3b919f9d42bfc822b0fd611c0b22286f241" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Crypto16": [ - { - "startTime": 1747344011906, - "executionIndex": 17, - "source": [ - { - "previousNode": "Crypto15" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "922659a8d40b12f81080425a8676830be06f26dd8cd18cad25d02055332c94b8b9634598ef5b172ee53e53788d33c183bf0984ae3b48d792f426a601dbf2eb4771bc844bc2464de8ca5b6746bbdc2f1713a1e1d57a6970568f033e588c759e4b179b791b7fcb75d323c98cc5c6f33c3659410b159c94bc13834e81ce297ce98d" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Function2": [ - { - "startTime": 1747344011907, - "executionIndex": 18, - "source": [ - { - "previousNode": "Crypto16" - } - ], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "data": "922659a8d40b12f81080425a8676830be06f26dd8cd18cad25d02055332c94b8b9634598ef5b172ee53e53788d33c183bf0984ae3b48d792f426a601dbf2eb4771bc844bc2464de8ca5b6746bbdc2f1713a1e1d57a6970568f033e588c759e4b179b791b7fcb75d323c98cc5c6f33c3659410b159c94bc13834e81ce297ce98d" - }, - "pairedItem": { - "item": 0 - }, - "index": 0 - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Function2" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.899Z", - "stoppedAt": "2025-05-15T21:20:11.908Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/snapshots/98-snapshot.json b/test-workflows/snapshots/98-snapshot.json deleted file mode 100644 index 6f3a7c7d81..0000000000 --- a/test-workflows/snapshots/98-snapshot.json +++ /dev/null @@ -1,322 +0,0 @@ -{ - "data": { - "startData": {}, - "resultData": { - "runData": { - "Start": [ - { - "startTime": 1747344011917, - "executionIndex": 0, - "source": [], - "hints": [], - "executionTime": 1, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": {}, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Disqus": [ - { - "startTime": 1747344011918, - "executionIndex": 1, - "source": [ - { - "previousNode": "Start" - } - ], - "hints": [], - "executionTime": 38, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "aetBannerConfirmation": { - "object": true - }, - "founder": "252695960", - "twitterName": { - "object": true - }, - "commentsLinkOne": "1 Comment", - "guidelines": { - "object": true - }, - "disableDisqusBrandingOnPolls": false, - "commentsLinkZero": "0 Comments", - "disableDisqusBranding": false, - "id": "disqus-demo-page", - "createdAt": "2017-05-22T19:17:36.057166", - "category": "Business", - "aetBannerEnabled": false, - "aetBannerTitle": { - "object": true - }, - "raw_guidelines": { - "object": true - }, - "initialCommentCount": { - "object": true - }, - "votingType": { - "object": true - }, - "daysUnapproveNewUsers": { - "object": true - }, - "installCompleted": true, - "moderatorBadgeText": "", - "commentPolicyText": { - "object": true - }, - "aetEnabled": false, - "channel": { - "object": true - }, - "sort": 4, - "description": { - "object": true - }, - "organizationHasBadges": true, - "newPolicy": true, - "raw_description": { - "object": true - }, - "customFont": { - "object": true - }, - "language": "en", - "adsReviewStatus": 0, - "commentsPlaceholderTextEmpty": { - "object": true - }, - "daysAlive": 0, - "forumCategory": { - "object": true - }, - "linkColor": { - "object": true - }, - "colorScheme": "auto", - "pk": "5140050", - "commentsPlaceholderTextPopulated": { - "object": true - }, - "permissions": { - "object": true - }, - "commentPolicyLink": { - "object": true - }, - "aetBannerDescription": { - "object": true - }, - "favicon": { - "object": true - }, - "name": "Disqus Demo Page", - "commentsLinkMultiple": "{num} Comments", - "settings": { - "object": true - }, - "organizationId": 3883635, - "typeface": "auto", - "url": { - "object": true - }, - "daysThreadAlive": 0, - "avatar": { - "object": true - }, - "signedUrl": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Disqus1": [ - { - "startTime": 1747344011956, - "executionIndex": 2, - "source": [ - { - "previousNode": "Disqus" - } - ], - "hints": [], - "executionTime": 37, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "id": "6858940", - "forum": "disqus-demo-page", - "order": 0, - "isDefault": true, - "title": "General" - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Disqus2": [ - { - "startTime": 1747344011993, - "executionIndex": 3, - "source": [ - { - "previousNode": "Disqus1" - } - ], - "hints": [], - "executionTime": 37, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "feed": "https://disqus-demo-page.disqus.com/httpssharadrajinjekyll_theme_miloc20181009jekyll_posthtml/latest.rss", - "clean_title": "Jekyll post", - "dislikes": 0, - "likes": 0, - "message": "", - "ratingsEnabled": false, - "isSpam": false, - "isDeleted": false, - "category": "6858940", - "adsDisabled": false, - "author": "252695960", - "userScore": 0, - "id": "10287492051", - "signedLink": "https://disq.us/?url=https%3A%2F%2Fsharadraj.in%2Fjekyll-theme-milo%2Fc%2F2018%2F10%2F09%2FJekyll-post.html&key=CSxj3qucEGNA77KOdrXIIQ", - "createdAt": "2024-08-11T01:54:42", - "hasStreaming": false, - "raw_message": "", - "isClosed": false, - "link": "https://sharadraj.in/jekyll-theme-milo/c/2018/10/09/Jekyll-post.html", - "slug": "httpssharadrajinjekyll_theme_miloc20181009jekyll_posthtml", - "forum": "disqus-demo-page", - "identifiers": [ - "json array" - ], - "posts": 0, - "userSubscription": false, - "validateAllPosts": false, - "title": "Jekyll post", - "highlightedPost": { - "object": true - } - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ], - "Disqus3": [ - { - "startTime": 1747344012030, - "executionIndex": 4, - "source": [ - { - "previousNode": "Disqus2" - } - ], - "hints": [], - "executionTime": 37, - "executionStatus": "success", - "data": { - "main": [ - [ - { - "json": { - "editableUntil": "2021-02-20T11:14:59", - "dislikes": 0, - "thread": "8396245103", - "numReports": 0, - "likes": 0, - "message": "

You have done a good job with your knowledge that makes our work easy because you are providing such good information. Keep sharing this kind of knowledge with us.
buy spanish saffron online

", - "id": "5266881862", - "createdAt": "2021-02-13T11:14:59", - "author": { - "object": true - }, - "media": [ - "json array" - ], - "isSpam": false, - "isDeletedByAuthor": false, - "isHighlighted": false, - "parent": { - "object": true - }, - "isApproved": true, - "isNewUserNeedsApproval": false, - "isDeleted": false, - "isFlagged": false, - "raw_message": "You have done a good job with your knowledge that makes our work easy because you are providing such good information. Keep sharing this kind of knowledge with us.\nbuy spanish saffron online", - "isAtFlagLimit": false, - "canVote": false, - "forum": "disqus-demo-page", - "points": 0, - "moderationLabels": [ - "json array" - ], - "isEdited": false, - "sb": false - }, - "pairedItem": { - "item": 0 - } - } - ] - ] - } - } - ] - }, - "lastNodeExecuted": "Disqus3" - }, - "executionData": { - "contextData": {}, - "nodeExecutionStack": [], - "metadata": {}, - "waitingExecution": {}, - "waitingExecutionSource": {} - } - }, - "mode": "cli", - "startedAt": "2025-05-15T21:20:11.917Z", - "stoppedAt": "2025-05-15T21:20:12.067Z", - "status": "running", - "finished": true -} \ No newline at end of file diff --git a/test-workflows/workflows/1.json b/test-workflows/workflows/1.json deleted file mode 100644 index b9efe4e918..0000000000 --- a/test-workflows/workflows/1.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "createdAt": "2021-01-21T10:32:07.628Z", - "updatedAt": "2021-06-04T10:25:41.024Z", - "id": "1", - "name": "Twitter:tweet:create:create like retweet delete search", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0d0e09b1-87e5-4c64-acf5-9a7da0718775" - }, - { - "parameters": { - "text": "=Hello from n8n testing framework {{$evaluateExpression(Math.random())}}", - "additionalFields": {} - }, - "name": "Twitter", - "type": "n8n-nodes-base.twitter", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "twitterOAuth1Api": { - "id": "161", - "name": "Twitter API" - } - }, - "id": "e3e833e8-c567-492d-b5e9-6233e0a3890d" - }, - { - "parameters": { - "operation": "like", - "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}", - "additionalFields": {} - }, - "name": "Twitter1", - "type": "n8n-nodes-base.twitter", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "twitterOAuth1Api": { - "id": "161", - "name": "Twitter API" - } - }, - "id": "904c5a06-bd36-4edc-abbc-d3cfd946a9f2" - }, - { - "parameters": { - "operation": "retweet", - "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}", - "additionalFields": {} - }, - "name": "Twitter2", - "type": "n8n-nodes-base.twitter", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "twitterOAuth1Api": { - "id": "161", - "name": "Twitter API" - } - }, - "id": "fdd7b0de-c279-452e-b6be-acebea480071" - }, - { - "parameters": { - "operation": "delete", - "tweetId": "={{$node[\"Twitter\"].json[\"id_str\"]}}" - }, - "name": "Twitter3", - "type": "n8n-nodes-base.twitter", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "twitterOAuth1Api": { - "id": "161", - "name": "Twitter API" - } - }, - "id": "6dff7ba3-ba03-4cdb-9305-d80eb02d4b83" - }, - { - "parameters": { - "operation": "search", - "searchText": "@n8n_io", - "limit": 1, - "additionalFields": {} - }, - "name": "Twitter4", - "type": "n8n-nodes-base.twitter", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "twitterOAuth1Api": { - "id": "161", - "name": "Twitter API" - } - }, - "notes": "IGNORED_PROPERTIES=extended_entities,retweeted_status,quoted_status_id,quoted_status_id_str,quoted_status,possibly_sensitive", - "id": "205bf8c9-afed-4a6a-b538-bb572ef14287" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Twitter", - "type": "main", - "index": 0 - }, - { - "node": "Twitter4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twitter": { - "main": [ - [ - { - "node": "Twitter1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twitter1": { - "main": [ - [ - { - "node": "Twitter2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twitter2": { - "main": [ - [ - { - "node": "Twitter3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/10.json b/test-workflows/workflows/10.json deleted file mode 100644 index f2f1baf4a0..0000000000 --- a/test-workflows/workflows/10.json +++ /dev/null @@ -1,325 +0,0 @@ -{ - "createdAt": "2021-02-15T13:56:59.611Z", - "updatedAt": "2021-06-04T14:37:01.395Z", - "id": "10", - "name": "PagerDuty:incident:create get update getAll:incidentNote:create getAll:User:get:LogEntry:getAll get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 240, - 260 - ], - "id": "91f3c321-72a4-4c04-8e51-ec3a7c775462" - }, - { - "parameters": { - "authentication": "oAuth2", - "title": "Test", - "serviceId": "PO5XHDI", - "email": "nodeqa@n8n.io", - "additionalFields": {} - }, - "name": "PagerDuty", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 400, - 260 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "92f2a4d8-4860-4edf-92e4-ea14671bad92" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "get", - "incidentId": "={{$json[\"id\"]}}" - }, - "name": "PagerDuty1", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 550, - 260 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "0af4d8fa-8392-46ce-8d04-cfcb0fcff52b" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "update", - "incidentId": "={{$json[\"id\"]}}", - "email": "nodeqa@n8n.io", - "updateFields": { - "status": "acknowledged" - } - }, - "name": "PagerDuty2", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 870, - 260 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "843cc5d1-4302-4d75-b78e-14479b2a5dc7" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "PagerDuty3", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 1030, - 260 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "903bd6db-f3ab-45d8-bd05-0f387a5e08bd" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "incidentNote", - "incidentId": "={{$json[\"id\"]}}", - "content": "Simple note for an incident", - "email": "nodeqa@n8n.io" - }, - "name": "PagerDuty4", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 720, - 350 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "37deab31-9ff9-4dd4-9f21-edcdaa13532c" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "incidentNote", - "operation": "getAll", - "incidentId": "={{$json[\"id\"]}}", - "limit": 1 - }, - "name": "PagerDuty5", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 720, - 160 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "e3df7b5a-1abc-4af9-b5a8-725d1339b127" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "userId": "PT0VVWO" - }, - "name": "PagerDuty6", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 400, - 110 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "25539887-c45a-4859-bc73-6173ef47e07e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "logEntry", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "PagerDuty7", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 400, - 540 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "notes": "IGNORED_PROPERTIES=event_details,assignees", - "id": "7f565cd4-e409-4d23-8914-6f887457d14a" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "logEntry", - "logEntryId": "={{$node[\"PagerDuty\"].json[\"first_trigger_log_entry\"][\"id\"]}}" - }, - "name": "PagerDuty8", - "type": "n8n-nodes-base.pagerDuty", - "typeVersion": 1, - "position": [ - 730, - 540 - ], - "credentials": { - "pagerDutyOAuth2Api": { - "id": "123", - "name": "PagerDuty OAuth2 API creds" - } - }, - "id": "9bfda961-967d-43dd-8089-a3af7d26084a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 560, - 540 - ], - "typeVersion": 1, - "id": "f3501dee-890b-46c6-9306-6ebb1cc7d21f" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "PagerDuty", - "type": "main", - "index": 0 - }, - { - "node": "PagerDuty7", - "type": "main", - "index": 0 - }, - { - "node": "PagerDuty6", - "type": "main", - "index": 0 - } - ] - ] - }, - "PagerDuty": { - "main": [ - [ - { - "node": "PagerDuty1", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "PagerDuty1": { - "main": [ - [ - { - "node": "PagerDuty4", - "type": "main", - "index": 0 - }, - { - "node": "PagerDuty5", - "type": "main", - "index": 0 - }, - { - "node": "PagerDuty2", - "type": "main", - "index": 0 - } - ] - ] - }, - "PagerDuty2": { - "main": [ - [ - { - "node": "PagerDuty3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "PagerDuty8", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/101.json b/test-workflows/workflows/101.json deleted file mode 100644 index 3a645c2fe8..0000000000 --- a/test-workflows/workflows/101.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "createdAt": "2021-03-04T09:49:58.859Z", - "updatedAt": "2021-03-04T09:49:58.859Z", - "id": "101", - "name": "RenameKeys", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "38b2e8c3-ddfe-4ef3-85d0-ddab8e8732db" - }, - { - "parameters": { - "keys": { - "key": [ - { - "currentKey": "toBeRenamed", - "newKey": "Renamed" - } - ] - } - }, - "name": "Rename Keys", - "type": "n8n-nodes-base.renameKeys", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "d4b5cdcd-3bd7-46aa-ab34-f986411cfc43" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "test" - }, - { - "name": "toBeRenamed", - "value": "name" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "0c816bc3-19b1-41f2-ac7a-ea5f2448bac2" - }, - { - "parameters": { - "functionCode": "testData = JSON.stringify(\n{\nname: \"test\",\nRenamed: \"name\"\n}\n)\nif(JSON.stringify($node['Rename Keys'].json) !== testData){\n throw new Error('Error in rename keys node');\n}\n\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "95ab4a10-c3f3-4bad-8792-4a8dab012672" - } - ], - "connections": { - "Rename Keys": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Rename Keys", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/102.json b/test-workflows/workflows/102.json deleted file mode 100644 index 9fe39c9a66..0000000000 --- a/test-workflows/workflows/102.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "createdAt": "2021-03-04T10:41:43.011Z", - "updatedAt": "2021-03-04T10:41:43.011Z", - "id": "102", - "name": "ReadBinaryFile", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "516a8267-1d35-4ec7-977b-87d0f961fe53" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "notesInFlow": true, - "notes": "Read the assets/n8n-logo.png", - "id": "839c17af-2415-41c4-bf13-8815df27ca4e" - }, - { - "parameters": { - "functionCode": "testData='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';\nif(items[0].binary.data.data !== testData){\n throw new Error('Error in Read Binary File node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "notesInFlow": true, - "notes": "assert the base64 value", - "id": "409eca37-f7a2-4ddc-9ae9-c4a9daeef481" - } - ], - "connections": { - "Read Binary File": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/103.json b/test-workflows/workflows/103.json deleted file mode 100644 index 77bda9f9a8..0000000000 --- a/test-workflows/workflows/103.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "createdAt": "2021-03-04T11:22:05.930Z", - "updatedAt": "2021-03-04T11:24:54.336Z", - "id": "103", - "name": "ExecuteCommand", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "596a5418-e61d-41ab-84eb-64e07630b23e" - }, - { - "parameters": { - "command": "=echo 'test' > /tmp/{{$node[\"Set\"].json[\"filename\"]}}" - }, - "name": "Execute Command", - "type": "n8n-nodes-base.executeCommand", - "typeVersion": 1, - "position": [ - 660, - 300 - ], - "notesInFlow": true, - "notes": "write file to /tmp", - "id": "9c118fb2-edad-441a-b8a8-f1c843a37bd5" - }, - { - "parameters": { - "filePath": "=/tmp/{{$node[\"Set\"].json[\"filename\"]}}" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 860, - 300 - ], - "notesInFlow": true, - "notes": "read file", - "id": "af6e6941-e34e-4b5d-a236-3bccd5bd4cfd" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "filename", - "value": "=filename{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "notesInFlow": true, - "notes": "generate filename", - "id": "8864d17b-8310-4460-810c-d43da4e967ff" - }, - { - "parameters": { - "functionCode": "testData= 'dGVzdAo='\nif($node['Execute Command'].json['exitCode']!==0 || items[0].binary.data.data !== testData){\n throw new Error('Error Execute Command in node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "notesInFlow": true, - "notes": "verify file content", - "id": "0a60312c-4030-496b-ad24-3acebff5eca1" - }, - { - "parameters": { - "command": "=rm /tmp/{{$node[\"Set\"].json[\"filename\"]}}" - }, - "name": "Execute Command1", - "type": "n8n-nodes-base.executeCommand", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "notesInFlow": true, - "notes": "remove file from /tmp", - "id": "ede3e595-c571-4155-85bd-14e39fe78049" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Execute Command": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Execute Command", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Execute Command1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/104.json b/test-workflows/workflows/104.json deleted file mode 100644 index ab361797f5..0000000000 --- a/test-workflows/workflows/104.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "createdAt": "2021-03-04T13:14:37.236Z", - "updatedAt": "2021-06-15T14:39:01.449Z", - "id": "104", - "name": "ReadPDF", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "084e6fae-bd3c-4887-98a4-5ef671a9202c" - }, - { - "parameters": {}, - "name": "Read PDF", - "type": "n8n-nodes-base.readPDF", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "notesInFlow": true, - "notes": "Parse PDF", - "id": "c9c1692b-3979-4334-94f3-a6ba1aeb1705" - }, - { - "parameters": { - "filePath": "/tmp/04-valid.pdf" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "alwaysOutputData": false, - "notesInFlow": true, - "notes": "Read static pdf file from node_modules", - "id": "f725a50d-5941-4370-9925-474306645ed5" - } - ], - "connections": { - "Read Binary File": { - "main": [ - [ - { - "node": "Read PDF", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/105.json b/test-workflows/workflows/105.json deleted file mode 100644 index a388218880..0000000000 --- a/test-workflows/workflows/105.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "createdAt": "2021-03-04T13:31:56.288Z", - "updatedAt": "2021-03-04T13:31:56.288Z", - "id": "105", - "name": "WriteBinaryFile", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "6ad9a76c-8bd9-4a23-98ad-12e9f913fb9d" - }, - { - "parameters": { - "fileName": "/tmp/test_write_binary_file.txt" - }, - "name": "Write Binary File", - "type": "n8n-nodes-base.writeBinaryFile", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "notesInFlow": true, - "notes": "Write binary file in /tmp directory", - "id": "c323f3c4-c1ca-4c7c-acbd-0387e14966ca" - }, - { - "parameters": { - "filePath": "/tmp/test_write_binary_file.txt" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "notesInFlow": true, - "notes": "Read file data", - "id": "19df8a14-6a25-4c6d-a891-095562ce311a" - }, - { - "parameters": { - "functionCode": "items = [\n{\njson:{},\nbinary: {\n\tdata: {\n\t\tdata: 'VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl',\n\t\tfileExtension: 'txt', \n\t\tfileName: 'file.txt', \n\t}\n}\n}\n\n];\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 460, - 300 - ], - "notesInFlow": true, - "notes": "Prepare file data", - "id": "0a14fc91-53a3-4c8a-b1cb-eef0734f016a" - }, - { - "parameters": { - "functionCode": "testData ='VGVzdCBXcml0ZSBCaW5hcnkgRmlsZSBub2Rl';\n\nif(items[0].binary.data.data !== testData){\n throw new Error('Error in Write Binary File node');\n}\nreturn items;" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1020, - 300 - ], - "notesInFlow": true, - "notes": "Verify file data", - "id": "fe251599-60cf-45df-a1fc-4c0f5b019b50" - } - ], - "connections": { - "Write Binary File": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Write Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/106.json b/test-workflows/workflows/106.json deleted file mode 100644 index 3ee3647bae..0000000000 --- a/test-workflows/workflows/106.json +++ /dev/null @@ -1,412 +0,0 @@ -{ - "createdAt": "2021-03-04T14:19:59.064Z", - "updatedAt": "2021-03-09T08:07:08.936Z", - "id": "106", - "name": "Box:Folder:create search get delete:File:upload get download copy search delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "3379cd25-f1fb-4810-84eb-1fe522062d5e" - }, - { - "parameters": { - "resource": "folder", - "name": "=Folder{{Date.now()}}", - "options": {} - }, - "name": "Box", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "61a2d115-f5ad-4d90-b2c4-98b637c72a05" - }, - { - "parameters": { - "resource": "folder", - "operation": "search", - "query": "folder", - "limit": 1, - "additionalFields": {} - }, - "name": "Box1", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1850, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "38f2209f-5ba9-47c1-9e37-47561b96a816" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "folderId": "={{$node[\"Box\"].json[\"id\"]}}" - }, - "name": "Box2", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 2140, - 300 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "59b546b6-5bca-4154-b635-1416f756d75b" - }, - { - "parameters": { - "fileName": "=logo{{Date.now()}}.png", - "binaryData": true, - "parentId": "={{$node[\"Box\"].json[\"id\"]}}" - }, - "name": "Box3", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 800, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "1b9d07ed-78e2-4436-9034-a3c4930d182f" - }, - { - "parameters": { - "filePath": "/tmp/n8n-screenshot.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 650, - 400 - ], - "id": "a2ddf065-8352-4de3-826b-1577e54a6166" - }, - { - "parameters": { - "operation": "get", - "fileId": "={{$node[\"Box3\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Box4", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 950, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "aabe943e-f257-4db2-896f-1bc5ddf9f0cd" - }, - { - "parameters": { - "operation": "download", - "fileId": "={{$node[\"Box3\"].json[\"id\"]}}" - }, - "name": "Box5", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1100, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "fb9625be-a0c9-421e-acfb-fa4451e6c0c4" - }, - { - "parameters": { - "operation": "copy", - "fileId": "={{$node[\"Box3\"].json[\"id\"]}}", - "parentId": "={{$node[\"Box\"].json[\"id\"]}}", - "additionalFields": { - "name": "=Copied-logo{{Date.now()}}.png" - } - }, - "name": "Box6", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "e9e7997b-1eab-4244-9e52-9ea6f00dac63" - }, - { - "parameters": { - "operation": "search", - "query": "logo", - "limit": 1, - "additionalFields": { - "file_extensions": "png" - } - }, - "name": "Box7", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1400, - 400 - ], - "alwaysOutputData": true, - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "6ed0e975-cc74-4c57-813a-39e0c954097d" - }, - { - "parameters": { - "operation": "delete", - "fileId": "={{$node[\"Box3\"].json[\"id\"]}}" - }, - "name": "Box8", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1550, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "2cf28778-50dc-46ae-8347-6d74cca97d6e" - }, - { - "parameters": { - "operation": "delete", - "fileId": "={{$node[\"Box6\"].json[\"id\"]}}" - }, - "name": "Box10", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 1700, - 400 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "2f0e8ab1-2ad9-4613-b813-7f8d1fcbd7a0" - }, - { - "parameters": { - "resource": "folder", - "operation": "get", - "folderId": "={{$node[\"Box\"].json[\"id\"]}}" - }, - "name": "Box9", - "type": "n8n-nodes-base.box", - "typeVersion": 1, - "position": [ - 2000, - 300 - ], - "credentials": { - "boxOAuth2Api": { - "id": "77", - "name": "Box OAuth2 creds" - } - }, - "id": "fbba5280-62da-4344-a8b3-faec86d38a3a" - } - ], - "connections": { - "Box": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box1": { - "main": [ - [ - { - "node": "Box9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box3": { - "main": [ - [ - { - "node": "Box4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Box3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box4": { - "main": [ - [ - { - "node": "Box5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box5": { - "main": [ - [ - { - "node": "Box6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box6": { - "main": [ - [ - { - "node": "Box7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box7": { - "main": [ - [ - { - "node": "Box8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box8": { - "main": [ - [ - { - "node": "Box10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box10": { - "main": [ - [ - { - "node": "Box1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Box", - "type": "main", - "index": 0 - } - ] - ] - }, - "Box9": { - "main": [ - [ - { - "node": "Box2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/107.json b/test-workflows/workflows/107.json deleted file mode 100644 index 2536dba28e..0000000000 --- a/test-workflows/workflows/107.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "createdAt": "2021-03-04T15:21:38.969Z", - "updatedAt": "2021-03-04T15:27:37.666Z", - "id": "107", - "name": "ReadBinaryFiles", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 300, - 300 - ], - "id": "3da902a3-83e2-4bc5-9961-6ad791e512ef" - }, - { - "parameters": { - "functionCode": "item1TestData='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';\nitem2TestData='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';\nif(items[0].binary.data.data !== item1TestData ||\n items[1].binary.data.data !== item2TestData){\n throw new Error('Error in Read Binary File node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "notesInFlow": true, - "notes": "assert the files base64 values", - "id": "96e3be5b-7b04-4ffd-97fd-169a58b7dff0" - }, - { - "parameters": { - "fileSelector": "../../../assets/*.png" - }, - "name": "Read Binary Files", - "type": "n8n-nodes-base.readBinaryFiles", - "typeVersion": 1, - "position": [ - 510, - 300 - ], - "notesInFlow": true, - "notes": "Read png files under assets directory ", - "id": "a64eb0b3-7bef-4d62-8a26-c5f2030efe63" - } - ], - "connections": { - "Read Binary Files": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary Files", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/108.json b/test-workflows/workflows/108.json deleted file mode 100644 index b62130af62..0000000000 --- a/test-workflows/workflows/108.json +++ /dev/null @@ -1,1080 +0,0 @@ -{ - "createdAt": "2021-03-04T16:23:06.210Z", - "updatedAt": "2021-03-04T17:33:16.605Z", - "id": "108", - "name": "Merge:append keepKeyMatches mergeByIndex(leftjoin,innerjoin,outerjoin) mergeByKey(ifBlank,always,ifMissing) Multiplex passThrough removeKeyMatches", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 120, - 1510 - ], - "id": "05049327-2f4e-4009-94d1-13c946fdf5ba" - }, - { - "parameters": {}, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 300 - ], - "id": "21ee0629-efde-4030-9a2e-6ffe5d135aab" - }, - { - "parameters": { - "values": { - "boolean": [ - { - "name": "value1", - "value": true - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 220 - ], - "id": "76be9855-6e08-4898-a92f-a715ccd2d9f6" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "value2", - "value": 5 - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 370 - ], - "id": "49c669ce-c9d0-44ff-aabe-fc8c43b6fa5b" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify([{value1:true},{value2:5}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : append');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 780, - 300 - ], - "notesInFlow": true, - "notes": "Verify merge operation", - "id": "ee84e437-1a43-46e2-8d28-49af7bd7050b" - }, - { - "parameters": { - "mode": "keepKeyMatches", - "propertyName1": "prop3", - "propertyName2": "prop4" - }, - "name": "Merge1", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 580 - ], - "id": "76c2f8bd-920e-46d5-8ccd-c1abb9f9b107" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop1", - "value": 1 - }, - { - "name": "prop3", - "value": -1 - } - ] - }, - "options": {} - }, - "name": "Set2", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 500 - ], - "id": "80630a5a-6b50-4a96-8860-4ee0a44eb6d7" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop2", - "value": 2 - }, - { - "name": "prop4", - "value": -1 - } - ] - }, - "options": {} - }, - "name": "Set3", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 650 - ], - "id": "c711f26f-fa32-4d45-96df-64a94bda847f" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 780, - 580 - ], - "notesInFlow": true, - "notes": "Verify merge operation", - "id": "f14b2693-ef6c-452e-8e9a-bbb0a9854108" - }, - { - "parameters": { - "mode": "mergeByIndex", - "join": "inner" - }, - "name": "Merge2", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 600, - 900 - ], - "id": "fabcb606-0623-4637-aea2-02348c9f8395" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: innerjoin');\n}\nreturn items;" - }, - "name": "Function2", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 900 - ], - "notesInFlow": true, - "notes": "Verify mergeByIndex operation", - "id": "52c35538-f039-4a65-9ee0-0f8b19783e39" - }, - { - "parameters": { - "mode": "mergeByIndex" - }, - "name": "Merge3", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 600, - 750 - ], - "id": "a027b711-4a82-4d5c-b181-ef9c9a8f4c96" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: leftjoin');\n}\nreturn items;" - }, - "name": "Function3", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 750 - ], - "notesInFlow": true, - "notes": "Verify mergeByIndex operation", - "id": "637ec6e5-0166-4a3a-8590-3ba8c2772e43" - }, - { - "parameters": { - "mode": "mergeByIndex", - "join": "outer" - }, - "name": "Merge4", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 600, - 1050 - ], - "notesInFlow": false, - "notes": "outerjoin", - "id": "efc5cc37-9d27-4271-b767-fd9351aadaf4" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify([{title:'Input2item1'},{title:'Input2item2'},{title:'Input2item3'},{title:'Input2item4'}]);\n\nif(JSON.stringify(items.map(item => item.json)) !== testData){\n throw new Error('Error in Merge node : mergeByIndex: outerjoin');\n}\nreturn items;" - }, - "name": "Function4", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 1050 - ], - "notesInFlow": true, - "notes": "Verify mergeByIndex operation", - "id": "00e11687-bdb1-4569-95ed-f90b199b0337" - }, - { - "parameters": { - "mode": "mergeByKey", - "propertyName1": "prop3", - "propertyName2": "prop4" - }, - "name": "Merge5", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 1380 - ], - "id": "87c14aaa-fd17-4d7b-8c05-337033d054b0" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop2", - "value": 2 - }, - { - "name": "prop3", - "value": -2 - }, - { - "name": "prop4", - "value": -3 - } - ] - }, - "options": {} - }, - "name": "Set6", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 1440 - ], - "id": "06f1417b-2461-4aa6-92fb-46749dbf07be" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" - }, - "name": "Function5", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 1380 - ], - "notesInFlow": true, - "notes": "Verify mergeByKey operation", - "id": "440e0084-64d7-48cd-8418-5ea1b0f2c4d8" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop1", - "value": 1 - }, - { - "name": "prop3", - "value": -1 - } - ], - "string": [] - }, - "options": {} - }, - "name": "Set7", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 1290 - ], - "id": "d44ca83d-c757-49c1-b35a-1f95306c796e" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" - }, - "name": "Function6", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 1230 - ], - "notesInFlow": true, - "notes": "Verify mergeByKey operation", - "id": "4f20aaa3-7f0d-4dd4-a863-6c0bb2209b36" - }, - { - "parameters": { - "mode": "mergeByKey", - "propertyName1": "prop3", - "propertyName2": "prop4", - "overwrite": "blank" - }, - "name": "Merge6", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 1230 - ], - "id": "ebf52dbc-51cb-4abf-a4ee-480e2c0f546c" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1:1,prop3:-1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : keepKeyMatches');\n}\nreturn items;" - }, - "name": "Function7", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 1530 - ], - "notesInFlow": true, - "notes": "Verify mergeByKey operation", - "id": "02adb59e-bbfe-442b-a185-2addbe1d1464" - }, - { - "parameters": { - "mode": "mergeByKey", - "propertyName1": "prop3", - "propertyName2": "prop4", - "overwrite": "undefined" - }, - "name": "Merge7", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 1530 - ], - "id": "75a59075-beab-4a75-98b5-b6b267d3a096" - }, - { - "parameters": { - "mode": "multiplex" - }, - "name": "Merge8", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 580, - 1780 - ], - "id": "690e5bee-e4cc-4179-bdf6-f38ffbcd271d" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop3", - "value": 2 - }, - { - "name": "prop4", - "value": -4 - } - ] - }, - "options": {} - }, - "name": "Set8", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 1850 - ], - "id": "65fb39a2-10c6-4ad1-866a-a7771ac9c1af" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1,prop3: 2,prop4: -4});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : multiplex');\n}\nreturn items;" - }, - "name": "Function8", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 780, - 1780 - ], - "notesInFlow": true, - "notes": "Verify multiplex operation", - "id": "fa2cc83d-1223-47cf-a7f8-a272a95014ab" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop1", - "value": 1 - }, - { - "name": "prop2", - "value": -1 - } - ] - }, - "options": {} - }, - "name": "Set9", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 1700 - ], - "id": "66c41d0d-cfb4-4422-94d6-3f2cf87eb5ae" - }, - { - "parameters": { - "mode": "passThrough" - }, - "name": "Merge9", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 590, - 2080 - ], - "id": "449087b4-8aac-4294-a01a-af6475eb48c1" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop3", - "value": 2 - }, - { - "name": "prop4", - "value": -4 - } - ] - }, - "options": {} - }, - "name": "Set10", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 440, - 2150 - ], - "id": "fe7a92b3-8f2a-408b-90df-e1b5fe647027" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : passThrough');\n}\nreturn items;" - }, - "name": "Function9", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 790, - 2080 - ], - "notesInFlow": true, - "notes": "Verify passThrough operation", - "id": "c3faf934-98ee-4bad-9326-567ad3aca34b" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop1", - "value": 1 - }, - { - "name": "prop2", - "value": -1 - } - ] - }, - "options": {} - }, - "name": "Set11", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 440, - 2000 - ], - "id": "48d50540-eb21-470a-9a32-5a57093ebf54" - }, - { - "parameters": { - "mode": "removeKeyMatches", - "propertyName1": "prop1", - "propertyName2": "prop3" - }, - "name": "Merge10", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 600, - 2380 - ], - "id": "8fa6f5b0-9f8f-4ff4-b15e-feaef0f92c61" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop3", - "value": 2 - }, - { - "name": "prop4", - "value": -4 - } - ] - }, - "options": {} - }, - "name": "Set12", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 2450 - ], - "id": "acf521b5-df53-43ff-a046-80f656dbe90b" - }, - { - "parameters": { - "values": { - "boolean": [], - "number": [ - { - "name": "prop1", - "value": 1 - }, - { - "name": "prop2", - "value": -1 - } - ] - }, - "options": {} - }, - "name": "Set13", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 2300 - ], - "id": "0310f05a-f0e6-4383-aa2a-1602dc8979e2" - }, - { - "parameters": { - "functionCode": "testData= JSON.stringify({prop1: 1,prop2: -1});\n\nif(JSON.stringify(items[0].json) !== testData){\n throw new Error('Error in Merge node : removeKeyMatches');\n}\nreturn items;" - }, - "name": "Function10", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 800, - 2380 - ], - "notesInFlow": true, - "notes": "Verify removeKeyMatches operation", - "id": "e56612ad-6b5a-4f1e-9d5c-feacc7960269" - }, - { - "parameters": { - "functionCode": "items = [{\n json:{\n title:'Input1item1'\n }\n},{\n json:{\n title:'Input1item2'\n }\n},{\n json:{\n title:'Input1item3'\n }\n}]\nreturn items;" - }, - "name": "Function11", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 430, - 810 - ], - "notesInFlow": true, - "notes": "Input 1", - "id": "96b68b9c-10fd-4d22-8836-0babe8295c53" - }, - { - "parameters": { - "functionCode": "items = [{\n json:{\n title:'Input2item1'\n }\n},{\n json:{\n title:'Input2item2'\n }\n},{\n json:{\n title:'Input2item3'\n }\n},{\n json:{\n title:'Input2item4'\n }\n}]\nreturn items;" - }, - "name": "Function12", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 430, - 960 - ], - "notesInFlow": true, - "notes": "Input 2", - "id": "b1382fe4-f188-44da-aeec-cfebab259efe" - } - ], - "connections": { - "Merge": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge1": { - "main": [ - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set2": { - "main": [ - [ - { - "node": "Merge1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set3": { - "main": [ - [ - { - "node": "Merge1", - "type": "main", - "index": 1 - } - ] - ] - }, - "Merge2": { - "main": [ - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge3": { - "main": [ - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge4": { - "main": [ - [ - { - "node": "Function4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge5": { - "main": [ - [ - { - "node": "Function5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set6": { - "main": [ - [ - { - "node": "Merge5", - "type": "main", - "index": 1 - }, - { - "node": "Merge6", - "type": "main", - "index": 1 - }, - { - "node": "Merge7", - "type": "main", - "index": 1 - } - ] - ] - }, - "Set7": { - "main": [ - [ - { - "node": "Merge5", - "type": "main", - "index": 0 - }, - { - "node": "Merge6", - "type": "main", - "index": 0 - }, - { - "node": "Merge7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge6": { - "main": [ - [ - { - "node": "Function6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge7": { - "main": [ - [ - { - "node": "Function7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge8": { - "main": [ - [ - { - "node": "Function8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set8": { - "main": [ - [ - { - "node": "Merge8", - "type": "main", - "index": 1 - } - ] - ] - }, - "Set9": { - "main": [ - [ - { - "node": "Merge8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge9": { - "main": [ - [ - { - "node": "Function9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set10": { - "main": [ - [ - { - "node": "Merge9", - "type": "main", - "index": 1 - } - ] - ] - }, - "Set11": { - "main": [ - [ - { - "node": "Merge9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge10": { - "main": [ - [ - { - "node": "Function10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set12": { - "main": [ - [ - { - "node": "Merge10", - "type": "main", - "index": 1 - } - ] - ] - }, - "Set13": { - "main": [ - [ - { - "node": "Merge10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Set1", - "type": "main", - "index": 0 - }, - { - "node": "Set2", - "type": "main", - "index": 0 - }, - { - "node": "Set3", - "type": "main", - "index": 0 - }, - { - "node": "Set7", - "type": "main", - "index": 0 - }, - { - "node": "Set6", - "type": "main", - "index": 0 - }, - { - "node": "Set9", - "type": "main", - "index": 0 - }, - { - "node": "Set8", - "type": "main", - "index": 0 - }, - { - "node": "Set11", - "type": "main", - "index": 0 - }, - { - "node": "Set10", - "type": "main", - "index": 0 - }, - { - "node": "Set13", - "type": "main", - "index": 0 - }, - { - "node": "Set12", - "type": "main", - "index": 0 - }, - { - "node": "Function11", - "type": "main", - "index": 0 - }, - { - "node": "Function12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function11": { - "main": [ - [ - { - "node": "Merge3", - "type": "main", - "index": 0 - }, - { - "node": "Merge2", - "type": "main", - "index": 0 - }, - { - "node": "Merge4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function12": { - "main": [ - [ - { - "node": "Merge3", - "type": "main", - "index": 1 - }, - { - "node": "Merge2", - "type": "main", - "index": 1 - }, - { - "node": "Merge4", - "type": "main", - "index": 1 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/109.json b/test-workflows/workflows/109.json deleted file mode 100644 index 2703443d21..0000000000 --- a/test-workflows/workflows/109.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "createdAt": "2021-03-09T08:21:50.403Z", - "updatedAt": "2021-07-14T13:48:45.782Z", - "id": "109", - "name": "Customerio:Campaign:get getMettrics geAll:Customer:upsert delete:Event:track trackAnonymous:Segment:add remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "61b889fc-0c5f-4bfc-b477-a22d4f8ad97e" - }, - { - "parameters": { - "resource": "campaign", - "campaignId": 1 - }, - "name": "CustomerIo", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 450, - 200 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "notes": "IGNORED_PROPERTIES=trigger_segment_ids", - "id": "2a946a7a-e22f-4ec4-af11-ff6213d5244a" - }, - { - "parameters": { - "resource": "campaign", - "operation": "getMetrics", - "campaignId": 1, - "period": "months", - "additionalFields": {} - }, - "name": "CustomerIo1", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "0c8e6559-217d-4e55-a13f-2cf3ecf9559c" - }, - { - "parameters": { - "resource": "campaign", - "operation": "getAll" - }, - "name": "CustomerIo2", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 750, - 200 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "notes": "IGNORED_PROPERTIES=trigger_segment_ids", - "id": "b704d6b5-e1ac-4cee-ba74-cab476884a9b" - }, - { - "parameters": { - "id": "=customer{{Date.now()}}", - "additionalFields": { - "email": "=fakeemail{{Date.now()}}@gmail.com" - } - }, - "name": "CustomerIo3", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "2be9fc9b-a1c2-4ddb-ac93-a8cfd3a9d80c" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" - }, - "name": "CustomerIo4", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 950, - 450 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "d285c006-5edc-40c7-a932-3e648bd899ba" - }, - { - "parameters": { - "resource": "event", - "customerId": "={{$node[\"CustomerIo3\"].json[\"id\"]}}", - "eventName": "Click", - "additionalFields": {} - }, - "name": "CustomerIo5", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 600, - 550 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "05605b9b-d0a9-48df-bab5-a6b2794333e1" - }, - { - "parameters": { - "resource": "event", - "operation": "trackAnonymous", - "eventName": "Click", - "additionalFields": {} - }, - "name": "CustomerIo6", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 750, - 550 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "505b79eb-bd8c-4951-b0fd-72b9d2a02449" - }, - { - "parameters": { - "resource": "segment", - "segmentId": 10, - "customerIds": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" - }, - "name": "CustomerIo7", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 600, - 400 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "81151093-ae55-43fe-88da-db9ac4655406" - }, - { - "parameters": { - "resource": "segment", - "operation": "remove", - "segmentId": 10, - "customerIds": "={{$node[\"CustomerIo3\"].json[\"id\"]}}" - }, - "name": "CustomerIo8", - "type": "n8n-nodes-base.customerIo", - "typeVersion": 1, - "position": [ - 750, - 400 - ], - "credentials": { - "customerIoApi": { - "id": "78", - "name": "Customer.io creds" - } - }, - "id": "13d89387-b408-41f3-b22c-8dccb11134ea" - } - ], - "connections": { - "CustomerIo": { - "main": [ - [ - { - "node": "CustomerIo1", - "type": "main", - "index": 0 - } - ] - ] - }, - "CustomerIo1": { - "main": [ - [ - { - "node": "CustomerIo2", - "type": "main", - "index": 0 - } - ] - ] - }, - "CustomerIo3": { - "main": [ - [ - { - "node": "CustomerIo5", - "type": "main", - "index": 0 - }, - { - "node": "CustomerIo7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "CustomerIo", - "type": "main", - "index": 0 - }, - { - "node": "CustomerIo3", - "type": "main", - "index": 0 - } - ] - ] - }, - "CustomerIo5": { - "main": [ - [ - { - "node": "CustomerIo6", - "type": "main", - "index": 0 - } - ] - ] - }, - "CustomerIo7": { - "main": [ - [ - { - "node": "CustomerIo8", - "type": "main", - "index": 0 - } - ] - ] - }, - "CustomerIo8": { - "main": [ - [ - { - "node": "CustomerIo4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/11.json b/test-workflows/workflows/11.json deleted file mode 100644 index e1bc4ebc34..0000000000 --- a/test-workflows/workflows/11.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "createdAt": "2021-02-15T16:15:47.074Z", - "updatedAt": "2021-06-04T14:24:35.242Z", - "id": "11", - "name": "Mailchimp:Member:getall get create update delete:Member Tag:create delete:ListGroup:getAll:Campaign:getAll get replicate delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 160, - 300 - ], - "id": "d8d987a3-cc5c-4ec0-b011-7bc16e31ca08" - }, - { - "parameters": { - "operation": "getAll", - "list": "eb9ad4be19", - "limit": 1, - "options": {} - }, - "name": "Mailchimp1", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 430, - 300 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "320b1a49-4754-426d-92ea-e01b24a9f4c6" - }, - { - "parameters": { - "operation": "get", - "list": "eb9ad4be19", - "email": "nodeqa@n8n.io", - "options": {} - }, - "name": "Mailchimp", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 590, - 300 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "1abaa505-82e8-47c0-89f1-b66c9f9f3d22" - }, - { - "parameters": { - "operation": "update", - "list": "eb9ad4be19", - "email": "={{$json[\"email_address\"]}}", - "updateFields": { - "emailType": "html" - } - }, - "name": "Mailchimp2", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 780, - 300 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "54452790-7916-4f94-9e9a-91e0e87a5267" - }, - { - "parameters": { - "resource": "memberTag", - "list": "eb9ad4be19", - "email": "nodeqa@n8n.io", - "tags": [ - "n8n" - ], - "options": {} - }, - "name": "Mailchimp4", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 790, - 140 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "f6b3215e-4628-4118-b994-e3f568f0dd61" - }, - { - "parameters": { - "resource": "memberTag", - "operation": "delete", - "list": "eb9ad4be19", - "email": "nodeqa@n8n.io", - "tags": [ - "n8n" - ], - "options": {} - }, - "name": "Mailchimp5", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 970, - 140 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "9e1dafb8-8afd-4b0d-9623-65b5fb6c1322" - }, - { - "parameters": { - "list": "eb9ad4be19", - "email": "={{$json[\"email\"]}}", - "status": "subscribed", - "options": {} - }, - "name": "Mailchimp3", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 570, - 450 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "197d2f33-acf1-433f-bf88-c44e076539c5" - }, - { - "parameters": { - "functionCode": "items = [{\n json:{\n email: `test${Date.now().toString().substr(5)}@gmail.com`\n }\n}\n]\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 430, - 450 - ], - "notesInFlow": true, - "notes": "Generate fake email", - "id": "9173b153-2d71-41c5-88d3-34a73d187e1b" - }, - { - "parameters": { - "operation": "delete", - "list": "eb9ad4be19", - "email": "={{$json[\"email_address\"]}}" - }, - "name": "Mailchimp6", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 730, - 450 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "60e1eb5b-1725-4b11-a22f-27317dcbee60" - }, - { - "parameters": { - "resource": "listGroup", - "list": "eb9ad4be19", - "groupCategory": "2adbc0d543", - "limit": 1 - }, - "name": "Mailchimp7", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 430, - 140 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "57698c39-732e-43ab-b29b-abc24eeab04b" - }, - { - "parameters": { - "resource": "campaign", - "limit": 1, - "options": {} - }, - "name": "Mailchimp8", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 430, - 610 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "b24cf3d7-b5bf-4386-af74-f1b20fec54f0" - }, - { - "parameters": { - "resource": "campaign", - "operation": "get", - "campaignId": "={{$node[\"Mailchimp8\"].json[\"id\"]}}" - }, - "name": "Mailchimp9", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 580, - 610 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "3a7e9e1a-f070-4c89-9f27-77e9338afca5" - }, - { - "parameters": { - "resource": "campaign", - "operation": "replicate", - "campaignId": "={{$node[\"Mailchimp8\"].json[\"id\"]}}" - }, - "name": "Mailchimp10", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 720, - 610 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "3c7ab34b-7762-4c36-aeb1-2c51e9a27c88" - }, - { - "parameters": { - "resource": "campaign", - "operation": "delete", - "campaignId": "={{$node[\"Mailchimp10\"].json[\"id\"]}}" - }, - "name": "Mailchimp11", - "type": "n8n-nodes-base.mailchimp", - "typeVersion": 1, - "position": [ - 870, - 610 - ], - "credentials": { - "mailchimpApi": { - "id": "29", - "name": "Mailchimp creds" - } - }, - "id": "34e5824a-841b-4890-b5d9-7d72faa17bfc" - } - ], - "connections": { - "Mailchimp1": { - "main": [ - [ - { - "node": "Mailchimp", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp": { - "main": [ - [ - { - "node": "Mailchimp2", - "type": "main", - "index": 0 - }, - { - "node": "Mailchimp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Mailchimp1", - "type": "main", - "index": 0 - }, - { - "node": "Function", - "type": "main", - "index": 0 - }, - { - "node": "Mailchimp7", - "type": "main", - "index": 0 - }, - { - "node": "Mailchimp8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp4": { - "main": [ - [ - { - "node": "Mailchimp5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Mailchimp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp3": { - "main": [ - [ - { - "node": "Mailchimp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp8": { - "main": [ - [ - { - "node": "Mailchimp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp9": { - "main": [ - [ - { - "node": "Mailchimp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mailchimp10": { - "main": [ - [ - { - "node": "Mailchimp11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/110.json b/test-workflows/workflows/110.json deleted file mode 100644 index bc4a44daf6..0000000000 --- a/test-workflows/workflows/110.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "createdAt": "2021-03-09T09:32:25.259Z", - "updatedAt": "2021-03-09T09:32:25.259Z", - "id": "110", - "name": "GraphQL", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9d428026-3835-4357-a2a2-07ec644a11fa" - }, - { - "parameters": { - "requestMethod": "GET", - "endpoint": "https://countries.trevorblades.com/", - "query": "query{\n country(code:\"DE\"){\n name,code,capital,currency\n }\n}" - }, - "name": "GraphQL", - "type": "n8n-nodes-base.graphql", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "f74bf4cd-1dcf-4103-bd16-ac5e8c9eaa4a" - }, - { - "parameters": { - "functionCode": "testData = JSON.stringify({ country: { name: \"Germany\", code: \"DE\", capital: \"Berlin\", currency: \"EUR\" } })\n\nif(JSON.stringify($node['GraphQL'].json.data) !== testData){\n throw new Error('Error in GraphQL node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "238509ad-714e-420a-a521-5b2e9d973c38" - } - ], - "connections": { - "GraphQL": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "GraphQL", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/111.json b/test-workflows/workflows/111.json deleted file mode 100644 index 0d337801a4..0000000000 --- a/test-workflows/workflows/111.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "createdAt": "2021-03-09T10:08:44.018Z", - "updatedAt": "2021-10-27T11:17:13.078Z", - "id": "111", - "name": "Spreadsheet File", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "cbe7cbcd-cf83-498b-8f42-0ebff7d279ed" - }, - { - "parameters": { - "operation": "toFile", - "fileFormat": "html", - "options": {} - }, - "name": "Spreadsheet File", - "type": "n8n-nodes-base.spreadsheetFile", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "d591ad7b-d116-405a-8866-a4d5c6a4624b" - }, - { - "parameters": { - "options": {} - }, - "name": "Spreadsheet File1", - "type": "n8n-nodes-base.spreadsheetFile", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "id": "88b9ed84-42da-4a23-a7df-c5b83487dab1" - }, - { - "parameters": { - "functionCode": "items=[\n {\n json:{\n names:['test1','test12','test13','test14']\n }\n },\n {\n json:{\n names:['test2','test22','test23','test24']\n }\n },\n {\n json:{\n names:['test3','test32','test33','test34']\n }\n },\n {\n json:{\n names:['test4','test42','test43','test44']\n }\n },\n]\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "id": "1df49508-7816-408e-8aed-7ba7452d3a1f" - }, - { - "parameters": { - "functionCode": "testData='PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT48dGFibGU+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMCIgaWQ9InNqcy1BMSI+bmFtZXMuMDwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJuYW1lcy4xIiBpZD0ic2pzLUIxIj5uYW1lcy4xPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9Im5hbWVzLjIiIGlkPSJzanMtQzEiPm5hbWVzLjI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0ibmFtZXMuMyIgaWQ9InNqcy1EMSI+bmFtZXMuMzwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MSIgaWQ9InNqcy1BMiI+dGVzdDE8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEyIiBpZD0ic2pzLUIyIj50ZXN0MTI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDEzIiBpZD0ic2pzLUMyIj50ZXN0MTM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDE0IiBpZD0ic2pzLUQyIj50ZXN0MTQ8L3RkPjwvdHI+PHRyPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDIiIGlkPSJzanMtQTMiPnRlc3QyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMiIgaWQ9InNqcy1CMyI+dGVzdDIyPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyMyIgaWQ9InNqcy1DMyI+dGVzdDIzPC90ZD48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QyNCIgaWQ9InNqcy1EMyI+dGVzdDI0PC90ZD48L3RyPjx0cj48dGQgZGF0YS10PSJzIiBkYXRhLXY9InRlc3QzIiBpZD0ic2pzLUE0Ij50ZXN0MzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzIiIGlkPSJzanMtQjQiPnRlc3QzMjwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzMiIGlkPSJzanMtQzQiPnRlc3QzMzwvdGQ+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0MzQiIGlkPSJzanMtRDQiPnRlc3QzNDwvdGQ+PC90cj48dHI+PHRkIGRhdGEtdD0icyIgZGF0YS12PSJ0ZXN0NCIgaWQ9InNqcy1BNSI+dGVzdDQ8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQyIiBpZD0ic2pzLUI1Ij50ZXN0NDI8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQzIiBpZD0ic2pzLUM1Ij50ZXN0NDM8L3RkPjx0ZCBkYXRhLXQ9InMiIGRhdGEtdj0idGVzdDQ0IiBpZD0ic2pzLUQ1Ij50ZXN0NDQ8L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPg==';\nif(testData !== items[0].binary.data.data){\n throw new Error('Error in Spreadsheet File node (write to file)');\n}\nreturn items;" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "notesInFlow": true, - "notes": "Verify write to file", - "id": "64f7019d-5fa8-456e-a640-084cd57f3ec0" - }, - { - "parameters": { - "functionCode": "testData = JSON.stringify(\n[\n{\n\"names.0\": \"test1\",\n\"names.1\": \"test12\",\n\"names.2\": \"test13\",\n\"names.3\": \"test14\"\n},\n{\n\"names.0\": \"test2\",\n\"names.1\": \"test22\",\n\"names.2\": \"test23\",\n\"names.3\": \"test24\"\n},\n{\n\"names.0\": \"test3\",\n\"names.1\": \"test32\",\n\"names.2\": \"test33\",\n\"names.3\": \"test34\"\n},\n{\n\"names.0\": \"test4\",\n\"names.1\": \"test42\",\n\"names.2\": \"test43\",\n\"names.3\": \"test44\"\n}\n]);\n\nif(testData !== JSON.stringify(items.map(item => item.json))){\n throw new Error('Error in Spreadsheet File node (read file)');\n}\nreturn items;" - }, - "name": "Function2", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 950, - 450 - ], - "notes": "verify read file", - "id": "a5eb9e0e-922f-4156-b586-90c42bcde889" - } - ], - "connections": { - "Spreadsheet File": { - "main": [ - [ - { - "node": "Function1", - "type": "main", - "index": 0 - }, - { - "node": "Spreadsheet File1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Spreadsheet File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spreadsheet File1": { - "main": [ - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/112.json b/test-workflows/workflows/112.json deleted file mode 100644 index 8bda7f7835..0000000000 --- a/test-workflows/workflows/112.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "createdAt": "2021-03-09T14:05:33.799Z", - "updatedAt": "2021-03-09T14:15:46.076Z", - "id": "112", - "name": "Rabbitmq:queue:exchange", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "ee0f6961-37a7-486d-9d75-f73aa8708750" - }, - { - "parameters": { - "queue": "=SimpleQueue", - "sendInputData": false, - "message": "=Message{{Date.now()}}", - "options": { - "autoDelete": true, - "durable": false - } - }, - "name": "RabbitMQ", - "type": "n8n-nodes-base.rabbitmq", - "typeVersion": 1, - "position": [ - 500, - 200 - ], - "credentials": { - "rabbitmq": { - "id": "79", - "name": "RabbitMQ creds" - } - }, - "id": "3b3b66f0-91ab-4a41-a2ab-fec7ce0e36e4" - }, - { - "parameters": { - "mode": "exchange", - "exchange": "FanoutExchange", - "routingKey": "test", - "sendInputData": false, - "message": "=FanoutMessage{{Date.now()}}", - "options": { - "durable": false - } - }, - "name": "RabbitMQ1", - "type": "n8n-nodes-base.rabbitmq", - "typeVersion": 1, - "position": [ - 500, - 350 - ], - "credentials": { - "rabbitmq": { - "id": "79", - "name": "RabbitMQ creds" - } - }, - "id": "f4bb81a0-f6c2-4194-b8ec-0fe6f2350384" - }, - { - "parameters": { - "mode": "exchange", - "exchange": "DirectExchange", - "exchangeType": "direct", - "routingKey": "test", - "sendInputData": false, - "message": "=DirectMessage{{Date.now()}}", - "options": { - "durable": false - } - }, - "name": "RabbitMQ2", - "type": "n8n-nodes-base.rabbitmq", - "typeVersion": 1, - "position": [ - 650, - 350 - ], - "credentials": { - "rabbitmq": { - "id": "79", - "name": "RabbitMQ creds" - } - }, - "id": "ecd77a9f-6523-445d-a7b1-e1585c652c55" - }, - { - "parameters": { - "mode": "exchange", - "exchange": "TopicExchange", - "exchangeType": "topic", - "routingKey": "test", - "sendInputData": false, - "message": "=TopicMessage{{Date.now()}}", - "options": { - "durable": false - } - }, - "name": "RabbitMQ3", - "type": "n8n-nodes-base.rabbitmq", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "credentials": { - "rabbitmq": { - "id": "79", - "name": "RabbitMQ creds" - } - }, - "id": "bd8becb0-8c2b-4516-b375-ac005bfe9a18" - }, - { - "parameters": { - "mode": "exchange", - "exchange": "HeadersExchange", - "exchangeType": "headers", - "routingKey": "test", - "sendInputData": false, - "message": "=HeadersMessage{{Date.now()}}", - "options": { - "durable": false - } - }, - "name": "RabbitMQ4", - "type": "n8n-nodes-base.rabbitmq", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "rabbitmq": { - "id": "79", - "name": "RabbitMQ creds" - } - }, - "id": "abdcf5b6-21ef-40da-b58d-3a2f9ad3b676" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "RabbitMQ", - "type": "main", - "index": 0 - }, - { - "node": "RabbitMQ1", - "type": "main", - "index": 0 - } - ] - ] - }, - "RabbitMQ1": { - "main": [ - [ - { - "node": "RabbitMQ2", - "type": "main", - "index": 0 - } - ] - ] - }, - "RabbitMQ2": { - "main": [ - [ - { - "node": "RabbitMQ3", - "type": "main", - "index": 0 - } - ] - ] - }, - "RabbitMQ3": { - "main": [ - [ - { - "node": "RabbitMQ4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/113.json b/test-workflows/workflows/113.json deleted file mode 100644 index 93f56a7f9c..0000000000 --- a/test-workflows/workflows/113.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "createdAt": "2021-03-09T14:26:06.900Z", - "updatedAt": "2021-03-09T17:25:17.607Z", - "id": "113", - "name": "AMQP", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "cb0c801c-e74c-43a6-9b4d-6e3c2b265f22" - }, - { - "parameters": { - "sink": "AMQPQueue", - "headerParametersJson": "{}", - "options": { - "reconnect": true, - "reconnectLimit": 5 - } - }, - "name": "AMQP Sender", - "type": "n8n-nodes-base.amqp", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "amqp": { - "id": "80", - "name": "AMQP creds" - } - }, - "id": "7d7a98e3-27b0-49bf-8c68-a525895d0b8c" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "message", - "value": "=AMQPMessage{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "951c5927-93e8-4efb-924a-e6516679017c" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "AMQP Sender": { - "main": [ - [] - ] - }, - "Set": { - "main": [ - [ - { - "node": "AMQP Sender", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/114.json b/test-workflows/workflows/114.json deleted file mode 100644 index 4178382142..0000000000 --- a/test-workflows/workflows/114.json +++ /dev/null @@ -1,618 +0,0 @@ -{ - "createdAt": "2021-03-09T20:05:11.480Z", - "updatedAt": "2021-03-22T10:44:13.980Z", - "id": "114", - "name": "Monday:Board:create get getAll archive:BoardColumn:create getAll:BoardGroup:create delete getAll:BoardItem:create addUpdate changeColumnValue get getAll getByColumnValue move delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 200, - 300 - ], - "id": "f7c60ae7-b68c-4251-9778-4d7a1f033285" - }, - { - "parameters": { - "name": "=Board{{Date.now()}}", - "kind": "private", - "additionalFields": {} - }, - "name": "Monday.com", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 440, - 280 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "839f14d0-14de-40e9-81c8-08810b6edf70" - }, - { - "parameters": { - "operation": "get", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" - }, - "name": "Monday.com1", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 600, - 280 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "bbf1c663-e121-4d6c-9afc-a6185d15d45a" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Monday.com2", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 750, - 280 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "19e62461-a13a-4ed5-984d-48c932f3c673" - }, - { - "parameters": { - "operation": "archive", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" - }, - "name": "Monday.com3", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 3110, - 270 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "1f5c07fc-54f7-47fd-9c32-5c5d58013755" - }, - { - "parameters": { - "resource": "boardColumn", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "title": "=Column{{Date.now()}}", - "columnType": "checkbox", - "additionalFields": {} - }, - "name": "Monday.com4", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 900, - 0 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "e96e4955-0dd8-45a9-90ae-b8f0b2cf4cb2" - }, - { - "parameters": { - "resource": "boardColumn", - "operation": "getAll", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" - }, - "name": "Monday.com5", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2850, - -50 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "b009f62b-41a1-46f1-8796-30fa18e74c5c" - }, - { - "parameters": { - "resource": "boardGroup", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "name": "=Group{{Date.now()}}" - }, - "name": "Monday.com6", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1200, - 50 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "530e0e10-cba4-41c8-8e8c-203f451501b2" - }, - { - "parameters": { - "resource": "boardGroup", - "operation": "delete", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}" - }, - "name": "Monday.com7", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2540, - 50 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "27c609e7-c3e6-4e4a-af47-08a9a34ce21c" - }, - { - "parameters": { - "resource": "boardGroup", - "operation": "getAll", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}" - }, - "name": "Monday.com8", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2690, - 50 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "405a5103-b9ce-4297-90d8-d5fa8fd5852f" - }, - { - "parameters": { - "resource": "boardItem", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}", - "name": "=Item{{Date.now()}}", - "additionalFields": {} - }, - "name": "Monday.com9", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1350, - 150 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "dc5e88cf-04a4-4858-927a-2e08c4b9ceb8" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "addUpdate", - "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", - "value": "=Update{{Date.now()}}" - }, - "name": "Monday.com10", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1500, - 150 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "1d508527-3c1c-4c7c-a6f6-19ed2e674eb8" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "changeColumnValue", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", - "columnId": "={{$node[\"Monday.com4\"].json[\"id\"]}}", - "value": "={{JSON.stringify({\"checked\": \"true\"});}}" - }, - "name": "Monday.com11", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1650, - 150 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "f03bca62-ee0f-4598-8833-26d9ba2f83fb" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "get", - "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}" - }, - "name": "Monday.com12", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1800, - 150 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "b4a2cfef-83ea-430f-8b0c-3a7b3dafc5ed" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "getAll", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Monday.com13", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 1950, - 150 - ], - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "549dc7a6-e611-4c75-9c37-40673a79bf39" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "getByColumnValue", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "columnId": "={{$node[\"Monday.com4\"].json[\"id\"]}}", - "columnValue": "\"{\"checked\":\"true\"}\"", - "limit": 1 - }, - "name": "Monday.com14", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2100, - 150 - ], - "alwaysOutputData": true, - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "7026f1b0-8014-43ae-930d-a1c7db989163" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "move", - "boardId": "={{$node[\"Monday.com\"].json[\"id\"]}}", - "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}", - "groupId": "={{$node[\"Monday.com6\"].json[\"id\"]}}" - }, - "name": "Monday.com15", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2250, - 150 - ], - "alwaysOutputData": true, - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "596fc3f9-0d39-4f7f-864b-32a6640e7ff0" - }, - { - "parameters": { - "resource": "boardItem", - "operation": "delete", - "itemId": "={{$node[\"Monday.com9\"].json[\"id\"]}}" - }, - "name": "Monday.com16", - "type": "n8n-nodes-base.mondayCom", - "typeVersion": 1, - "position": [ - 2400, - 150 - ], - "alwaysOutputData": true, - "credentials": { - "mondayComApi": { - "id": "113", - "name": "Monday.com API creds" - } - }, - "id": "6080f346-15d2-484f-8cfa-44b93dc93213" - }, - { - "parameters": { - "mode": "wait" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 2960, - 120 - ], - "id": "7ca43678-0fea-4fc4-85c5-af1dc02be4d2" - } - ], - "connections": { - "Monday.com": { - "main": [ - [ - { - "node": "Monday.com1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com1": { - "main": [ - [ - { - "node": "Monday.com2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com2": { - "main": [ - [ - { - "node": "Monday.com4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com4": { - "main": [ - [ - { - "node": "Monday.com6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com6": { - "main": [ - [ - { - "node": "Monday.com9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com7": { - "main": [ - [ - { - "node": "Monday.com8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com9": { - "main": [ - [ - { - "node": "Monday.com10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com10": { - "main": [ - [ - { - "node": "Monday.com11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com11": { - "main": [ - [ - { - "node": "Monday.com12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com12": { - "main": [ - [ - { - "node": "Monday.com13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com13": { - "main": [ - [ - { - "node": "Monday.com14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com14": { - "main": [ - [ - { - "node": "Monday.com15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com15": { - "main": [ - [ - { - "node": "Monday.com16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com16": { - "main": [ - [ - { - "node": "Monday.com7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com8": { - "main": [ - [ - { - "node": "Monday.com5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Monday.com5": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - }, - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Monday.com3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Monday.com", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/115.json b/test-workflows/workflows/115.json deleted file mode 100644 index b3275ffb02..0000000000 --- a/test-workflows/workflows/115.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "createdAt": "2021-03-10T09:08:07.793Z", - "updatedAt": "2021-03-10T09:08:07.793Z", - "id": "115", - "name": "Cockpit:Collection:createEntry updateEntry getAllEntries:Singleton:get:Form:submit", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "768b2ddf-9888-4361-8f1e-3a4dff195e6b" - }, - { - "parameters": { - "operation": "create", - "collection": "FixedCollection", - "dataFieldsUi": { - "field": [ - { - "name": "Name", - "value": "=entry{{Date.now()}}" - } - ] - } - }, - "name": "Cockpit", - "type": "n8n-nodes-base.cockpit", - "typeVersion": 1, - "position": [ - 550, - 180 - ], - "credentials": { - "cockpitApi": { - "id": "81", - "name": "Cockpit API creds" - } - }, - "id": "a731c3d7-ffb7-493e-a3ac-9fdef8776801" - }, - { - "parameters": { - "operation": "update", - "collection": "FixedCollection", - "id": "={{$node[\"Cockpit\"].json[\"_id\"]}}", - "dataFieldsUi": { - "field": [ - { - "name": "Name", - "value": "=UpdatedEntry{{Date.now()}}" - } - ] - } - }, - "name": "Cockpit1", - "type": "n8n-nodes-base.cockpit", - "typeVersion": 1, - "position": [ - 700, - 180 - ], - "credentials": { - "cockpitApi": { - "id": "81", - "name": "Cockpit API creds" - } - }, - "id": "be0de116-a348-436c-8903-a78f2d9978f3" - }, - { - "parameters": { - "collection": "FixedCollection", - "limit": 1, - "options": {} - }, - "name": "Cockpit2", - "type": "n8n-nodes-base.cockpit", - "typeVersion": 1, - "position": [ - 850, - 180 - ], - "credentials": { - "cockpitApi": { - "id": "81", - "name": "Cockpit API creds" - } - }, - "id": "e151e242-d0a9-43d9-8003-632b4f8569ad" - }, - { - "parameters": { - "resource": "singleton", - "singleton": "FixedSingleton" - }, - "name": "Cockpit3", - "type": "n8n-nodes-base.cockpit", - "typeVersion": 1, - "position": [ - 550, - 350 - ], - "credentials": { - "cockpitApi": { - "id": "81", - "name": "Cockpit API creds" - } - }, - "id": "b1f38f40-c544-496f-bcb9-3957a755a497" - }, - { - "parameters": { - "resource": "form", - "form": "FixedForm", - "dataFieldsUi": { - "field": [ - { - "name": "name", - "value": "=name{{Date.now()}}" - }, - { - "name": "tag", - "value": "=tag{{Date.now()}}" - } - ] - } - }, - "name": "Cockpit4", - "type": "n8n-nodes-base.cockpit", - "typeVersion": 1, - "position": [ - 550, - 500 - ], - "credentials": { - "cockpitApi": { - "id": "81", - "name": "Cockpit API creds" - } - }, - "id": "9567077a-58f2-453e-8d36-35d4c68e9510" - } - ], - "connections": { - "Cockpit": { - "main": [ - [ - { - "node": "Cockpit1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Cockpit1": { - "main": [ - [ - { - "node": "Cockpit2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Cockpit", - "type": "main", - "index": 0 - }, - { - "node": "Cockpit3", - "type": "main", - "index": 0 - }, - { - "node": "Cockpit4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/116.json b/test-workflows/workflows/116.json deleted file mode 100644 index aa2175771a..0000000000 --- a/test-workflows/workflows/116.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "createdAt": "2021-03-10T10:32:50.903Z", - "updatedAt": "2021-03-10T10:32:50.903Z", - "id": "116", - "name": "Ghost:Post(Admin API):create update get getAll delete:Post(Content API):getAll get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "96a1cf58-f3dc-46ea-a07a-5202bffee113" - }, - { - "parameters": { - "source": "adminApi", - "operation": "create", - "title": "=PostTitle{{Date.now()}}", - "content": "=Post Content written at {{Date.now()}}", - "additionalFields": {} - }, - "name": "Ghost", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "ghostAdminApi": { - "id": "83", - "name": "Ghost Admin api creds" - } - }, - "id": "6c09ea13-41e8-4704-b357-4390b14e7255" - }, - { - "parameters": { - "source": "adminApi", - "operation": "update", - "postId": "={{$node[\"Ghost\"].json[\"id\"]}}", - "updateFields": { - "title": "=UpdateTitle{{Date.now()}}" - } - }, - "name": "Ghost1", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "ghostAdminApi": { - "id": "83", - "name": "Ghost Admin api creds" - } - }, - "id": "57fab43f-0013-4250-bcd4-1318f9371097" - }, - { - "parameters": { - "source": "adminApi", - "by": "id", - "identifier": "={{$node[\"Ghost\"].json[\"id\"]}}", - "options": {} - }, - "name": "Ghost2", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "ghostAdminApi": { - "id": "83", - "name": "Ghost Admin api creds" - } - }, - "id": "e032227a-b97e-4b60-8b9e-9061c2d7e279" - }, - { - "parameters": { - "source": "adminApi", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Ghost3", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "ghostAdminApi": { - "id": "83", - "name": "Ghost Admin api creds" - } - }, - "id": "6150282c-3d31-4387-8dbb-74730ada47aa" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Ghost4", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 1150, - 450 - ], - "credentials": { - "ghostContentApi": { - "id": "82", - "name": "Ghost Content creds" - } - }, - "id": "488558ee-8ef5-460b-ae0e-31e74ce25d9c" - }, - { - "parameters": { - "by": "id", - "identifier": "={{$node[\"Ghost4\"].json[\"id\"]}}", - "options": {} - }, - "name": "Ghost5", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 1300, - 450 - ], - "credentials": { - "ghostContentApi": { - "id": "82", - "name": "Ghost Content creds" - } - }, - "id": "f0f53fe7-b17f-45fc-bfa5-b7db642a22a9" - }, - { - "parameters": { - "source": "adminApi", - "operation": "delete", - "postId": "={{$node[\"Ghost\"].json[\"id\"]}}" - }, - "name": "Ghost6", - "type": "n8n-nodes-base.ghost", - "typeVersion": 1, - "position": [ - 1450, - 300 - ], - "credentials": { - "ghostAdminApi": { - "id": "83", - "name": "Ghost Admin api creds" - } - }, - "id": "83c79ebf-21b0-4d8b-be7e-9e7002015990" - } - ], - "connections": { - "Ghost": { - "main": [ - [ - { - "node": "Ghost1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Ghost1": { - "main": [ - [ - { - "node": "Ghost2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Ghost2": { - "main": [ - [ - { - "node": "Ghost3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Ghost3": { - "main": [ - [ - { - "node": "Ghost4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Ghost4": { - "main": [ - [ - { - "node": "Ghost5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Ghost5": { - "main": [ - [ - { - "node": "Ghost6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Ghost", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/117.json b/test-workflows/workflows/117.json deleted file mode 100644 index e0995ce71d..0000000000 --- a/test-workflows/workflows/117.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "createdAt": "2021-03-10T11:09:19.174Z", - "updatedAt": "2021-03-10T11:09:40.674Z", - "id": "117", - "name": "Gotify:Message:create getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "1d2659eb-da2b-4d7c-94f6-09d7dc99ef0d" - }, - { - "parameters": { - "message": "=Message content {{Date.now()}}", - "additionalFields": { - "title": "=Title{{Date.now()}}" - } - }, - "name": "Gotify", - "type": "n8n-nodes-base.gotify", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "gotifyApi": { - "id": "84", - "name": "Gotify API creds" - } - }, - "id": "c8ae4d15-a793-4c51-a13a-5e9541079ed2" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Gotify1", - "type": "n8n-nodes-base.gotify", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "gotifyApi": { - "id": "84", - "name": "Gotify API creds" - } - }, - "id": "9c136007-0f4a-4e13-ba09-03cd4dccbdab" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Gotify\"].json[\"id\"]}}" - }, - "name": "Gotify2", - "type": "n8n-nodes-base.gotify", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "gotifyApi": { - "id": "84", - "name": "Gotify API creds" - } - }, - "id": "fb795089-773b-47a5-b8f5-86c52a1863d6" - } - ], - "connections": { - "Gotify": { - "main": [ - [ - { - "node": "Gotify1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gotify1": { - "main": [ - [ - { - "node": "Gotify2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Gotify", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/118.json b/test-workflows/workflows/118.json deleted file mode 100644 index a7dbd8e88e..0000000000 --- a/test-workflows/workflows/118.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "createdAt": "2021-03-10T13:48:09.104Z", - "updatedAt": "2021-06-02T10:31:06.860Z", - "id": "118", - "name": "Redis:info set keys get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "bfe11af4-fb50-452c-b976-4d03d10829d2" - }, - { - "parameters": {}, - "name": "Redis", - "type": "n8n-nodes-base.redis", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "redis": { - "id": "85", - "name": "Redis creds" - } - }, - "id": "d63e6bed-6d35-4f90-8a9f-11869262fd3c" - }, - { - "parameters": { - "operation": "set", - "key": "={{$node[\"Set\"].json[\"key\"]}}", - "value": "={{$node[\"Set\"].json[\"value\"]}}" - }, - "name": "Redis1", - "type": "n8n-nodes-base.redis", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "redis": { - "id": "85", - "name": "Redis creds" - } - }, - "id": "de5c3f28-1d4e-4c43-92c1-d9987e472c69" - }, - { - "parameters": { - "operation": "keys", - "keyPattern": "={{$node[\"Set\"].json[\"key\"]}}" - }, - "name": "Redis2", - "type": "n8n-nodes-base.redis", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "redis": { - "id": "85", - "name": "Redis creds" - } - }, - "id": "00d6c08e-263e-43db-a93f-a0bf28d0d0bd" - }, - { - "parameters": { - "operation": "get", - "propertyName": "value", - "key": "={{$node[\"Set\"].json[\"key\"]}}", - "options": {} - }, - "name": "Redis3", - "type": "n8n-nodes-base.redis", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "redis": { - "id": "85", - "name": "Redis creds" - } - }, - "id": "1ee59e47-956c-4c04-b460-0409d488ae1f" - }, - { - "parameters": { - "operation": "delete", - "key": "={{$node[\"Set\"].json[\"key\"]}}" - }, - "name": "Redis4", - "type": "n8n-nodes-base.redis", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "redis": { - "id": "85", - "name": "Redis creds" - } - }, - "id": "08580c27-446e-4b5c-a8a2-956208327019" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "key", - "value": "TestKey" - }, - { - "name": "value", - "value": "=Value{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "779cc18d-7a1a-454d-b70a-b54ae590c896" - }, - { - "parameters": { - "functionCode": "if($node['Set'].json['value'] !== $node['Redis3'].json['value'] ){\n throw new Error('Error in redis node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1300, - 450 - ], - "notesInFlow": true, - "notes": "validate the saved value", - "id": "72efc2c0-6bb3-4560-b935-9231558081a8" - } - ], - "connections": { - "Redis": { - "main": [ - [ - { - "node": "Redis1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Redis1": { - "main": [ - [ - { - "node": "Redis2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Redis2": { - "main": [ - [ - { - "node": "Redis3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Redis3": { - "main": [ - [ - { - "node": "Redis4", - "type": "main", - "index": 0 - }, - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Redis", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/119.json b/test-workflows/workflows/119.json deleted file mode 100644 index 8230fe8ec0..0000000000 --- a/test-workflows/workflows/119.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "createdAt": "2021-03-10T15:10:43.540Z", - "updatedAt": "2021-03-10T15:13:14.859Z", - "id": "119", - "name": "CrateDB:insert update executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e0aab098-04f4-42ce-b128-c1707e6ab085" - }, - { - "parameters": { - "table": "testtable", - "columns": "id,name" - }, - "name": "CrateDB", - "type": "n8n-nodes-base.crateDb", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "crateDb": { - "id": "86", - "name": "CrateDB creds" - } - }, - "id": "51925b66-eddd-4a2c-bd53-3c93d8c4d3d9" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=Name{{Date.now()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*100000)}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "ca7b9956-a037-4efa-9bfa-769067d489b8" - }, - { - "parameters": { - "operation": "update", - "table": "testtable", - "columns": "id,name" - }, - "name": "CrateDB1", - "type": "n8n-nodes-base.crateDb", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "crateDb": { - "id": "86", - "name": "CrateDB creds" - } - }, - "id": "7f727eb3-00c1-464d-aa3b-503138386420" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=UpdatedName{{Date.now()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{$node[\"Set\"].json[\"id\"]}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "d8d1fb13-1756-4cff-b6f6-adbe388851f6" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=DELETE FROM \"doc\".\"testtable\" WHERE id={{$node[\"Set1\"].json[\"id\"]}};" - }, - "name": "CrateDB2", - "type": "n8n-nodes-base.crateDb", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "crateDb": { - "id": "86", - "name": "CrateDB creds" - } - }, - "id": "41bbb36e-d1b4-419a-a587-4fb9a0a4d349" - } - ], - "connections": { - "CrateDB": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "CrateDB", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "CrateDB1", - "type": "main", - "index": 0 - } - ] - ] - }, - "CrateDB1": { - "main": [ - [ - { - "node": "CrateDB2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/120.json b/test-workflows/workflows/120.json deleted file mode 100644 index a43e5a7d23..0000000000 --- a/test-workflows/workflows/120.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "createdAt": "2021-03-10T15:35:11.016Z", - "updatedAt": "2021-03-10T15:36:00.949Z", - "id": "120", - "name": "MySQL:insert update executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "5b615e13-07d6-4c71-af21-318ec21ec4a0" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=Name{{Date.now()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*100000)}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "7fb26b4f-a2aa-4cb9-aa75-8514d7095189" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=UpdatedName{{Date.now()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{$node[\"Set\"].json[\"id\"]}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "2494e933-9a78-418a-afe2-ada2340d2f56" - }, - { - "parameters": { - "table": "TestTable", - "columns": "id,name" - }, - "name": "MySQL", - "type": "n8n-nodes-base.mySql", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "mySql": { - "id": "87", - "name": "MySQL creds" - } - }, - "id": "3a942f01-b88b-4b01-bfe6-355be41e0ce9" - }, - { - "parameters": { - "operation": "update", - "table": "TestTable", - "columns": "id,name" - }, - "name": "MySQL1", - "type": "n8n-nodes-base.mySql", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "mySql": { - "id": "87", - "name": "MySQL creds" - } - }, - "id": "6bf22c0c-7a5a-47d6-98e7-129eb92b2825" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=SELECT * FROM TestTable LIMIT 1;" - }, - "name": "MySQL2", - "type": "n8n-nodes-base.mySql", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "mySql": { - "id": "87", - "name": "MySQL creds" - } - }, - "id": "d984d201-7a77-423b-85a3-fc6a59417488" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=DELETE FROM TestTable WHERE id={{$node[\"Set1\"].json[\"id\"]}};" - }, - "name": "MySQL3", - "type": "n8n-nodes-base.mySql", - "typeVersion": 1, - "position": [ - 1450, - 300 - ], - "credentials": { - "mySql": { - "id": "87", - "name": "MySQL creds" - } - }, - "id": "c19d0fc0-2e2d-4bbf-a7dd-a2e625dc7984" - } - ], - "connections": { - "Set": { - "main": [ - [ - { - "node": "MySQL", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "MySQL1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "MySQL": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "MySQL1": { - "main": [ - [ - { - "node": "MySQL2", - "type": "main", - "index": 0 - } - ] - ] - }, - "MySQL2": { - "main": [ - [ - { - "node": "MySQL3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/121.json b/test-workflows/workflows/121.json deleted file mode 100644 index e6dffeffee..0000000000 --- a/test-workflows/workflows/121.json +++ /dev/null @@ -1,463 +0,0 @@ -{ - "createdAt": "2021-03-10T16:41:57.544Z", - "updatedAt": "2021-07-14T14:15:34.356Z", - "id": "121", - "name": "Mautic:Company:create update get getAll delete:Contact:create update get getAll delete:ContactCompany:add remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "32f14cad-d9c6-4b95-ab68-d4826d48fabf" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "name": "=Company{{Date.now()}}", - "additionalFields": {} - }, - "name": "Mautic", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "d51c36e4-8d14-4d6b-9d98-a54dba80d8d9" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "operation": "update", - "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdatedCompany{{Date.now()}}" - } - }, - "name": "Mautic1", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 700, - 250 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "9d20aa4c-55c2-43f1-9eb8-61aa035fa095" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "operation": "get", - "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" - }, - "name": "Mautic2", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1300, - 250 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "2c32e4c1-c0f0-4119-935a-a41944fcc1f6" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Mautic3", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1450, - 250 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "e8aaee34-faed-4540-a153-e007360950e6" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "operation": "delete", - "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" - }, - "name": "Mautic4", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1600, - 250 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "51e9562a-6ed2-474f-a166-79aadba161ce" - }, - { - "parameters": { - "authentication": "oAuth2", - "email": "=fakeemail{{Date.now()}}@gmail.com", - "firstName": "=Name{{Date.now()}}", - "lastName": "=LasName{{Date.now()}}", - "position": "=Position{{Date.now()}}", - "title": "=Title{{Date.now()}}", - "additionalFields": {}, - "options": {} - }, - "name": "Mautic5", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 550, - 400 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "b1254079-c7e5-4bbd-b82d-949659011b06" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "update", - "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", - "updateFields": { - "title": "=UpdatedTitle{{Date.now()}}" - }, - "options": {} - }, - "name": "Mautic6", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 700, - 400 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "a52da7e6-2d92-4e0f-a216-8ea0a40eb335" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "get", - "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", - "options": {} - }, - "name": "Mautic7", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1300, - 400 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "f6defb20-2e74-4a39-9232-b5da5c865f0c" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Mautic8", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1450, - 400 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "e58f2f81-3e0c-45e4-818b-5f665ea7c539" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "delete", - "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", - "options": {} - }, - "name": "Mautic9", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1600, - 400 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "f06c2ab6-32ee-4c50-a122-f3bad0523587" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "companyContact", - "operation": "add", - "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", - "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" - }, - "name": "Mautic10", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1000, - 340 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "fb483ebe-6c2c-4003-9808-c669f4a91274" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "companyContact", - "operation": "remove", - "contactId": "={{$node[\"Mautic5\"].json[\"id\"]}}", - "companyId": "={{$node[\"Mautic\"].json[\"id\"]}}" - }, - "name": "Mautic11", - "type": "n8n-nodes-base.mautic", - "typeVersion": 1, - "position": [ - 1150, - 340 - ], - "credentials": { - "mauticOAuth2Api": { - "id": "89", - "name": "Mautic OAuth2 API creds" - } - }, - "id": "98d7a2b6-1cc9-4887-88ca-ce5866116d63" - }, - { - "parameters": { - "mode": "wait" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 850, - 340 - ], - "notesInFlow": true, - "notes": "Keep single execution", - "id": "be2a68cb-4317-4f90-8c79-fb0b30014081" - } - ], - "connections": { - "Mautic": { - "main": [ - [ - { - "node": "Mautic1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Mautic", - "type": "main", - "index": 0 - }, - { - "node": "Mautic5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic1": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic2": { - "main": [ - [ - { - "node": "Mautic3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic3": { - "main": [ - [ - { - "node": "Mautic4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic5": { - "main": [ - [ - { - "node": "Mautic6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic6": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Mautic7": { - "main": [ - [ - { - "node": "Mautic8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic8": { - "main": [ - [ - { - "node": "Mautic9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic10": { - "main": [ - [ - { - "node": "Mautic11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mautic11": { - "main": [ - [ - { - "node": "Mautic2", - "type": "main", - "index": 0 - }, - { - "node": "Mautic7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Mautic10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/122.json b/test-workflows/workflows/122.json deleted file mode 100644 index 1aec4d0096..0000000000 --- a/test-workflows/workflows/122.json +++ /dev/null @@ -1,514 +0,0 @@ -{ - "createdAt": "2021-03-11T08:54:28.548Z", - "updatedAt": "2021-05-25T12:50:39.981Z", - "id": "122", - "name": "Orbit:Member:upsert get update delete getAll lookup:Note:create update getAll:Activity:create getAll:Post:create getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 410, - 200 - ], - "id": "39ef826b-4c37-4617-aacb-e2d276721e1f" - }, - { - "parameters": { - "operation": "upsert", - "workspaceId": "543", - "identityUi": { - "identityValue": { - "source": "email", - "email": "={{$node[\"Set\"].json[\"email\"]}}" - } - }, - "additionalFields": { - "name": "=Name{{Date.now()}}" - } - }, - "name": "Orbit", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 750, - 200 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "b36edb18-df88-418c-8a9d-22d43bb6aa89" - }, - { - "parameters": { - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}" - }, - "name": "Orbit1", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 900, - 200 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "c48b87cd-09dd-414e-ae47-668b6379685e" - }, - { - "parameters": { - "operation": "getAll", - "workspaceId": "543", - "limit": 1, - "options": {} - }, - "name": "Orbit2", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 600, - 500 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "0de00f28-5062-4deb-98e4-f4adf9ca657e" - }, - { - "parameters": { - "operation": "update", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Orbit\"].json[\"attributes\"][\"name\"]}}" - } - }, - "name": "Orbit3", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1050, - 200 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "83cbc054-9ce4-43db-9b43-6f610596069b" - }, - { - "parameters": { - "operation": "lookup", - "workspaceId": "543", - "source": "github", - "searchBy": "username", - "username": "={{$node[\"Orbit2\"].json[\"attributes\"][\"github\"]}}" - }, - "name": "Orbit4", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 750, - 500 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "599f8644-eed0-414a-82cb-cccc327a2e13" - }, - { - "parameters": { - "operation": "delete", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}" - }, - "name": "Orbit5", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1200, - 200 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "03d30c2f-044c-4cf6-9d9c-f1cf39027dab" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "email", - "value": "=fake{{Date.now()}}@gmail.com" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "id": "9131159f-68a7-4379-945e-2743187ae993" - }, - { - "parameters": { - "resource": "activity", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", - "title": "=Title{{Date.now()}}", - "additionalFields": {} - }, - "name": "Orbit6", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 900, - 350 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "27ac35b2-64d0-4422-a5a1-dc453af2f01d" - }, - { - "parameters": { - "resource": "activity", - "operation": "getAll", - "workspaceId": "543", - "limit": 1, - "filters": {} - }, - "name": "Orbit7", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1050, - 350 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "8f50074d-e558-4150-bc0c-c0721e071aa0" - }, - { - "parameters": { - "resource": "note", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", - "note": "=Note{{Date.now()}}" - }, - "name": "Orbit8", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 900, - 50 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "bba7efcf-70e2-48c3-940f-2233b3ab0f05" - }, - { - "parameters": { - "resource": "note", - "operation": "update", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", - "noteId": "={{$node[\"Orbit8\"].json[\"id\"]}}", - "note": "=Updated{{$node[\"Orbit8\"].json[\"attributes\"][\"body\"]}}" - }, - "name": "Orbit9", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1050, - 50 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "a5ea5c0a-c939-4017-b355-86be07da2fcf" - }, - { - "parameters": { - "resource": "note", - "operation": "getAll", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Orbit10", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1200, - 50 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "e070222a-741f-4f31-a2cb-47731f3b7f75" - }, - { - "parameters": { - "resource": "post", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit4\"].json[\"id\"]}}", - "url": "=https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020?test_timestamp={{Date.now()}}", - "additionalFields": {} - }, - "name": "Orbit11", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 900, - 500 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "34567405-fff1-4d1a-b652-0dcd61dedb9a" - }, - { - "parameters": { - "resource": "post", - "operation": "getAll", - "workspaceId": "543", - "limit": 1, - "filters": {} - }, - "name": "Orbit12", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1050, - 500 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "f155c381-f37e-4ec2-876c-8123213fd4ef" - }, - { - "parameters": { - "resource": "post", - "operation": "delete", - "workspaceId": "543", - "memberId": "={{$node[\"Orbit4\"].json[\"id\"]}}", - "postId": "={{$node[\"Orbit11\"].json[\"id\"]}}" - }, - "name": "Orbit13", - "type": "n8n-nodes-base.orbit", - "typeVersion": 1, - "position": [ - 1050, - 650 - ], - "credentials": { - "orbitApi": { - "id": "112", - "name": "Orbit API creds" - } - }, - "id": "f5a44540-6958-4cf0-919d-a4c9b07df59f" - } - ], - "connections": { - "Orbit": { - "main": [ - [ - { - "node": "Orbit6", - "type": "main", - "index": 0 - }, - { - "node": "Orbit8", - "type": "main", - "index": 0 - }, - { - "node": "Orbit1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit1": { - "main": [ - [ - { - "node": "Orbit3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit2": { - "main": [ - [ - { - "node": "Orbit4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit3": { - "main": [ - [ - { - "node": "Orbit5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Orbit2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Orbit", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit6": { - "main": [ - [ - { - "node": "Orbit7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit8": { - "main": [ - [ - { - "node": "Orbit9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit9": { - "main": [ - [ - { - "node": "Orbit10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit11": { - "main": [ - [ - { - "node": "Orbit12", - "type": "main", - "index": 0 - }, - { - "node": "Orbit13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Orbit4": { - "main": [ - [ - { - "node": "Orbit11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/123.json b/test-workflows/workflows/123.json deleted file mode 100644 index e102621cce..0000000000 --- a/test-workflows/workflows/123.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "createdAt": "2021-03-11T09:31:40.228Z", - "updatedAt": "2021-03-11T09:32:06.868Z", - "id": "123", - "name": "MongoDB:insert find update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "a355b2f8-5354-4e3f-9409-c29de450e49c" - }, - { - "parameters": { - "operation": "insert", - "collection": "TestCollection", - "fields": "id,name,valid" - }, - "name": "MongoDB", - "type": "n8n-nodes-base.mongoDb", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "mongoDb": { - "id": "90", - "name": "MongoDB creds" - } - }, - "id": "2b30fbfb-08dd-48ac-bec7-722457fec924" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=Test{{Date.now()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*10000)}}" - } - ], - "boolean": [ - { - "name": "valid", - "value": "={{(Math.random()*100) > 50}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "notesInFlow": true, - "notes": "set document", - "id": "3a57b5c9-3f2e-43ef-a0ae-3598e1eb54b7" - }, - { - "parameters": { - "collection": "TestCollection" - }, - "name": "MongoDB1", - "type": "n8n-nodes-base.mongoDb", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "mongoDb": { - "id": "90", - "name": "MongoDB creds" - } - }, - "id": "6ede4036-3685-402e-abc3-3f2a95b23cfc" - }, - { - "parameters": { - "operation": "update", - "collection": "TestCollection", - "fields": "name" - }, - "name": "MongoDB2", - "type": "n8n-nodes-base.mongoDb", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "mongoDb": { - "id": "90", - "name": "MongoDB creds" - } - }, - "id": "8299beed-7163-4a92-9f41-b8c970bc320b" - }, - { - "parameters": { - "operation": "delete", - "collection": "TestCollection" - }, - "name": "MongoDB3", - "type": "n8n-nodes-base.mongoDb", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "mongoDb": { - "id": "90", - "name": "MongoDB creds" - } - }, - "id": "f77603b7-8d36-46bc-bcc5-604b63294778" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=UpdatedName{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "notesInFlow": true, - "notes": "update name attribut", - "id": "d32afa6f-35a1-492f-8185-21bef87b18f0" - } - ], - "connections": { - "MongoDB": { - "main": [ - [ - { - "node": "MongoDB1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "MongoDB", - "type": "main", - "index": 0 - } - ] - ] - }, - "MongoDB1": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "MongoDB2": { - "main": [ - [ - { - "node": "MongoDB3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "MongoDB2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/124.json b/test-workflows/workflows/124.json deleted file mode 100644 index e03dfb348b..0000000000 --- a/test-workflows/workflows/124.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "createdAt": "2021-03-11T12:18:29.698Z", - "updatedAt": "2021-03-11T12:18:29.698Z", - "id": "124", - "name": "QuestDB: insert executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "97bc2a65-cef4-47d4-b986-8bbf54f8698d" - }, - { - "parameters": { - "table": "TestTable", - "columns": "id,name" - }, - "name": "QuestDB", - "type": "n8n-nodes-base.questDb", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "questDb": { - "id": "91", - "name": "QuestDB creds" - } - }, - "id": "da306e33-0ed0-4c94-b37e-2769511e28d1" - }, - { - "parameters": { - "values": { - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*1000)}}" - } - ], - "string": [ - { - "name": "name", - "value": "=Name{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "notesInFlow": true, - "notes": "prepare data", - "id": "53f41164-da16-4eae-a333-09166cfffeea" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=SELECT * FROM TestTable WHERE id={{$node[\"QuestDB\"].json[\"id\"]}} LIMIT 1;" - }, - "name": "QuestDB1", - "type": "n8n-nodes-base.questDb", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "notesInFlow": true, - "credentials": { - "questDb": { - "id": "91", - "name": "QuestDB creds" - } - }, - "notes": "get data", - "id": "d40ddbdd-c531-469b-8470-06d93e4a72e2" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=TRUNCATE TABLE TestTable;" - }, - "name": "QuestDB2", - "type": "n8n-nodes-base.questDb", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "notesInFlow": true, - "credentials": { - "questDb": { - "id": "91", - "name": "QuestDB creds" - } - }, - "notes": "delete data", - "id": "7cd8a74b-0305-4700-b9db-ddcb844aa40b" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "QuestDB", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuestDB": { - "main": [ - [ - { - "node": "QuestDB1", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuestDB1": { - "main": [ - [ - { - "node": "QuestDB2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/125.json b/test-workflows/workflows/125.json deleted file mode 100644 index 2ae57db3a3..0000000000 --- a/test-workflows/workflows/125.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "createdAt": "2021-03-11T13:25:33.615Z", - "updatedAt": "2021-11-12T13:06:28.032Z", - "id": "125", - "name": "Postgres: insert update executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "17ac71e5-e7ee-46e2-bc71-65bcfb5d4a52" - }, - { - "parameters": { - "table": "testtable", - "columns": "id,name", - "additionalFields": {} - }, - "name": "Postgres", - "type": "n8n-nodes-base.postgres", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "postgres": { - "id": "92", - "name": "Postgres creds" - } - }, - "id": "7cab0391-d473-4d74-a771-6aad35b3240f" - }, - { - "parameters": { - "values": { - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*1000)}}" - } - ], - "string": [ - { - "name": "name", - "value": "=Name{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "b64bd579-b602-4ec5-8fcb-3e49514517a7" - }, - { - "parameters": { - "operation": "update", - "table": "testtable", - "columns": "id,name", - "additionalFields": {} - }, - "name": "Postgres1", - "type": "n8n-nodes-base.postgres", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "postgres": { - "id": "92", - "name": "Postgres creds" - } - }, - "id": "9013d993-4f74-42ca-bab2-7c1536205836" - }, - { - "parameters": { - "values": { - "number": [], - "string": [ - { - "name": "name", - "value": "=UpdatedName{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "id": "a6b9b7f5-453f-494d-b1db-7f4745f81233" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "SELECT * FROM public.testtable;", - "additionalFields": {} - }, - "name": "Postgres2", - "type": "n8n-nodes-base.postgres", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "postgres": { - "id": "92", - "name": "Postgres creds" - } - }, - "id": "63302a61-6401-43fd-a4c5-f20b9feb68b8" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=DELETE FROM public.testtable where id = $1;", - "additionalFields": { - "queryParams": "id" - } - }, - "name": "Postgres3", - "type": "n8n-nodes-base.postgres", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "postgres": { - "id": "92", - "name": "Postgres creds" - } - }, - "id": "c31b730f-f21b-4eb3-88e0-cc649984a327" - } - ], - "connections": { - "Postgres": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Postgres", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Postgres1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Postgres1": { - "main": [ - [ - { - "node": "Postgres2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Postgres2": { - "main": [ - [ - { - "node": "Postgres3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/126.json b/test-workflows/workflows/126.json deleted file mode 100644 index bbd2557766..0000000000 --- a/test-workflows/workflows/126.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "createdAt": "2021-03-11T14:51:32.026Z", - "updatedAt": "2021-03-18T10:28:03.209Z", - "id": "126", - "name": "Kafka", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "76f28c5d-1894-4d95-ab23-4e6e39bf69e9" - }, - { - "parameters": { - "topic": "=TopicTest{{Date.now()}}", - "headersUi": { - "headerValues": [] - }, - "options": { - "compression": true - } - }, - "name": "Kafka", - "type": "n8n-nodes-base.kafka", - "typeVersion": 1, - "position": [ - 710, - 300 - ], - "credentials": { - "kafka": { - "id": "93", - "name": "Kafka creds" - } - }, - "id": "9d37ab21-f676-4e88-8d71-3033d301ed62" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "input", - "value": "={{(new Date()).toISOString()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "id": "2d1bf06b-6d8e-4f82-b56f-7fde44b74007" - } - ], - "connections": { - "Set": { - "main": [ - [ - { - "node": "Kafka", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/127.json b/test-workflows/workflows/127.json deleted file mode 100644 index 9c684250a1..0000000000 --- a/test-workflows/workflows/127.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "createdAt": "2021-03-11T15:40:59.286Z", - "updatedAt": "2021-05-20T09:47:21.924Z", - "id": "127", - "name": "Rundeck:Job:execute getMetadata", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "f6b07b0d-8721-49de-8c02-39987174e2c4" - }, - { - "parameters": { - "jobid": "4dc20913-c26f-4060-afe9-6bb26dfd1a10", - "arguments": { - "arguments": [ - {} - ] - } - }, - "name": "Rundeck", - "type": "n8n-nodes-base.rundeck", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "rundeckApi": { - "id": "94", - "name": "Rundeck API creds" - } - }, - "id": "c1504f84-7203-426f-9eab-10ccde6bcd76" - }, - { - "parameters": { - "operation": "getMetadata", - "jobid": "4dc20913-c26f-4060-afe9-6bb26dfd1a10" - }, - "name": "Rundeck1", - "type": "n8n-nodes-base.rundeck", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "rundeckApi": { - "id": "94", - "name": "Rundeck API creds" - } - }, - "id": "425b0f49-4d3b-4b5e-a4b8-0dadda512663" - } - ], - "connections": { - "Rundeck": { - "main": [ - [ - { - "node": "Rundeck1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Rundeck", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/128.json b/test-workflows/workflows/128.json deleted file mode 100644 index 20c96b06cd..0000000000 --- a/test-workflows/workflows/128.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "createdAt": "2021-03-11T17:20:04.889Z", - "updatedAt": "2021-03-11T17:22:00.219Z", - "id": "128", - "name": "Yourls:Url:shorten stats expand", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "04b33b0d-9424-4705-955d-c4a8087c055c" - }, - { - "parameters": { - "url": "=https://n8n.io/{{Date.now()}}", - "additionalFields": { - "title": "n8n-ulr with random suffix" - } - }, - "name": "Yourls", - "type": "n8n-nodes-base.yourls", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "yourlsApi": { - "id": "95", - "name": "Yourls API creds" - } - }, - "id": "d5e11a39-5fc4-4e33-b83e-9706e46c8aba" - }, - { - "parameters": { - "operation": "stats", - "shortUrl": "={{$node[\"Yourls\"].json[\"shorturl\"]}}" - }, - "name": "Yourls1", - "type": "n8n-nodes-base.yourls", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "yourlsApi": { - "id": "95", - "name": "Yourls API creds" - } - }, - "id": "c3e4bb2a-977c-4f7d-88ce-4954ece456c5" - }, - { - "parameters": { - "operation": "expand", - "shortUrl": "={{$node[\"Yourls\"].json[\"shorturl\"]}}" - }, - "name": "Yourls2", - "type": "n8n-nodes-base.yourls", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "yourlsApi": { - "id": "95", - "name": "Yourls API creds" - } - }, - "id": "a1126d46-f429-47e8-9a52-08549a8ed2da" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Yourls", - "type": "main", - "index": 0 - } - ] - ] - }, - "Yourls": { - "main": [ - [ - { - "node": "Yourls1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Yourls1": { - "main": [ - [ - { - "node": "Yourls2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/129.json b/test-workflows/workflows/129.json deleted file mode 100644 index 0e5b693406..0000000000 --- a/test-workflows/workflows/129.json +++ /dev/null @@ -1,835 +0,0 @@ -{ - "createdAt": "2021-03-12T09:33:57.650Z", - "updatedAt": "2021-05-25T14:06:03.846Z", - "id": "129", - "name": "NextCloud:NextCloud:Folder:create move copy delete list:File:upload move copy download delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 1120, - 250 - ], - "id": "4cbe8941-9b8e-4432-8592-24de1753c8aa" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "path": "={{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 1470, - 250 - ], - "alwaysOutputData": true, - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "467f1321-8b33-4fc0-9e0c-e788d3659ea0" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "operation": "move", - "path": "=/{{$node[\"Set\"].json[\"name\"]}}", - "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud1", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 1770, - 250 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "2e715385-abea-4304-9e39-0e00443eddb0" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=Folder{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1270, - 250 - ], - "id": "79dabfd8-10a5-47c6-90aa-fa957f99db71" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "operation": "copy", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}", - "toPath": "=/Copied{{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud2", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 2070, - 250 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "7a111975-d958-40d8-9f7c-11b7d36650ba" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "operation": "delete", - "path": "=/Copied{{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud3", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 2220, - 250 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "b3356660-2aa2-4041-9756-629a45268e1d" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "operation": "list", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud4", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 4000, - 240 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "87118dec-fdd8-494b-926d-5870193e456f" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "folder", - "operation": "delete", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}" - }, - "name": "Nextcloud5", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 4000, - 400 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "83d025a2-bc96-4c24-93ab-bcf6acd1d63d" - }, - { - "parameters": { - "authentication": "oAuth2", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/{{$node[\"Set1\"].json[\"name\"]}}", - "binaryDataUpload": true - }, - "name": "Nextcloud6", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 2820, - 300 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "4142443d-f9d7-4efd-a43b-66d7dfc5df4e" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "name", - "value": "=File{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 2520, - 300 - ], - "id": "9ca67953-2298-4400-9439-93e09a64bffe" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 2670, - 300 - ], - "id": "008eb1cf-a715-4764-8dee-ac713bd23387" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "move", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/{{$node[\"Set1\"].json[\"name\"]}}", - "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" - }, - "name": "Nextcloud7", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 3120, - 300 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "8f2b1106-2e0c-4da7-915d-27356091ec81" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "copy", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}", - "toPath": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Copied{{$node[\"Set1\"].json[\"name\"]}}" - }, - "name": "Nextcloud8", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 3270, - 300 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "4f8a6919-c58f-4b54-ba83-9ad4f50bc348" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "download", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" - }, - "name": "Nextcloud9", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 3570, - 300 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "d6c5dfb2-4bd9-4b40-98b5-adee1e9371c8" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "delete", - "path": "=/Updated{{$node[\"Set\"].json[\"name\"]}}/Moved{{$node[\"Set1\"].json[\"name\"]}}" - }, - "name": "Nextcloud10", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 3720, - 300 - ], - "credentials": { - "nextCloudOAuth2Api": { - "id": "96", - "name": "NextCloud OAuth2 API creds" - } - }, - "id": "804800a7-6329-4a4d-99cf-da2dc38a9096" - }, - { - "parameters": { - "resource": "user", - "userId": "=Username{{Date.now()}}", - "email": "=email{{Date.now()}}@fakeemail.com", - "additionalFields": { - "displayName": "=Username{{Date.now()}}" - } - }, - "name": "Nextcloud11", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 1270, - 450 - ], - "credentials": { - "nextCloudApi": { - "id": "133", - "name": "NextCloud API creds" - } - }, - "id": "605413ab-2e1b-4ac2-801e-4a51d5d8287e" - }, - { - "parameters": { - "resource": "user", - "operation": "get", - "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}" - }, - "name": "Nextcloud12", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 1570, - 450 - ], - "credentials": { - "nextCloudApi": { - "id": "133", - "name": "NextCloud API creds" - } - }, - "id": "c0134c0b-74b2-4f67-9ecf-570f052f5aa6" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Nextcloud13", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 1720, - 450 - ], - "credentials": { - "nextCloudApi": { - "id": "133", - "name": "NextCloud API creds" - } - }, - "id": "da45a102-91e0-41d7-858e-1680e7af104e" - }, - { - "parameters": { - "resource": "user", - "operation": "update", - "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}", - "updateFields": { - "field": { - "key": "website", - "value": "http://community.n8n.io" - } - } - }, - "name": "Nextcloud14", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 2020, - 450 - ], - "credentials": { - "nextCloudApi": { - "id": "133", - "name": "NextCloud API creds" - } - }, - "id": "35b61a88-a9d7-4902-9f5e-b9db05ee6f1b" - }, - { - "parameters": { - "resource": "user", - "operation": "delete", - "userId": "={{$node[\"Nextcloud11\"].json[\"id\"]}}" - }, - "name": "Nextcloud15", - "type": "n8n-nodes-base.nextCloud", - "typeVersion": 1, - "position": [ - 2170, - 450 - ], - "credentials": { - "nextCloudApi": { - "id": "133", - "name": "NextCloud API creds" - } - }, - "id": "c983c376-d307-406d-8134-3469a35b7991" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 1420, - 450 - ], - "typeVersion": 1, - "id": "7024a28f-fb45-45ac-8fd4-af00b229fc25" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 1870, - 450 - ], - "typeVersion": 1, - "id": "42756f4c-e881-4738-b350-58c1630e5975" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 3860, - 240 - ], - "typeVersion": 1, - "id": "8b8ad7de-70c6-4098-bdf0-487d66827f86" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 3420, - 300 - ], - "typeVersion": 1, - "id": "5398a6ef-f8ce-4e74-9f2e-6c445875f109" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 2960, - 300 - ], - "typeVersion": 1, - "id": "f31b62e7-9c78-427a-b3b1-b3373cb86bb8" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 2370, - 300 - ], - "typeVersion": 1, - "id": "add90777-a9c7-4c56-83b7-44b10f71bb3f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 1920, - 250 - ], - "typeVersion": 1, - "id": "3e008e1f-e966-4389-8318-91a81fb9d8a7" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn [{json:{}}];" - }, - "name": "Sleep 8 Seconds7", - "type": "n8n-nodes-base.function", - "position": [ - 1620, - 250 - ], - "typeVersion": 1, - "id": "f7461433-5a21-459c-bfbb-e57bfaae6eed" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Nextcloud11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud": { - "main": [ - [ - { - "node": "Sleep 8 Seconds7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Nextcloud", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud2": { - "main": [ - [ - { - "node": "Nextcloud3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud3": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud4": { - "main": [ - [] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud6": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Nextcloud6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud7": { - "main": [ - [ - { - "node": "Nextcloud8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud8": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud9": { - "main": [ - [ - { - "node": "Nextcloud10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud11": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud12": { - "main": [ - [ - { - "node": "Nextcloud13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud13": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Nextcloud14": { - "main": [ - [ - { - "node": "Nextcloud15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "Nextcloud12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "Nextcloud14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "Nextcloud4", - "type": "main", - "index": 0 - }, - { - "node": "Nextcloud5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "Nextcloud9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "Nextcloud7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "Nextcloud2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds7": { - "main": [ - [ - { - "node": "Nextcloud1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/130.json b/test-workflows/workflows/130.json deleted file mode 100644 index b8a75314f2..0000000000 --- a/test-workflows/workflows/130.json +++ /dev/null @@ -1,883 +0,0 @@ -{ - "createdAt": "2021-03-12T12:14:08.727Z", - "updatedAt": "2021-03-12T12:35:37.990Z", - "id": "130", - "name": "Wekan:Board:create get getAll delete:List:create get getAll delete:Card:create update get getAll delete:CardComment:create get getAll delete:CheckList:create get getAll delete:CheckListItem:get update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d1be5d3e-3071-482a-a8d0-6cd3e1784efd" - }, - { - "parameters": { - "resource": "board", - "title": "=Board{{Date.now()}}", - "owner": "E27bvzwJ5A26xfAPG", - "additionalFields": {} - }, - "name": "Wekan", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 490, - 280 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "1013b4a2-232f-417c-ad61-c424a10eee2a" - }, - { - "parameters": { - "resource": "board", - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}" - }, - "name": "Wekan1", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 650, - 280 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "0bd0df50-577c-4f42-b653-a933059d5d94" - }, - { - "parameters": { - "resource": "board", - "operation": "getAll", - "IdUser": "E27bvzwJ5A26xfAPG", - "limit": 1 - }, - "name": "Wekan2", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 800, - 280 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "189c8afb-3890-4755-aec7-17577b14f6e7" - }, - { - "parameters": { - "resource": "board", - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}" - }, - "name": "Wekan3", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 3500, - 260 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "302a053a-5456-46c0-b6bf-47e3fad8d061" - }, - { - "parameters": { - "resource": "list", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "title": "=List{{Date.now()}}" - }, - "name": "Wekan4", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 950, - 400 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "901bd245-0434-43a4-9c6e-2e0d0012f25b" - }, - { - "parameters": { - "resource": "list", - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}" - }, - "name": "Wekan5", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1100, - 400 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "1ad2c40f-606f-468e-b304-f67ba7f09857" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "Wekan6", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "7e0bf795-d18a-44fc-b1d0-07dc726d1b9a" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}" - }, - "name": "Wekan7", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 3350, - 400 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "4dff32d6-2cfd-4cf7-a5f4-cb670c8f5283" - }, - { - "parameters": { - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "title": "=Card{{Date.now()}}", - "swimlaneId": "CJ44cd7gPRf8qT3Xb", - "authorId": "E27bvzwJ5A26xfAPG", - "additionalFields": {} - }, - "name": "Wekan8", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1400, - 500 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "03ad5f1f-23df-431c-a98f-3fd966dcd4fa" - }, - { - "parameters": { - "operation": "update", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "updateFields": { - "title": "=UpdatedCard{{Date.now()}}" - } - }, - "name": "Wekan9", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1550, - 500 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "c0297bac-351b-4af3-ad47-1e4a3f504828" - }, - { - "parameters": { - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}" - }, - "name": "Wekan10", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1700, - 500 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "fd68635a-fbf9-4d53-a835-1dc9be3b6fa6" - }, - { - "parameters": { - "operation": "getAll", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "fromObject": "list", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "Wekan11", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 1850, - 500 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "da544079-7689-423e-8990-3b886d44d040" - }, - { - "parameters": { - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}" - }, - "name": "Wekan12", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 3220, - 500 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "b33dde7e-b503-480b-9dc5-3cf6b68d3b02" - }, - { - "parameters": { - "resource": "cardComment", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "authorId": "E27bvzwJ5A26xfAPG", - "comment": "=CardComment{{Date.now()}}" - }, - "name": "Wekan13", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2000, - 650 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "56c3500d-d9d3-49db-a6cd-fe4558c901df" - }, - { - "parameters": { - "resource": "cardComment", - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "commentId": "={{$node[\"Wekan13\"].json[\"_id\"]}}" - }, - "name": "Wekan14", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2150, - 650 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "995809d9-3fb6-4968-9590-c4b929e83352" - }, - { - "parameters": { - "resource": "cardComment", - "operation": "getAll", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "Wekan15", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2300, - 650 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "1d3d120f-17eb-4f17-9513-cf99d2bd5068" - }, - { - "parameters": { - "resource": "cardComment", - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "commentId": "={{$node[\"Wekan13\"].json[\"_id\"]}}" - }, - "name": "Wekan16", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2450, - 650 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "d0960908-6aaf-4284-a2a3-0c2bb305afd7" - }, - { - "parameters": { - "resource": "checklist", - "operation": "create", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "title": "=Checklist{{Date.now()}}", - "items": [ - "=ChecklistItem{{Date.now()}}" - ] - }, - "name": "Wekan17", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2000, - 350 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "93b5ad63-5527-49b2-8803-d91136052169" - }, - { - "parameters": { - "resource": "checklist", - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}" - }, - "name": "Wekan18", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2150, - 350 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "cf310149-4468-4109-9dad-620030f49c4f" - }, - { - "parameters": { - "resource": "checklist", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "Wekan19", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2300, - 350 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "34c95cdf-0dd2-43d2-8635-e5cc36fcb6d8" - }, - { - "parameters": { - "resource": "checklist", - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}" - }, - "name": "Wekan20", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2900, - 350 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "e8a93285-5090-4dff-81d6-c6dea77512af" - }, - { - "parameters": { - "resource": "checklistItem", - "operation": "get", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", - "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}" - }, - "name": "Wekan21", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2450, - 450 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "8059fe8f-a56d-4b12-9129-6bca650a56f5" - }, - { - "parameters": { - "resource": "checklistItem", - "operation": "update", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", - "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}", - "updateFields": { - "isFinished": true - } - }, - "name": "Wekan22", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2600, - 450 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "02ca495d-50c2-4b96-b66a-287f630c95c5" - }, - { - "parameters": { - "resource": "checklistItem", - "operation": "delete", - "boardId": "={{$node[\"Wekan\"].json[\"_id\"]}}", - "listId": "={{$node[\"Wekan4\"].json[\"_id\"]}}", - "cardId": "={{$node[\"Wekan8\"].json[\"_id\"]}}", - "checklistId": "={{$node[\"Wekan17\"].json[\"_id\"]}}", - "checklistItemId": "={{$node[\"Wekan18\"].json[\"items\"][0][\"_id\"]}}" - }, - "name": "Wekan23", - "type": "n8n-nodes-base.wekan", - "typeVersion": 1, - "position": [ - 2750, - 450 - ], - "credentials": { - "wekanApi": { - "id": "97", - "name": "Wekan API creds" - } - }, - "id": "0e35867f-089c-4a95-985a-1aeafe45cd6e" - }, - { - "parameters": { - "mode": "wait" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 3050, - 500 - ], - "id": "a72e478c-ae36-4775-9568-494f34ea4edc" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Wekan", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan": { - "main": [ - [ - { - "node": "Wekan1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan1": { - "main": [ - [ - { - "node": "Wekan2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan2": { - "main": [ - [ - { - "node": "Wekan4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan4": { - "main": [ - [ - { - "node": "Wekan5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan5": { - "main": [ - [ - { - "node": "Wekan6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan6": { - "main": [ - [ - { - "node": "Wekan8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan7": { - "main": [ - [ - { - "node": "Wekan3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan8": { - "main": [ - [ - { - "node": "Wekan9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan9": { - "main": [ - [ - { - "node": "Wekan10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan10": { - "main": [ - [ - { - "node": "Wekan11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan12": { - "main": [ - [ - { - "node": "Wekan7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan11": { - "main": [ - [ - { - "node": "Wekan13", - "type": "main", - "index": 0 - }, - { - "node": "Wekan17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan13": { - "main": [ - [ - { - "node": "Wekan14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan14": { - "main": [ - [ - { - "node": "Wekan15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan16": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Wekan17": { - "main": [ - [ - { - "node": "Wekan18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan18": { - "main": [ - [ - { - "node": "Wekan19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan20": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan15": { - "main": [ - [ - { - "node": "Wekan16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan19": { - "main": [ - [ - { - "node": "Wekan21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan21": { - "main": [ - [ - { - "node": "Wekan22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan22": { - "main": [ - [ - { - "node": "Wekan23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wekan23": { - "main": [ - [ - { - "node": "Wekan20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Wekan12", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/131.json b/test-workflows/workflows/131.json deleted file mode 100644 index fa9498f18f..0000000000 --- a/test-workflows/workflows/131.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "createdAt": "2021-03-12T15:30:32.231Z", - "updatedAt": "2021-03-12T15:30:32.231Z", - "id": "131", - "name": "Line:Notification:send", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b97b22de-c820-46c3-bd9a-9ccd77d9fb2f" - }, - { - "parameters": { - "message": "=Notification{{Date.now()}}", - "additionalFields": {} - }, - "name": "Line", - "type": "n8n-nodes-base.line", - "typeVersion": 1, - "position": [ - 480, - 300 - ], - "credentials": { - "lineNotifyOAuth2Api": { - "id": "99", - "name": "Line Notify OAuth2 API" - } - }, - "id": "bda3f612-99db-4f50-86ec-71f3f7e26917" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Line", - "type": "main", - "index": 0 - } - ] - ] - }, - "Line": { - "main": [ - [] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/132.json b/test-workflows/workflows/132.json deleted file mode 100644 index 4d5319b069..0000000000 --- a/test-workflows/workflows/132.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "createdAt": "2021-03-12T15:55:16.919Z", - "updatedAt": "2021-03-12T15:55:16.919Z", - "id": "132", - "name": "Mandrill:Message:sendTemplate sendHTML", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d6242130-9d76-4db0-8fc8-5b2cbd24b5fe" - }, - { - "parameters": { - "template": "testtemplate", - "fromEmail": "=random{{Date.now()}}@email.test", - "toEmail": "=nodeqa{{Date.now()}}@email.test", - "options": {} - }, - "name": "Mandrill", - "type": "n8n-nodes-base.mandrill", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "mandrillApi": { - "id": "100", - "name": "Mandrill API creds" - } - }, - "id": "e31f6f3e-eee2-4047-90dc-acc08c80438d" - }, - { - "parameters": { - "operation": "sendHtml", - "fromEmail": "=random{{Date.now()}}@email.test", - "toEmail": "=nodeqa{{Date.now()}}@email.test", - "options": { - "html": "=

This is a the html email from n8n workflow

" - } - }, - "name": "Mandrill1", - "type": "n8n-nodes-base.mandrill", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "mandrillApi": { - "id": "100", - "name": "Mandrill API creds" - } - }, - "id": "da056d97-7a2b-457d-8236-5ce62f35ab17" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Mandrill", - "type": "main", - "index": 0 - }, - { - "node": "Mandrill1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/133.json b/test-workflows/workflows/133.json deleted file mode 100644 index 45bf8e484b..0000000000 --- a/test-workflows/workflows/133.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "createdAt": "2021-03-15T08:20:13.922Z", - "updatedAt": "2021-03-15T08:20:13.922Z", - "id": "133", - "name": "Twilio:SMS:send", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b7004365-30c6-4792-80ca-7c9ee2eb87a4" - }, - { - "parameters": { - "from": "+15005550006", - "to": "+15005550006", - "message": "=Message{{Date.now()}}" - }, - "name": "Twilio", - "type": "n8n-nodes-base.twilio", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "twilioApi": { - "id": "101", - "name": "Twilio API creds" - } - }, - "id": "6f7e0239-82e7-4b9a-85f2-39ed23ff28b8" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Twilio", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/134.json b/test-workflows/workflows/134.json deleted file mode 100644 index ebaa556046..0000000000 --- a/test-workflows/workflows/134.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "createdAt": "2021-03-15T08:59:35.889Z", - "updatedAt": "2021-04-01T15:38:45.311Z", - "id": "134", - "name": "TravisCI:Build:trigger getAll get restart cancel", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "efbe46b1-9480-434d-b571-430942f31364" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": { - "order": "asc", - "sortBy": "id" - } - }, - "name": "TravisCI", - "type": "n8n-nodes-base.travisCi", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "travisCiApi": { - "id": "102", - "name": "Travis API" - } - }, - "id": "d772b5ee-80af-4627-9278-034a1237da92" - }, - { - "parameters": { - "operation": "get", - "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "TravisCI1", - "type": "n8n-nodes-base.travisCi", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "travisCiApi": { - "id": "102", - "name": "Travis API" - } - }, - "id": "df4d7fe1-85f5-4908-a609-faa41a13a9d1" - }, - { - "parameters": { - "operation": "trigger", - "slug": "nodemationqa/nodeQA", - "branch": "master", - "additionalFields": {} - }, - "name": "TravisCI2", - "type": "n8n-nodes-base.travisCi", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "travisCiApi": { - "id": "102", - "name": "Travis API" - } - }, - "id": "04e656d2-ac8b-4b4e-995b-a167be00ddd2" - }, - { - "parameters": { - "operation": "restart", - "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}" - }, - "name": "TravisCI3", - "type": "n8n-nodes-base.travisCi", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "travisCiApi": { - "id": "102", - "name": "Travis API" - } - }, - "id": "7fbaf00c-202f-4e95-9645-c8690ab5c829" - }, - { - "parameters": { - "buildId": "={{$node[\"TravisCI\"].json[\"id\"]}}" - }, - "name": "TravisCI4", - "type": "n8n-nodes-base.travisCi", - "typeVersion": 1, - "position": [ - 1500, - 300 - ], - "credentials": { - "travisCiApi": { - "id": "102", - "name": "Travis API" - } - }, - "id": "0e5565a4-d5cd-4471-aa01-740cf2f45e43" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 2 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 600, - 300 - ], - "typeVersion": 1, - "id": "b84a023d-475e-42ac-888a-e0c43d13e10e" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 2 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 1050, - 300 - ], - "typeVersion": 1, - "id": "2303fc2b-2701-44b7-98ed-139094b9c457" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(2000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 2 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1350, - 300 - ], - "typeVersion": 1, - "id": "3bdb67df-5473-42f6-aacb-5125ac0483b7" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "TravisCI2", - "type": "main", - "index": 0 - } - ] - ] - }, - "TravisCI": { - "main": [ - [ - { - "node": "TravisCI1", - "type": "main", - "index": 0 - } - ] - ] - }, - "TravisCI2": { - "main": [ - [ - { - "node": "Sleep 2 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 2 Seconds": { - "main": [ - [ - { - "node": "TravisCI", - "type": "main", - "index": 0 - } - ] - ] - }, - "TravisCI1": { - "main": [ - [ - { - "node": "Sleep 2 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 2 Seconds1": { - "main": [ - [ - { - "node": "TravisCI3", - "type": "main", - "index": 0 - } - ] - ] - }, - "TravisCI3": { - "main": [ - [ - { - "node": "Sleep 2 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 2 Seconds2": { - "main": [ - [ - { - "node": "TravisCI4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/135.json b/test-workflows/workflows/135.json deleted file mode 100644 index 96fb1814cc..0000000000 --- a/test-workflows/workflows/135.json +++ /dev/null @@ -1,225 +0,0 @@ -{ - "createdAt": "2021-03-15T11:07:38.626Z", - "updatedAt": "2021-07-15T15:43:31.557Z", - "id": "135", - "name": "Cortex:Analyzer:execute:Job:report get:Responder:execute", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "746052e5-aa2d-44d8-9868-51eac17d07b2" - }, - { - "parameters": { - "analyzer": "f4abc1b633b80f45af165970793fd4fd::Abuse_Finder_3_0", - "observableType": "ip", - "observableValue": "129.178.188.205", - "tlp": 1, - "additionalFields": {} - }, - "name": "Cortex", - "type": "n8n-nodes-base.cortex", - "typeVersion": 1, - "position": [ - 490, - 300 - ], - "credentials": { - "cortexApi": { - "id": "103", - "name": "Cortex API creds" - } - }, - "id": "a020251f-8fc4-4257-8038-0092bb07209b" - }, - { - "parameters": { - "resource": "job", - "operation": "report", - "jobId": "={{$node[\"Cortex\"].json[\"_id\"]}}" - }, - "name": "Cortex1", - "type": "n8n-nodes-base.cortex", - "typeVersion": 1, - "position": [ - 640, - 300 - ], - "credentials": { - "cortexApi": { - "id": "103", - "name": "Cortex API creds" - } - }, - "id": "c32de960-141e-4fdb-8b0f-dfd08fc3b28a" - }, - { - "parameters": { - "resource": "job", - "jobId": "={{$node[\"Cortex\"].json[\"_id\"]}}" - }, - "name": "Cortex2", - "type": "n8n-nodes-base.cortex", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "cortexApi": { - "id": "103", - "name": "Cortex API creds" - } - }, - "id": "c2072875-c609-4eb8-88e7-2bba3a8d0a49" - }, - { - "parameters": { - "resource": "responder", - "responder": "fbe415a38eb649eb7df174aa11a32cfe::KnowBe4_1_0", - "entityType": "case_artifact", - "parameters": { - "values": { - "dataType": "ip", - "data": "129.178.188.205", - "message": "test", - "startDate": "2021-03-23T23:00:00.000Z", - "ioc": true, - "status": "Ok" - } - } - }, - "name": "Cortex3", - "type": "n8n-nodes-base.cortex", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "cortexApi": { - "id": "103", - "name": "Cortex API creds" - } - }, - "id": "47ccf815-64bd-469f-b836-6d3749cfc7cb" - }, - { - "parameters": { - "resource": "job", - "operation": "report", - "jobId": "={{$node[\"Cortex3\"].json[\"_id\"]}}" - }, - "name": "Cortex4", - "type": "n8n-nodes-base.cortex", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "cortexApi": { - "id": "103", - "name": "Cortex API creds" - } - }, - "disabled": true, - "id": "efec07a1-aa91-49e0-9c2c-3f2c222fa90f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\nawait sleep(10000);\n// Output data\nreturn items;" - }, - "name": "Sleep 4 seconds", - "type": "n8n-nodes-base.function", - "position": [ - 1100, - 300 - ], - "typeVersion": 1, - "id": "68f7efca-c385-4642-814f-3123f7e892ee" - } - ], - "connections": { - "Cortex": { - "main": [ - [ - { - "node": "Cortex1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Cortex1": { - "main": [ - [ - { - "node": "Cortex2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Cortex2": { - "main": [ - [ - { - "node": "Cortex3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Cortex", - "type": "main", - "index": 0 - } - ] - ] - }, - "Cortex3": { - "main": [ - [ - { - "node": "Sleep 4 seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 4 seconds": { - "main": [ - [ - { - "node": "Cortex4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/136.json b/test-workflows/workflows/136.json deleted file mode 100644 index 5adee69b71..0000000000 --- a/test-workflows/workflows/136.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "createdAt": "2021-03-15T11:39:24.637Z", - "updatedAt": "2021-03-15T11:39:24.637Z", - "id": "136", - "name": "Pushbullet:Push:create update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c3bbbd0f-e93f-46ff-b36c-0ed72f1d207a" - }, - { - "parameters": { - "title": "=Push{{Date.now()}}", - "body": "=Body{{Date.now()}}" - }, - "name": "Pushbullet", - "type": "n8n-nodes-base.pushbullet", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "pushbulletOAuth2Api": { - "id": "104", - "name": "Pushbullet OAuth2 API creds" - } - }, - "id": "d2143ac2-b023-47b1-93ec-281bc86b446d" - }, - { - "parameters": { - "operation": "update", - "pushId": "={{$node[\"Pushbullet\"].json[\"iden\"]}}", - "dismissed": true - }, - "name": "Pushbullet1", - "type": "n8n-nodes-base.pushbullet", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "pushbulletOAuth2Api": { - "id": "104", - "name": "Pushbullet OAuth2 API creds" - } - }, - "id": "bc47ad37-e9bf-4fe0-a595-7a94bc02c193" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Pushbullet2", - "type": "n8n-nodes-base.pushbullet", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "pushbulletOAuth2Api": { - "id": "104", - "name": "Pushbullet OAuth2 API creds" - } - }, - "id": "2293cc5c-1d5e-4d79-a7f4-8d48cf86beaf" - }, - { - "parameters": { - "operation": "delete", - "pushId": "={{$node[\"Pushbullet\"].json[\"iden\"]}}" - }, - "name": "Pushbullet3", - "type": "n8n-nodes-base.pushbullet", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "pushbulletOAuth2Api": { - "id": "104", - "name": "Pushbullet OAuth2 API creds" - } - }, - "id": "72869e7c-e410-4115-bca9-dec16c90cb3f" - } - ], - "connections": { - "Pushbullet": { - "main": [ - [ - { - "node": "Pushbullet1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pushbullet1": { - "main": [ - [ - { - "node": "Pushbullet2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pushbullet2": { - "main": [ - [ - { - "node": "Pushbullet3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Pushbullet", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/137.json b/test-workflows/workflows/137.json deleted file mode 100644 index 91d7a6c069..0000000000 --- a/test-workflows/workflows/137.json +++ /dev/null @@ -1,1230 +0,0 @@ -{ - "createdAt": "2021-03-16T15:47:37.279Z", - "updatedAt": "2021-05-21T09:19:02.974Z", - "id": "137", - "name": "TheHive[v3]:Alert:create update get getAll promote merge:Case:create update get getAll:Observable:create update get search getAll:Task:create update get search getAll:Log:create get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 400 - ], - "id": "ade44fe5-e6a3-407d-9a19-d236c09d053e" - }, - { - "parameters": { - "title": "=Title{{Date.now()}}", - "description": "desc", - "date": "={{(new Date()).toISOString()}}", - "tags": "test", - "type": "test", - "source": "n8n", - "sourceRef": "={{Date.now().toString()}}", - "additionalFields": {} - }, - "name": "TheHive", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "7a175f98-ba4d-4e86-8290-1961286069a3" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "updateFields": { - "tlp": 1 - } - }, - "name": "TheHive1", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "07153eab-082e-4c15-a3a8-0352ce78d39a" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}" - }, - "name": "TheHive2", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "55e955b5-08e5-45ac-a3e9-42a2791e0e86" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive3", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1180, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "84a55d17-c067-4d5c-b199-378ef1a5e37c" - }, - { - "parameters": { - "operation": "promote", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "TheHive4", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1330, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "0ca31228-af2d-451f-9c65-a7c8e910639d" - }, - { - "parameters": { - "operation": "merge", - "id": "={{$node[\"TheHive30\"].json[\"id\"]}}", - "caseId": "={{$node[\"TheHive29\"].json[\"id\"]}}" - }, - "name": "TheHive5", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 940, - 150 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "d11d3928-e84f-4a7b-bee0-01a6f7903741" - }, - { - "parameters": { - "resource": "case", - "operation": "create", - "title": "=Title{{Date.now()}}", - "description": "desc", - "startDate": "={{(new Date()).toISOString()}}", - "owner": "nodeqa", - "tags": "test", - "options": {} - }, - "name": "TheHive6", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 450, - 600 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "cf77cd22-62ec-461f-8685-35120833d1d8" - }, - { - "parameters": { - "resource": "case", - "operation": "update", - "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "updateFields": { - "tlp": 3 - } - }, - "name": "TheHive7", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 600, - 600 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "1fceb11e-94ea-42b2-95d0-30e9357a8aa0" - }, - { - "parameters": { - "resource": "case", - "operation": "get", - "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}" - }, - "name": "TheHive8", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 910, - 600 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "52c085ae-49c1-49b9-9be5-1350d065868c" - }, - { - "parameters": { - "resource": "case", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive9", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1060, - 600 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "ecd0b218-41b2-4e43-9553-b17da8942a16" - }, - { - "parameters": { - "resource": "case", - "operation": "executeResponder", - "id": "={{$node[\"TheHive6\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive10", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1210, - 600 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "4520dc3b-153c-4239-8e6b-814dc39a324a" - }, - { - "parameters": { - "resource": "task", - "operation": "create", - "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "title": "=Task{{Date.now()}}", - "options": {} - }, - "name": "TheHive11", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 600, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "c0efb989-b9b1-4cf6-84f5-d30e565eb05b" - }, - { - "parameters": { - "resource": "task", - "operation": "update", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "updateFields": { - "status": "InProgress" - } - }, - "name": "TheHive12", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 750, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "79a320c7-796b-4380-bbfd-af5ef73c308c" - }, - { - "parameters": { - "resource": "task", - "operation": "get", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}" - }, - "name": "TheHive13", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1050, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "7c5e1c7c-a9a2-4f67-b1d0-62ab12ea4ce9" - }, - { - "parameters": { - "resource": "task", - "operation": "search", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive14", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1370, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "a5b3618e-5c12-480c-975d-cdf58f33e121" - }, - { - "parameters": { - "resource": "log", - "operation": "create", - "taskId": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "message": "=Message{{Date.now()}}", - "startDate": "={{(new Date()).toISOString()}}", - "status": "Ok", - "options": {} - }, - "name": "TheHive16", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 750, - 930 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "efeb839b-df7f-465d-9776-ad3699b8cb56" - }, - { - "parameters": { - "resource": "log", - "operation": "get", - "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" - }, - "name": "TheHive17", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1050, - 930 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "df7967a1-012c-4e20-b5e4-63fa37265bf5" - }, - { - "parameters": { - "resource": "log", - "taskId": "={{$node[\"TheHive16\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "TheHive18", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1200, - 930 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "549b23ec-1ccb-4585-b270-b2341b8b409f" - }, - { - "parameters": { - "resource": "observable", - "operation": "create", - "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "dataType": "ip", - "data": "36.123.133.214", - "message": "test", - "startDate": "={{(new Date()).toISOString()}}", - "ioc": true, - "status": "Ok", - "options": {} - }, - "name": "TheHive19", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "86f1d7a0-f22e-46f7-b315-8aecbe4bd5dd" - }, - { - "parameters": { - "resource": "observable", - "operation": "update", - "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}", - "updateFields": { - "ioc": false - } - }, - "name": "TheHive20", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 910, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "2347e027-4531-48ae-94cb-bd8dd109da0a" - }, - { - "parameters": { - "resource": "observable", - "operation": "get", - "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}" - }, - "name": "TheHive21", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1060, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "e12c0ed2-ea18-4a0e-a3b1-00d2e417b025" - }, - { - "parameters": { - "resource": "observable", - "operation": "search", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive22", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1360, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "bbed23cc-38f3-4912-a6b3-bdb3e0da4932" - }, - { - "parameters": { - "resource": "observable", - "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", - "limit": 1, - "options": {} - }, - "name": "TheHive23", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1540, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "b8f259fc-1031-49ea-86b6-cd89fe12f939" - }, - { - "parameters": { - "operation": "executeResponder", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive15", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1510, - 300 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "50e0654a-f844-43d6-9b5b-eda48c2707f4" - }, - { - "parameters": { - "resource": "observable", - "operation": "executeAnalyzer", - "id": "={{$node[\"TheHive21\"].json[\"id\"]}}", - "dataType": "={{$node[\"TheHive21\"].json[\"dataType\"]}}", - "analyzers": [ - "6fdd3c9b5432f1e2094cd3b8f2347d09::cortex" - ] - }, - "name": "TheHive24", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1720, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "fe15f804-236e-4dd1-9e3c-13758a9ce53e" - }, - { - "parameters": { - "resource": "observable", - "operation": "executeResponder", - "id": "={{$node[\"TheHive21\"].json[\"id\"]}}", - "responder": "fbe415a38eb649eb7df174aa11a32cfe" - }, - "name": "TheHive25", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1880, - 450 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "9a964882-99d9-4c1e-a23b-1c45d788a9d7" - }, - { - "parameters": { - "resource": "task", - "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", - "limit": 1, - "options": {} - }, - "name": "TheHive26", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1520, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "67594eb3-fb0c-41c0-a972-b8f79585d9dc" - }, - { - "parameters": { - "resource": "task", - "operation": "executeResponder", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive27", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1690, - 770 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "80a817e5-4922-4dea-baa6-ebb412b06178" - }, - { - "parameters": { - "resource": "log", - "operation": "executeResponder", - "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" - }, - "name": "TheHive28", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1350, - 930 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "disabled": true, - "id": "90f4e4a2-0aee-4b1e-ab19-6d3136c7db7b" - }, - { - "parameters": { - "resource": "case", - "operation": "create", - "title": "=MergingCase{{Date.now()}}", - "description": "desc", - "startDate": "={{(new Date()).toISOString()}}", - "owner": "nodeqa", - "tags": "test", - "options": {} - }, - "name": "TheHive29", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "3c2306f0-34e0-40c8-951c-64dd9482cc22" - }, - { - "parameters": { - "title": "=MergingAlert{{Date.now()}}", - "description": "desc", - "date": "={{(new Date()).toISOString()}}", - "tags": "test", - "type": "test", - "source": "n8n", - "sourceRef": "={{Date.now().toString()}}", - "additionalFields": {} - }, - "name": "TheHive30", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 790, - 150 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "66b2590c-ee6e-451f-b0b6-22200d73209f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 610, - 150 - ], - "typeVersion": 1, - "id": "1a5a6ace-fef4-4fbc-b374-492dfa5ee9c9" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 610, - 300 - ], - "typeVersion": 1, - "id": "1d31e404-48c8-45b1-963a-29689132bf18" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1060, - 300 - ], - "typeVersion": 1, - "id": "fd1d5353-73bb-4563-8f57-078ace5b7424" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 760, - 450 - ], - "typeVersion": 1, - "id": "979b0aab-acd8-4aeb-a2d5-84516d01e436" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 1210, - 450 - ], - "typeVersion": 1, - "id": "a2448c15-76d1-4611-96c1-382b8537d8e2" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 750, - 600 - ], - "typeVersion": 1, - "id": "07ec5305-28c5-4f70-a4dd-81d9222131b5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second6", - "type": "n8n-nodes-base.function", - "position": [ - 900, - 770 - ], - "typeVersion": 1, - "id": "6a220308-b57c-4a29-a103-f828564c75f5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second7", - "type": "n8n-nodes-base.function", - "position": [ - 900, - 930 - ], - "typeVersion": 1, - "id": "3d8ce87e-fa7f-4c91-9a91-84572a4cb5b9" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second8", - "type": "n8n-nodes-base.function", - "position": [ - 1200, - 770 - ], - "typeVersion": 1, - "id": "8437d645-7789-4f5a-a2c0-217538297ead" - } - ], - "connections": { - "TheHive": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive1": { - "main": [ - [ - { - "node": "TheHive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive2": { - "main": [ - [ - { - "node": "TheHive15", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive3": { - "main": [ - [ - { - "node": "TheHive4", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive6": { - "main": [ - [ - { - "node": "TheHive7", - "type": "main", - "index": 0 - }, - { - "node": "TheHive11", - "type": "main", - "index": 0 - }, - { - "node": "TheHive19", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive7": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive8": { - "main": [ - [ - { - "node": "TheHive9", - "type": "main", - "index": 0 - }, - { - "node": "TheHive10", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive11": { - "main": [ - [ - { - "node": "TheHive12", - "type": "main", - "index": 0 - }, - { - "node": "TheHive16", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive12": { - "main": [ - [ - { - "node": "Sleep 0.5 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive13": { - "main": [ - [ - { - "node": "TheHive27", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second8", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive16": { - "main": [ - [ - { - "node": "Sleep 0.5 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive17": { - "main": [ - [ - { - "node": "TheHive18", - "type": "main", - "index": 0 - }, - { - "node": "TheHive28", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive19": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive20": { - "main": [ - [ - { - "node": "TheHive21", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive21": { - "main": [ - [ - { - "node": "TheHive24", - "type": "main", - "index": 0 - }, - { - "node": "TheHive25", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive22": { - "main": [ - [ - { - "node": "TheHive23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "TheHive6", - "type": "main", - "index": 0 - }, - { - "node": "TheHive", - "type": "main", - "index": 0 - }, - { - "node": "TheHive29", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive14": { - "main": [ - [ - { - "node": "TheHive26", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive30": { - "main": [ - [ - { - "node": "TheHive5", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive29": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "TheHive30", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "TheHive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "TheHive3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "TheHive20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "TheHive22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "TheHive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second6": { - "main": [ - [ - { - "node": "TheHive13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second7": { - "main": [ - [ - { - "node": "TheHive17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second8": { - "main": [ - [ - { - "node": "TheHive14", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/138.json b/test-workflows/workflows/138.json deleted file mode 100644 index 22cb7a7e4e..0000000000 --- a/test-workflows/workflows/138.json +++ /dev/null @@ -1,1375 +0,0 @@ -{ - "createdAt": "2021-03-16T16:58:12.352Z", - "updatedAt": "2021-05-21T09:27:19.124Z", - "id": "138", - "name": "TheHive[v4]:Alert:create update get getAll promote merge:Case:create update get getAll:Observable:create update get search getAll:Task:create update get search getAll:Log:create get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9f90439e-037b-46fd-b837-9b5c85b79e77" - }, - { - "parameters": { - "title": "=Title{{Date.now()}}", - "description": "desc", - "date": "={{(new Date()).toISOString()}}", - "tags": "test", - "type": "test", - "source": "n8n", - "sourceRef": "={{Date.now().toString()}}", - "additionalFields": {} - }, - "name": "TheHive", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 470, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "aa971fff-c258-4a9b-b8ee-d02ff2f3742f" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "updateFields": { - "tlp": 1 - } - }, - "name": "TheHive1", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 620, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "f84362fd-61df-4f44-933e-6a8f0c1190ca" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}" - }, - "name": "TheHive2", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 970, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "60e238b5-7826-4338-8367-9bf8a5ac1867" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive3", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1120, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "4d8575f0-4d93-41bc-acb7-518e89948e3e" - }, - { - "parameters": { - "operation": "promote", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "TheHive4", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1430, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "04f0c48e-95e9-4507-b1f4-3a839118ba61" - }, - { - "parameters": { - "resource": "case", - "operation": "create", - "title": "=Title{{Date.now()}}", - "description": "desc", - "startDate": "={{(new Date()).toISOString()}}", - "owner": "nodeqa", - "tags": "test", - "options": {} - }, - "name": "TheHive6", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 470, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "0b101032-87b6-4b59-9d31-b2b6622518c6" - }, - { - "parameters": { - "resource": "case", - "operation": "update", - "id": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "updateFields": { - "tlp": 3 - } - }, - "name": "TheHive7", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 620, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "7da42dc0-c2a1-438e-9e44-329dee84938e" - }, - { - "parameters": { - "resource": "case", - "operation": "get", - "id": "={{$node[\"TheHive6\"].json[\"id\"]}}" - }, - "name": "TheHive8", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "07902779-ae8c-4c8d-a300-57e86244cd7d" - }, - { - "parameters": { - "resource": "case", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive9", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1100, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "e45a3b35-0452-47b5-9136-521a69f1daed" - }, - { - "parameters": { - "resource": "task", - "operation": "create", - "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "title": "=Task{{Date.now()}}", - "options": {} - }, - "name": "TheHive11", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 620, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "8bd67bbf-9b6c-43fe-b88e-4575f2a4206e" - }, - { - "parameters": { - "resource": "task", - "operation": "update", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "updateFields": { - "status": "InProgress" - } - }, - "name": "TheHive12", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 770, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "1df94f03-a17b-47fe-8711-06e6c973c4cd" - }, - { - "parameters": { - "resource": "task", - "operation": "get", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}" - }, - "name": "TheHive13", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1080, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "d766828e-f1d4-47b1-82ef-21ad8b72ac08" - }, - { - "parameters": { - "resource": "task", - "operation": "search", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive14", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1230, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "ddeb0b79-5381-4151-808d-66ba52861c11" - }, - { - "parameters": { - "resource": "log", - "operation": "create", - "taskId": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "message": "=Message{{Date.now()}}", - "startDate": "={{(new Date()).toISOString()}}", - "status": "Ok", - "options": {} - }, - "name": "TheHive16", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 770, - 680 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "b98e4f38-08b0-4dda-949f-9a1d2f02a36e" - }, - { - "parameters": { - "resource": "log", - "operation": "get", - "id": "={{$node[\"TheHive16\"].json[\"_id\"]}}" - }, - "name": "TheHive17", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1090, - 680 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "f14cd395-0d27-4342-8f42-051bdec28e09" - }, - { - "parameters": { - "resource": "log", - "taskId": "={{$node[\"TheHive16\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "TheHive18", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1240, - 680 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "6f0f685c-de2f-4a5a-b221-fea2b1f9fedf" - }, - { - "parameters": { - "resource": "observable", - "operation": "create", - "caseId": "={{$node[\"TheHive6\"].json[\"caseId\"]}}", - "dataType": "ip", - "data": "36.123.133.214", - "message": "test", - "startDate": "={{(new Date()).toISOString()}}", - "ioc": true, - "status": "Ok", - "options": {} - }, - "name": "TheHive19", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 620, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "93e80467-34a8-45ba-aa62-77b9b85f5091" - }, - { - "parameters": { - "resource": "observable", - "operation": "update", - "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}", - "updateFields": { - "ioc": false - } - }, - "name": "TheHive20", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 940, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "34ff3179-4e8b-4947-b5e2-d99a51ab3865" - }, - { - "parameters": { - "resource": "observable", - "operation": "get", - "id": "={{$node[\"TheHive19\"].json[\"_id\"]}}" - }, - "name": "TheHive21", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1090, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "6292663d-fd3f-48b0-8802-fd0d9e29beb0" - }, - { - "parameters": { - "resource": "observable", - "operation": "search", - "limit": 1, - "options": {}, - "filters": {} - }, - "name": "TheHive22", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1450, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "5e58213d-6a75-4304-9b10-0b1e9137d436" - }, - { - "parameters": { - "resource": "observable", - "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", - "limit": 1, - "options": {} - }, - "name": "TheHive23", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1600, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "35a6f784-f1d4-482d-b7b1-7d1e7fe12383" - }, - { - "parameters": { - "resource": "task", - "caseId": "={{$node[\"TheHive6\"].json[\"_id\"]}}", - "limit": 1, - "options": {} - }, - "name": "TheHive26", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1520, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "3af01f2d-8d05-46f6-bc4e-d299e7b36117" - }, - { - "parameters": { - "resource": "log", - "operation": "executeResponder" - }, - "name": "TheHive28", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1390, - 680 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "disabled": true, - "id": "a6c442cd-4720-45bb-bbc4-360e7aa523f7" - }, - { - "parameters": { - "operation": "count", - "filters": {} - }, - "name": "TheHive29", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1600, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "129264d0-06f9-4705-8b6a-1656f3e444ac" - }, - { - "parameters": { - "resource": "observable", - "operation": "count", - "filters": {} - }, - "name": "TheHive30", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1730, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "98c5ecaf-005a-4c35-ad42-42eb9b507fdf" - }, - { - "parameters": { - "resource": "case", - "operation": "count", - "filters": {} - }, - "name": "TheHive31", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1460, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "fc75071b-b04c-4b46-8001-84e4be11b410" - }, - { - "parameters": { - "resource": "task", - "operation": "count", - "filters": {} - }, - "name": "TheHive32", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1650, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "ab81354d-86ed-454d-8a8c-179f3bfffcac" - }, - { - "parameters": { - "operation": "merge", - "id": "={{$node[\"TheHive35\"].json[\"id\"]}}", - "caseId": "={{$node[\"TheHive34\"].json[\"id\"]}}" - }, - "name": "TheHive33", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 900, - -100 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "d0348684-a348-47ad-b9bd-bb5ef60eb620" - }, - { - "parameters": { - "resource": "case", - "operation": "create", - "title": "=MergingCase{{Date.now()}}", - "description": "desc", - "startDate": "={{(new Date()).toISOString()}}", - "owner": "nodeqa", - "tags": "test", - "options": {} - }, - "name": "TheHive34", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 470, - -100 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "363b6fcf-f673-485f-b50b-11a2f8274599" - }, - { - "parameters": { - "title": "=MergingAlert{{Date.now()}}", - "description": "desc", - "date": "={{(new Date()).toISOString()}}", - "tags": "test", - "type": "test", - "source": "n8n", - "sourceRef": "={{Date.now().toString()}}", - "additionalFields": {} - }, - "name": "TheHive35", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 750, - -100 - ], - "credentials": { - "theHiveApi": { - "id": "108", - "name": "The Hive API creds (v1)" - } - }, - "id": "b972bf61-8365-42f8-b1b4-bfddb2ea763c" - }, - { - "parameters": { - "operation": "executeResponder", - "id": "={{$node[\"TheHive\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive15", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1770, - 50 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "edd53027-11e7-45df-ac58-38e84ea8e68f" - }, - { - "parameters": { - "resource": "observable", - "operation": "executeResponder", - "id": "={{$node[\"TheHive21\"].json[\"_id\"]}}", - "responder": "fbe415a38eb649eb7df174aa11a32cfe" - }, - "name": "TheHive25", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 2060, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "9cc1c6e0-7467-4143-af7a-18d0927ef266" - }, - { - "parameters": { - "resource": "observable", - "operation": "executeAnalyzer", - "id": "={{$node[\"TheHive21\"].json[\"_id\"]}}", - "dataType": "={{$node[\"TheHive21\"].json[\"dataType\"]}}", - "analyzers": [ - "6fdd3c9b5432f1e2094cd3b8f2347d09::cortex" - ] - }, - "name": "TheHive24", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1880, - 200 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "dd820c65-bf81-4ccb-9f5e-4687c69c60f9" - }, - { - "parameters": { - "resource": "case", - "operation": "executeResponder", - "id": "={{$node[\"TheHive6\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive10", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1620, - 350 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "c28cb76f-22b4-4651-a6be-97fbed03f9a2" - }, - { - "parameters": { - "resource": "task", - "operation": "executeResponder", - "id": "={{$node[\"TheHive11\"].json[\"id\"]}}", - "responder": "23bc4aef9aa1c88d6624004a3d04aeae" - }, - "name": "TheHive27", - "type": "n8n-nodes-base.theHive", - "typeVersion": 1, - "position": [ - 1810, - 520 - ], - "credentials": { - "theHiveApi": { - "id": "107", - "name": "The Hive API creds" - } - }, - "id": "faf84c8e-59fa-4cd7-9b96-b6d41ff7fd3e" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 600, - -100 - ], - "typeVersion": 1, - "id": "48448770-8579-45c5-8b44-a3630182989b" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 770, - 50 - ], - "typeVersion": 1, - "id": "56f919d6-ba81-41f5-80f5-f5b1f57edc6a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 780, - 200 - ], - "typeVersion": 1, - "id": "cc581b90-c49e-45dc-a74f-2058b14f54e6" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 790, - 350 - ], - "typeVersion": 1, - "id": "b11a7b70-aa7a-4c94-988e-04576c28ec06" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 920, - 520 - ], - "typeVersion": 1, - "id": "00e38394-b83d-4b2d-8f64-f002f3dee288" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 930, - 680 - ], - "typeVersion": 1, - "id": "203e4d68-f936-4f70-88cc-162cb3754faf" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second6", - "type": "n8n-nodes-base.function", - "position": [ - 1380, - 520 - ], - "typeVersion": 1, - "id": "dc7c936c-b400-402e-af72-927ca98ac0ea" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second7", - "type": "n8n-nodes-base.function", - "position": [ - 1280, - 350 - ], - "typeVersion": 1, - "id": "733a450f-5c8b-4451-b542-afbbd1757233" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second8", - "type": "n8n-nodes-base.function", - "position": [ - 1260, - 200 - ], - "typeVersion": 1, - "id": "96ae2c59-bde3-4c79-be16-525e36e0634f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second9", - "type": "n8n-nodes-base.function", - "position": [ - 1270, - 50 - ], - "typeVersion": 1, - "id": "53151c11-2f85-4596-920a-4770739fd32e" - } - ], - "connections": { - "TheHive": { - "main": [ - [ - { - "node": "TheHive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive1": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive2": { - "main": [ - [ - { - "node": "TheHive3", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive3": { - "main": [ - [ - { - "node": "TheHive15", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second9", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive6": { - "main": [ - [ - { - "node": "TheHive7", - "type": "main", - "index": 0 - }, - { - "node": "TheHive11", - "type": "main", - "index": 0 - }, - { - "node": "TheHive19", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive7": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive8": { - "main": [ - [ - { - "node": "TheHive9", - "type": "main", - "index": 0 - }, - { - "node": "TheHive10", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive11": { - "main": [ - [ - { - "node": "TheHive12", - "type": "main", - "index": 0 - }, - { - "node": "TheHive16", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive12": { - "main": [ - [ - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive13": { - "main": [ - [ - { - "node": "TheHive14", - "type": "main", - "index": 0 - }, - { - "node": "TheHive27", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive14": { - "main": [ - [ - { - "node": "Sleep 0.5 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive16": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive17": { - "main": [ - [ - { - "node": "TheHive18", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive19": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive20": { - "main": [ - [ - { - "node": "TheHive21", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive21": { - "main": [ - [ - { - "node": "TheHive24", - "type": "main", - "index": 0 - }, - { - "node": "TheHive25", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second8", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive22": { - "main": [ - [ - { - "node": "TheHive23", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive26": { - "main": [ - [ - { - "node": "TheHive32", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "TheHive6", - "type": "main", - "index": 0 - }, - { - "node": "TheHive", - "type": "main", - "index": 0 - }, - { - "node": "TheHive34", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive4": { - "main": [ - [ - { - "node": "TheHive29", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive23": { - "main": [ - [ - { - "node": "TheHive30", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive9": { - "main": [ - [ - { - "node": "Sleep 0.5 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive34": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "TheHive35": { - "main": [ - [ - { - "node": "TheHive33", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "TheHive17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "TheHive13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "TheHive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "TheHive20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "TheHive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "TheHive35", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second6": { - "main": [ - [ - { - "node": "TheHive26", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second7": { - "main": [ - [ - { - "node": "TheHive31", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second8": { - "main": [ - [ - { - "node": "TheHive22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second9": { - "main": [ - [ - { - "node": "TheHive4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/139.json b/test-workflows/workflows/139.json deleted file mode 100644 index ec72bae215..0000000000 --- a/test-workflows/workflows/139.json +++ /dev/null @@ -1,367 +0,0 @@ -{ - "createdAt": "2021-03-19T09:20:03.334Z", - "updatedAt": "2021-03-19T09:22:57.813Z", - "id": "139", - "name": "Shopify:Product:create update get getAll delete:Order:create update get getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d841866b-3ccd-4f04-97ae-799cc649c163" - }, - { - "parameters": { - "resource": "product", - "title": "=Product{{Date.now()}}", - "additionalFields": {} - }, - "name": "Shopify", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "84e29b73-0cc6-4793-a48b-8972fc733c16" - }, - { - "parameters": { - "resource": "product", - "operation": "update", - "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Shopify\"].json[\"title\"]}}" - } - }, - "name": "Shopify1", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1350, - 300 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "4013bda3-f9d6-423a-a936-df538232f5e0" - }, - { - "parameters": { - "resource": "product", - "operation": "get", - "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Shopify2", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1500, - 300 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "bbc9b837-505c-4551-9fb1-4a9da938d9f9" - }, - { - "parameters": { - "resource": "product", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Shopify3", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1650, - 300 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "e0fffb77-cbd1-47df-8f86-ef2ef89fd6c7" - }, - { - "parameters": { - "resource": "product", - "operation": "delete", - "productId": "={{$node[\"Shopify\"].json[\"id\"]}}" - }, - "name": "Shopify4", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1800, - 300 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "61f48867-0cc6-4128-8b2b-ce4cbf60e524" - }, - { - "parameters": { - "additionalFields": { - "email": "=fake{{Date.now()}}@gmail.com", - "tags": "test,", - "test": "" - }, - "limeItemsUi": { - "lineItemValues": [ - { - "productId": "={{$node[\"Shopify\"].json[\"id\"]}}", - "title": "=Line{{Date.now()}}", - "grams": "15", - "price": "101" - } - ] - } - }, - "name": "Shopify5", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "c1a9b348-cd93-46be-88e4-ccc2a2698fdb" - }, - { - "parameters": { - "operation": "update", - "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}", - "updateFields": { - "email": "=updated{{$node[\"Shopify5\"].json[\"email\"]}}" - } - }, - "name": "Shopify6", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "e9fd5c83-7ed5-430e-b976-402027f53177" - }, - { - "parameters": { - "operation": "get", - "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}", - "options": {} - }, - "name": "Shopify7", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 900, - 450 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "9ff0060c-8878-4893-84ae-a24deba7166d" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Shopify8", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1050, - 450 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "5003db2b-06c5-42ca-899a-3f2e49aa0518" - }, - { - "parameters": { - "operation": "delete", - "orderId": "={{$node[\"Shopify5\"].json[\"id\"]}}" - }, - "name": "Shopify9", - "type": "n8n-nodes-base.shopify", - "typeVersion": 1, - "position": [ - 1200, - 450 - ], - "credentials": { - "shopifyApi": { - "id": "109", - "name": "Shopify API creds" - } - }, - "id": "c6677e77-ca3d-4d7f-b8e9-87d19786a845" - } - ], - "connections": { - "Shopify": { - "main": [ - [ - { - "node": "Shopify5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Shopify", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify1": { - "main": [ - [ - { - "node": "Shopify2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify2": { - "main": [ - [ - { - "node": "Shopify3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify3": { - "main": [ - [ - { - "node": "Shopify4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify5": { - "main": [ - [ - { - "node": "Shopify6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify6": { - "main": [ - [ - { - "node": "Shopify7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify7": { - "main": [ - [ - { - "node": "Shopify8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify8": { - "main": [ - [ - { - "node": "Shopify9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Shopify9": { - "main": [ - [ - { - "node": "Shopify1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/140.json b/test-workflows/workflows/140.json deleted file mode 100644 index f37ee11b53..0000000000 --- a/test-workflows/workflows/140.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "createdAt": "2021-03-19T09:48:14.284Z", - "updatedAt": "2021-03-19T09:48:14.284Z", - "id": "140", - "name": "Mailgun", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "61c01ddf-4360-4d4f-8bf3-7bb5499147b3" - }, - { - "parameters": { - "fromEmail": "nodeqa@n8n.io", - "toEmail": "node8qa@gmail.com", - "subject": "=Mailgun{{Date.now()}}", - "text": "=Test text {{(new Date).toUTCString()}}" - }, - "name": "Mailgun", - "type": "n8n-nodes-base.mailgun", - "typeVersion": 1, - "position": [ - 470, - 300 - ], - "credentials": { - "mailgunApi": { - "id": "42", - "name": "Mailgun API creds" - } - }, - "id": "18d17dae-126a-44a3-9832-0bbf60320da8" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Mailgun", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/141.json b/test-workflows/workflows/141.json deleted file mode 100644 index dfa3405194..0000000000 --- a/test-workflows/workflows/141.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "createdAt": "2021-03-19T10:44:59.685Z", - "updatedAt": "2021-05-21T10:01:36.962Z", - "id": "141", - "name": "MicrosoftExcel:Table:lookup getRows getColumns addRow:Workbook:addWorksheet getAll:Worksheet:getAll getContent", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "13273e42-d319-4d4b-8a72-4c034ed61bac" - }, - { - "parameters": { - "operation": "addWorksheet", - "workbook": "51F07A8CA9E72D69!136", - "additionalFields": { - "name": "=WorkSheet{{Date.now()}}" - } - }, - "name": "Microsoft Excel", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "b95b3ba8-c4c8-48ff-9458-3ffdf1445f25" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Microsoft Excel1", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 790, - 300 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "e8bcc5f5-7348-466f-92cd-52b12f0aff5e" - }, - { - "parameters": { - "resource": "worksheet", - "operation": "getAll", - "workbook": "51F07A8CA9E72D69!136", - "limit": 1, - "filters": {} - }, - "name": "Microsoft Excel2", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "859d409b-f7c9-47e1-af7d-e1555c2745a9" - }, - { - "parameters": { - "resource": "worksheet", - "operation": "getContent", - "workbook": "51F07A8CA9E72D69!136", - "worksheet": "{00000000-0001-0000-0000-000000000000}", - "range": "A1:D2" - }, - "name": "Microsoft Excel3", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 790, - 450 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "b9f51de5-c632-49bb-815a-f7fe13e8cce6" - }, - { - "parameters": { - "resource": "table", - "operation": "lookup", - "workbook": "51F07A8CA9E72D69!136", - "worksheet": "{00000000-0001-0000-0000-000000000000}", - "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", - "lookupColumn": "t", - "lookupValue": "n", - "options": {} - }, - "name": "Microsoft Excel4", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 500, - 150 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "fbc761ca-7add-4e72-942d-4a55366491fc" - }, - { - "parameters": { - "resource": "table", - "operation": "getRows", - "workbook": "51F07A8CA9E72D69!136", - "worksheet": "{00000000-0001-0000-0000-000000000000}", - "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", - "limit": 1 - }, - "name": "Microsoft Excel5", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 800, - 150 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "e0c06d78-2108-457e-955c-7abaf4b377dd" - }, - { - "parameters": { - "resource": "table", - "operation": "getColumns", - "workbook": "51F07A8CA9E72D69!136", - "worksheet": "{00000000-0001-0000-0000-000000000000}", - "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", - "limit": 1 - }, - "name": "Microsoft Excel6", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 1100, - 150 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "433e7bea-93de-4efc-b77b-4d039e685527" - }, - { - "parameters": { - "resource": "table", - "workbook": "51F07A8CA9E72D69!136", - "worksheet": "{00000000-0001-0000-0000-000000000000}", - "table": "{36FB1939-0994-4A3D-8612-14A5283A6A80}", - "additionalFields": {} - }, - "name": "Microsoft Excel7", - "type": "n8n-nodes-base.microsoftExcel", - "typeVersion": 1, - "position": [ - 1400, - 150 - ], - "credentials": { - "microsoftExcelOAuth2Api": { - "id": "73", - "name": "Microsoft Excel OAuth2 creds" - } - }, - "id": "5ea1e83f-a0fb-4c12-b722-63b8419fc78a" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "Column3", - "value": "={{Date.now().toString().substr(6)}}" - }, - { - "name": "Column4", - "value": "={{Date.now().toString().substr(3)}}" - } - ], - "number": [ - { - "name": "t", - "value": "={{Math.round(Math.random()*100)}}" - }, - { - "name": "e", - "value": "={{Math.round(Math.random()*100)}}" - }, - { - "name": "s", - "value": "={{Math.round(Math.random()*100)}}" - }, - { - "name": "t2", - "value": "={{Math.round(Math.random()*100)}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1250, - 150 - ], - "id": "eb3f568f-c6f6-4a53-b6de-8de28f762848" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 450 - ], - "typeVersion": 1, - "id": "5a289dee-eba5-467f-a7b3-552d94867c0f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second1", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 300 - ], - "typeVersion": 1, - "id": "0ca0ff2b-609a-42a3-a1cf-2bbc8f127f01" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second2", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 150 - ], - "typeVersion": 1, - "id": "0bb04e5a-6001-4bc1-a1dd-32b16f3f0ec0" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second3", - "type": "n8n-nodes-base.function", - "position": [ - 950, - 150 - ], - "typeVersion": 1, - "id": "9704ee84-3b4f-419c-aaa3-3e58c16b7ca9" - } - ], - "connections": { - "Microsoft Excel": { - "main": [ - [ - { - "node": "Sleep 0.8 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Excel2": { - "main": [ - [ - { - "node": "Sleep 0.8 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Microsoft Excel", - "type": "main", - "index": 0 - }, - { - "node": "Microsoft Excel2", - "type": "main", - "index": 0 - }, - { - "node": "Microsoft Excel4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Excel4": { - "main": [ - [ - { - "node": "Sleep 0.8 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Excel5": { - "main": [ - [ - { - "node": "Sleep 0.8 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Excel6": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Microsoft Excel7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second": { - "main": [ - [ - { - "node": "Microsoft Excel3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second1": { - "main": [ - [ - { - "node": "Microsoft Excel1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second2": { - "main": [ - [ - { - "node": "Microsoft Excel5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second3": { - "main": [ - [ - { - "node": "Microsoft Excel6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/142.json b/test-workflows/workflows/142.json deleted file mode 100644 index e6d7aa4c3c..0000000000 --- a/test-workflows/workflows/142.json +++ /dev/null @@ -1,1141 +0,0 @@ -{ - "createdAt": "2021-03-19T11:16:17.356Z", - "updatedAt": "2021-05-21T10:01:38.488Z", - "id": "142", - "name": "MicrosoftOutlook:Folder:create get getAll getChildren delete:Message send getAll get getMime update delete:FolderMessage:getAll:Draft:create update get delete send:MessageAttachment:add getAll get download", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c8853916-a370-410c-8c96-fec280e24502" - }, - { - "parameters": { - "subject": "=Subject {{Date.now()}}", - "bodyContent": "=Test {{(new Date).toUTCString()}}", - "toRecipients": "node8qa@gmail.com", - "additionalFields": {} - }, - "name": "Microsoft Outlook", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "75eee31d-df00-4fe7-8c29-0dca953fcec5" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Microsoft Outlook1", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "7b0b82c4-5e02-4819-a2af-748eee795377" - }, - { - "parameters": { - "operation": "get", - "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Microsoft Outlook2", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "e11bc3e4-d5fc-496a-b601-939ea3edf709" - }, - { - "parameters": { - "operation": "getMime", - "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook3", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "4d18fe05-dc23-47f9-b0bf-776ea266ad94" - }, - { - "parameters": { - "operation": "update", - "messageId": "={{$node[\"Microsoft Outlook2\"].json[\"id\"]}}", - "updateFields": { - "bodyContent": "=Updated{{$node[\"Microsoft Outlook2\"].json[\"body\"][\"content\"]}}" - } - }, - "name": "Microsoft Outlook4", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1350, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "eba271aa-7a39-45c4-b74c-79be4d600f5e" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Microsoft Outlook1\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook5", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1800, - 300 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "631bf979-dfac-4acc-b038-c2efbbc4eb61" - }, - { - "parameters": { - "resource": "draft", - "subject": "=Draft{{Date.now()}}", - "bodyContent": "=draft test{{(new Date).toUTCString()}}", - "additionalFields": { - "toRecipients": " node8qa@gmail.com " - } - }, - "name": "Microsoft Outlook6", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 450, - 500 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "d52c068a-caec-4b41-8f2b-6ecb09eeff45" - }, - { - "parameters": { - "resource": "draft", - "operation": "update", - "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}", - "updateFields": { - "bodyContent": "=Updated{{$node[\"Microsoft Outlook6\"].json[\"body\"][\"content\"]}}" - } - }, - "name": "Microsoft Outlook7", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 600, - 500 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "d9f97b7a-cd2d-476a-bc98-65c622adafae" - }, - { - "parameters": { - "resource": "draft", - "operation": "get", - "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Microsoft Outlook8", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 900, - 500 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "d8668bc3-43db-4ba9-ab40-a5bd7fd0ea32" - }, - { - "parameters": { - "resource": "draft", - "operation": "delete", - "messageId": "={{$node[\"Microsoft Outlook6\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook9", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1050, - 500 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "5c319460-5c69-4622-953a-7bcaee892d07" - }, - { - "parameters": { - "resource": "draft", - "subject": "=Draft{{Date.now()}}", - "bodyContent": "=draft test{{Date.now()}}", - "additionalFields": { - "toRecipients": " node8qa@gmail.com " - } - }, - "name": "Microsoft Outlook10", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1350, - 500 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "4fefb565-502a-4a8d-a9a4-db2b208d7b12" - }, - { - "parameters": { - "resource": "draft", - "operation": "send", - "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", - "additionalFields": { - "recipients": "node8qa@gmail.com" - } - }, - "name": "Microsoft Outlook11", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 2650, - 550 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "c1d8d7e4-8d6d-4ca4-9e05-e0ad702a586d" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Microsoft Outlook13\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook12", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 3100, - 550 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "0e1e8c29-065e-43e2-9751-46b580640c73" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Microsoft Outlook13", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 2950, - 550 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "c4ba0930-587d-47a4-8a4b-a3b3ba7ed3f2" - }, - { - "parameters": { - "resource": "folder", - "displayName": "=Folder{{(new Date).toUTCString()}}" - }, - "name": "Microsoft Outlook14", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 450, - 140 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "3b783dbb-0e38-4cdb-8931-a83c2e542a9e" - }, - { - "parameters": { - "resource": "folder", - "operation": "get", - "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Microsoft Outlook15", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 750, - 140 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "c829334b-0ac4-4440-b3bd-537f659608f7" - }, - { - "parameters": { - "resource": "folder", - "operation": "getAll", - "limit": 1, - "additionalFields": { - "filter": "startsWith(displayName,'Folder')" - } - }, - "name": "Microsoft Outlook16", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 900, - 140 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "d446756b-e052-4869-9d2d-7d4af3c155f3" - }, - { - "parameters": { - "resource": "folder", - "operation": "getChildren", - "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}", - "limit": 1, - "additionalFields": {} - }, - "name": "Microsoft Outlook17", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1200, - 140 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "8f732179-076b-4375-96ef-396c41ec4f22" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "folderId": "={{$node[\"Microsoft Outlook14\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook18", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1350, - 140 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "a4b7d61c-74c1-4595-9698-6b1fa7a73842" - }, - { - "parameters": { - "resource": "folderMessage", - "operation": "getAll", - "folderId": "AQMkADAwATNiZmYAZC0zODgAZC1jYjlmLTAwAi0wMAoALgAAA7ObUbW4UV9AtQb9CKQozz8BAIHMmBimhDVHlaNbe8JltA4AAAIBCQAAAA==", - "limit": 1, - "additionalFields": {} - }, - "name": "Microsoft Outlook19", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1650, - 350 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "891fb969-79f6-4832-a3d0-b2d938fe757a" - }, - { - "parameters": { - "resource": "messageAttachment", - "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", - "additionalFields": { - "fileName": "test" - } - }, - "name": "Microsoft Outlook20", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 1750, - 650 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "d7131b8a-1656-4ad0-baa0-860456471bb1" - }, - { - "parameters": { - "mode": "jsonToBinary", - "options": { - "keepSource": false - } - }, - "name": "Move Binary Data", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 1600, - 650 - ], - "id": "9f86213f-ce39-4b3e-a9e9-7327d421f7cb" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "data", - "value": "dGVzdCBmb3IgbWljcm9zb2Z0IG91dGxvb2s=" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1450, - 650 - ], - "id": "b909a6f3-09d4-450f-be31-6c771fa96f08" - }, - { - "parameters": { - "resource": "messageAttachment", - "operation": "getAll", - "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Microsoft Outlook21", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 2050, - 650 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "3b59dfb0-2204-4073-81fb-9629e95969bb" - }, - { - "parameters": { - "resource": "messageAttachment", - "operation": "get", - "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", - "attachmentId": "={{$node[\"Microsoft Outlook21\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Microsoft Outlook22", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 2200, - 650 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "20c4215c-8ab5-4621-872e-1799140f546d" - }, - { - "parameters": { - "resource": "messageAttachment", - "operation": "download", - "messageId": "={{$node[\"Microsoft Outlook10\"].json[\"id\"]}}", - "attachmentId": "={{$node[\"Microsoft Outlook21\"].json[\"id\"]}}" - }, - "name": "Microsoft Outlook23", - "type": "n8n-nodes-base.microsoftOutlook", - "typeVersion": 1, - "position": [ - 2490, - 650 - ], - "credentials": { - "microsoftOutlookOAuth2Api": { - "id": "72", - "name": "Microsoft Outlook OAuth2 creds" - } - }, - "id": "5118f8c3-c5e5-417e-8d38-0970f7f56414" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second", - "type": "n8n-nodes-base.function", - "position": [ - 1050, - 140 - ], - "typeVersion": 1, - "id": "94e105e3-0637-4064-8514-af332eb2827f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second1", - "type": "n8n-nodes-base.function", - "position": [ - 610, - 140 - ], - "typeVersion": 1, - "id": "18598ace-99d1-4b66-91c7-e644a87016c5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second2", - "type": "n8n-nodes-base.function", - "position": [ - 600, - 300 - ], - "typeVersion": 1, - "id": "ba10706c-633c-4cad-968a-f3f18e9c9920" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1050, - 300 - ], - "typeVersion": 1, - "id": "b0f039ce-0731-4f9a-ba87-bc15d53769b8" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second4", - "type": "n8n-nodes-base.function", - "position": [ - 1500, - 350 - ], - "typeVersion": 1, - "id": "418bceb9-6a77-464f-a4e1-8e1f9405e334" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second5", - "type": "n8n-nodes-base.function", - "position": [ - 2800, - 550 - ], - "typeVersion": 1, - "id": "340d3c0c-faf5-4743-8c1b-f00c6541d8ca" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second6", - "type": "n8n-nodes-base.function", - "position": [ - 2350, - 650 - ], - "typeVersion": 1, - "id": "e46a32dd-2110-4e2d-9c6e-d871edba8fe2" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second7", - "type": "n8n-nodes-base.function", - "position": [ - 1900, - 650 - ], - "typeVersion": 1, - "id": "67a411cf-4505-4c21-aa92-1936ccdb0149" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second8", - "type": "n8n-nodes-base.function", - "position": [ - 1940, - 300 - ], - "typeVersion": 1, - "id": "26cac095-afb7-41c7-85a9-44dbdf916e9f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second9", - "type": "n8n-nodes-base.function", - "position": [ - 750, - 500 - ], - "typeVersion": 1, - "id": "e1fe7a57-75ee-4154-a288-6a4a740b7375" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second10", - "type": "n8n-nodes-base.function", - "position": [ - 1200, - 500 - ], - "typeVersion": 1, - "id": "571afdbd-30e6-45d6-9848-d9c6d71b5ba4" - } - ], - "connections": { - "Microsoft Outlook": { - "main": [ - [ - { - "node": "Sleep 0.8 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook1": { - "main": [ - [ - { - "node": "Microsoft Outlook2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook2": { - "main": [ - [ - { - "node": "Sleep 0.8 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook3": { - "main": [ - [ - { - "node": "Microsoft Outlook4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook4": { - "main": [ - [ - { - "node": "Sleep 0.8 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook5": { - "main": [ - [ - { - "node": "Sleep 0.8 second8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Microsoft Outlook", - "type": "main", - "index": 0 - }, - { - "node": "Microsoft Outlook14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook6": { - "main": [ - [ - { - "node": "Microsoft Outlook7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook7": { - "main": [ - [ - { - "node": "Sleep 0.8 second9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook8": { - "main": [ - [ - { - "node": "Microsoft Outlook9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook10": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook11": { - "main": [ - [ - { - "node": "Sleep 0.8 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook13": { - "main": [ - [ - { - "node": "Microsoft Outlook12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook9": { - "main": [ - [ - { - "node": "Sleep 0.8 second10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook14": { - "main": [ - [ - { - "node": "Sleep 0.8 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook15": { - "main": [ - [ - { - "node": "Microsoft Outlook16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook16": { - "main": [ - [ - { - "node": "Sleep 0.8 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook17": { - "main": [ - [ - { - "node": "Microsoft Outlook18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook19": { - "main": [ - [ - { - "node": "Microsoft Outlook5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Move Binary Data": { - "main": [ - [ - { - "node": "Microsoft Outlook20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Move Binary Data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook20": { - "main": [ - [ - { - "node": "Sleep 0.8 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook21": { - "main": [ - [ - { - "node": "Microsoft Outlook22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook22": { - "main": [ - [ - { - "node": "Sleep 0.8 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft Outlook23": { - "main": [ - [ - { - "node": "Microsoft Outlook11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second": { - "main": [ - [ - { - "node": "Microsoft Outlook17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second1": { - "main": [ - [ - { - "node": "Microsoft Outlook15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second2": { - "main": [ - [ - { - "node": "Microsoft Outlook1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second3": { - "main": [ - [ - { - "node": "Microsoft Outlook3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second4": { - "main": [ - [ - { - "node": "Microsoft Outlook19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second5": { - "main": [ - [ - { - "node": "Microsoft Outlook13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second6": { - "main": [ - [ - { - "node": "Microsoft Outlook23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second7": { - "main": [ - [ - { - "node": "Microsoft Outlook21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second8": { - "main": [ - [ - { - "node": "Microsoft Outlook6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second9": { - "main": [ - [ - { - "node": "Microsoft Outlook8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second10": { - "main": [ - [ - { - "node": "Microsoft Outlook10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/143.json b/test-workflows/workflows/143.json deleted file mode 100644 index a02b244f42..0000000000 --- a/test-workflows/workflows/143.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "createdAt": "2021-03-22T11:26:13.716Z", - "updatedAt": "2021-03-24T08:32:29.467Z", - "id": "143", - "name": "Clearbit:Company:enrich autocomplete:Person:enrich", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - -60, - 280 - ], - "id": "8033ed4d-ce87-413e-a813-6a86713e471d" - }, - { - "parameters": { - "domain": "n8n.io", - "additionalFields": { - "companyName": "n8n", - "twitter": "n8n_io" - } - }, - "name": "Clearbit", - "type": "n8n-nodes-base.clearbit", - "typeVersion": 1, - "position": [ - 150, - 200 - ], - "credentials": { - "clearbitApi": { - "id": "114", - "name": "Clearbit API creds" - } - }, - "id": "09a11c3f-55a2-4d52-8040-5c19b0656758" - }, - { - "parameters": { - "operation": "autocomplete", - "name": "n8n" - }, - "name": "Clearbit1", - "type": "n8n-nodes-base.clearbit", - "typeVersion": 1, - "position": [ - 350, - 200 - ], - "credentials": { - "clearbitApi": { - "id": "114", - "name": "Clearbit API creds" - } - }, - "id": "e71587e3-ca16-4197-b0a7-d9c33f2c82b3" - }, - { - "parameters": { - "resource": "person", - "email": "jan@n8n.io", - "additionalFields": { - "company": "n8n" - } - }, - "name": "Clearbit2", - "type": "n8n-nodes-base.clearbit", - "typeVersion": 1, - "position": [ - 150, - 350 - ], - "credentials": { - "clearbitApi": { - "id": "114", - "name": "Clearbit API creds" - } - }, - "id": "f1c59ebb-3be0-48a5-bd6b-aed005fb54ea" - } - ], - "connections": { - "Clearbit": { - "main": [ - [ - { - "node": "Clearbit1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Clearbit2", - "type": "main", - "index": 0 - }, - { - "node": "Clearbit", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/144.json b/test-workflows/workflows/144.json deleted file mode 100644 index 20293f4d28..0000000000 --- a/test-workflows/workflows/144.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "createdAt": "2021-03-23T16:29:37.939Z", - "updatedAt": "2021-03-23T16:47:30.728Z", - "id": "144", - "name": "APITemplate.io:Account:get:Image:create:PDF:create", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "4b9021d7-c23b-4b65-be5b-8c597bfcd020" - }, - { - "parameters": { - "resource": "account" - }, - "name": "APITemplate.io", - "type": "n8n-nodes-base.apiTemplateIo", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "apiTemplateIoApi": { - "id": "115", - "name": "APITemplate.io API creds" - } - }, - "id": "a66cee09-cb64-4958-a4b9-b864bca5f583" - }, - { - "parameters": { - "imageTemplateId": "43c77b2b1a93c324", - "download": true, - "overridesUi": { - "overrideValues": [ - { - "propertiesUi": { - "propertyValues": [ - { - "key": "src", - "value": "https://n8n.io/_nuxt/img/df5be1c.png" - }, - { - "key": "name", - "value": "background-image" - } - ] - } - } - ] - }, - "options": {} - }, - "name": "APITemplate.io1", - "type": "n8n-nodes-base.apiTemplateIo", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "apiTemplateIoApi": { - "id": "115", - "name": "APITemplate.io API creds" - } - }, - "id": "0ec44b99-4d88-4124-adb0-398523d1efe5" - }, - { - "parameters": { - "resource": "pdf", - "pdfTemplateId": "02777b2b1a99bac8", - "download": true, - "propertiesUi": { - "propertyValues": [ - { - "key": "name", - "value": "nodeaqa" - } - ] - }, - "options": {} - }, - "name": "APITemplate.io2", - "type": "n8n-nodes-base.apiTemplateIo", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "apiTemplateIoApi": { - "id": "115", - "name": "APITemplate.io API creds" - } - }, - "id": "7a6502cc-3287-4732-b140-6b66e86987d7" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "APITemplate.io", - "type": "main", - "index": 0 - }, - { - "node": "APITemplate.io1", - "type": "main", - "index": 0 - }, - { - "node": "APITemplate.io2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/145.json b/test-workflows/workflows/145.json deleted file mode 100644 index f522ba859b..0000000000 --- a/test-workflows/workflows/145.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "createdAt": "2021-03-23T16:57:55.466Z", - "updatedAt": "2021-03-23T16:57:55.466Z", - "id": "145", - "name": "Peekalink:isAvailable preview", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "81f5cd1e-3133-46d5-a1e2-70790d6d338a" - }, - { - "parameters": { - "operation": "isAvailable", - "url": "https://example.com/" - }, - "name": "Peekalink", - "type": "n8n-nodes-base.peekalink", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "peekalinkApi": { - "id": "116", - "name": "Peekalink API" - } - }, - "id": "a8686c14-d503-4e1f-a693-e08cf71ac65e" - }, - { - "parameters": { - "url": "https://example.com/" - }, - "name": "Peekalink1", - "type": "n8n-nodes-base.peekalink", - "typeVersion": 1, - "position": [ - 550, - 400 - ], - "credentials": { - "peekalinkApi": { - "id": "116", - "name": "Peekalink API" - } - }, - "id": "dfffa4d9-913a-4a08-89de-a1e8f6b010d4" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Peekalink1", - "type": "main", - "index": 0 - }, - { - "node": "Peekalink", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/146.json b/test-workflows/workflows/146.json deleted file mode 100644 index f865a38208..0000000000 --- a/test-workflows/workflows/146.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "createdAt": "2021-03-23T19:24:34.036Z", - "updatedAt": "2021-03-23T19:24:34.036Z", - "id": "146", - "name": "TimescaleDB:insert update executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "22efcecd-6cad-42b4-9571-123444740429" - }, - { - "parameters": { - "table": "conditions", - "columns": "temperature,location,time" - }, - "name": "TimescaleDB", - "type": "n8n-nodes-base.timescaleDb", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "timescaleDb": { - "id": "117", - "name": "TimescaleDB creds" - } - }, - "id": "e1b1c99c-bf00-4203-b879-bce0feda1963" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "location", - "value": "n8n" - }, - { - "name": "time", - "value": "={{(new Date()).toISOString()}}" - } - ], - "number": [ - { - "name": "temperature", - "value": "={{Math.random()*100}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "834fa03b-7027-435b-acb0-21ca690a6252" - }, - { - "parameters": { - "operation": "update", - "table": "conditions", - "updateKey": "temperature", - "columns": "location" - }, - "name": "TimescaleDB1", - "type": "n8n-nodes-base.timescaleDb", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "timescaleDb": { - "id": "117", - "name": "TimescaleDB creds" - } - }, - "id": "1fae6a3d-91b5-4c4d-8204-270856d7d6de" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=SELECT *\nFROM conditions\nWHERE time='{{$node[\"Set\"].json[\"time\"]}}'" - }, - "name": "TimescaleDB2", - "type": "n8n-nodes-base.timescaleDb", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "notesInFlow": true, - "credentials": { - "timescaleDb": { - "id": "117", - "name": "TimescaleDB creds" - } - }, - "notes": "Select row using query", - "id": "6e296996-47ee-446a-8784-731d7ecfc9e7" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "location", - "value": "updatedn8n" - } - ], - "number": [] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "344e4ad6-aba8-4792-b846-508e61592a38" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "DELETE FROM conditions;" - }, - "name": "TimescaleDB3", - "type": "n8n-nodes-base.timescaleDb", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "timescaleDb": { - "id": "117", - "name": "TimescaleDB creds" - } - }, - "id": "516e1804-3f18-4897-86e7-cf924f92b5aa" - } - ], - "connections": { - "TimescaleDB": { - "main": [ - [ - { - "node": "TimescaleDB2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "TimescaleDB", - "type": "main", - "index": 0 - } - ] - ] - }, - "TimescaleDB2": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "TimescaleDB1", - "type": "main", - "index": 0 - } - ] - ] - }, - "TimescaleDB1": { - "main": [ - [ - { - "node": "TimescaleDB3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/147.json b/test-workflows/workflows/147.json deleted file mode 100644 index 1f607bdf13..0000000000 --- a/test-workflows/workflows/147.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "createdAt": "2021-03-24T08:48:20.306Z", - "updatedAt": "2021-03-24T08:55:26.613Z", - "id": "147", - "name": "Raindrop:User:get:Collection:create get update getAll delete:Bookmark:create get update getAll delete:Tag:getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "953c7b03-6474-482f-84d8-1f38d7183bd3" - }, - { - "parameters": { - "resource": "user" - }, - "name": "Raindrop", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 460, - 230 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "c299bc92-d175-4684-9c2e-e7d6b730d94c" - }, - { - "parameters": { - "operation": "create", - "title": "=Collection{{Date.now()}}", - "additionalFields": { - "public": false - } - }, - "name": "Raindrop1", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 460, - 380 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "30ba40e6-5e26-4937-ae66-5a5257529c11" - }, - { - "parameters": { - "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}" - }, - "name": "Raindrop2", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 600, - 380 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "7dad07a5-e3d6-450d-89bb-c769e31352ad" - }, - { - "parameters": { - "operation": "update", - "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Raindrop1\"].json[\"title\"]}}" - } - }, - "name": "Raindrop3", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 750, - 380 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "cc020621-137d-42b4-9d89-80efcc6a2b84" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Raindrop4", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 900, - 380 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "142119f2-857c-4f0c-b64b-869fc06c7b95" - }, - { - "parameters": { - "operation": "delete", - "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}" - }, - "name": "Raindrop5", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 2100, - 370 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "bea41e9d-700f-42a2-99b7-53ff087665b8" - }, - { - "parameters": { - "resource": "bookmark", - "operation": "create", - "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", - "link": "https://n8n.io/", - "additionalFields": { - "tags": "n8n,automation,worfklow,test", - "title": "=Bookmark{{Date.now()}}" - } - }, - "name": "Raindrop6", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1050, - 500 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "c8a5347b-d739-4cf1-be7c-1a6039837561" - }, - { - "parameters": { - "resource": "bookmark", - "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}" - }, - "name": "Raindrop7", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1200, - 500 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "f37f269e-85b5-4159-85a5-34bd8401a8b4" - }, - { - "parameters": { - "resource": "bookmark", - "operation": "update", - "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Raindrop6\"].json[\"title\"]}}" - } - }, - "name": "Raindrop8", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1350, - 500 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "d715febb-1ab1-41d3-8a19-93da561c50bb" - }, - { - "parameters": { - "resource": "bookmark", - "operation": "getAll", - "collectionId": "={{$node[\"Raindrop1\"].json[\"_id\"]}}", - "limit": 1 - }, - "name": "Raindrop9", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1500, - 500 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "847a3d9e-862b-406e-a34f-547af4ac0daa" - }, - { - "parameters": { - "resource": "bookmark", - "operation": "delete", - "bookmarkId": "={{$node[\"Raindrop6\"].json[\"_id\"]}}" - }, - "name": "Raindrop10", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1950, - 500 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "6e9390e2-9249-481e-8345-c6f039a267b9" - }, - { - "parameters": { - "resource": "tag", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Raindrop11", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1650, - 650 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "e6c67559-328b-4442-b3e8-167a3c58116a" - }, - { - "parameters": { - "resource": "tag", - "operation": "delete", - "tags": "test", - "additionalFields": {} - }, - "name": "Raindrop12", - "type": "n8n-nodes-base.raindrop", - "typeVersion": 1, - "position": [ - 1800, - 650 - ], - "credentials": { - "raindropOAuth2Api": { - "id": "118", - "name": "Raindrop OAuth2 API creds" - } - }, - "id": "4db832b9-cbce-4e45-b404-fe5f7d0e7924" - } - ], - "connections": { - "Raindrop1": { - "main": [ - [ - { - "node": "Raindrop2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop2": { - "main": [ - [ - { - "node": "Raindrop3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop3": { - "main": [ - [ - { - "node": "Raindrop4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop4": { - "main": [ - [ - { - "node": "Raindrop6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop6": { - "main": [ - [ - { - "node": "Raindrop7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop7": { - "main": [ - [ - { - "node": "Raindrop8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop8": { - "main": [ - [ - { - "node": "Raindrop9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop9": { - "main": [ - [ - { - "node": "Raindrop11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop11": { - "main": [ - [ - { - "node": "Raindrop12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop12": { - "main": [ - [ - { - "node": "Raindrop10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Raindrop10": { - "main": [ - [ - { - "node": "Raindrop5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Raindrop", - "type": "main", - "index": 0 - }, - { - "node": "Raindrop1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/148.json b/test-workflows/workflows/148.json deleted file mode 100644 index 740527f386..0000000000 --- a/test-workflows/workflows/148.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "createdAt": "2021-03-24T09:07:34.933Z", - "updatedAt": "2021-07-29T14:07:02.141Z", - "id": "148", - "name": "Deepl:Language:translate", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e3254a53-50f2-42df-925a-f7f4ac8d0a50" - }, - { - "parameters": { - "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service.", - "translateTo": "DE", - "additionalFields": { - "splitSentences": "1", - "preserveFormatting": "0", - "formality": "default" - } - }, - "name": "DeepL", - "type": "n8n-nodes-base.deepL", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "deepLApi": { - "id": "183", - "name": "Deepl Free API creds" - } - }, - "id": "e8c6fe13-54b6-476f-a5c5-d6699874fc9e" - }, - { - "parameters": { - "functionCode": "testData ='n8n (ausgesprochen n-eight-n) hilft Ihnen, jede App mit einer API auf der Welt miteinander zu verbinden, um ihre Daten ohne eine einzige Zeile Code zu teilen und zu manipulieren. Es ist ein einfach zu bedienender, benutzerfreundlicher und hochgradig anpassbarer Dienst.'\nif(items[0].json['text'] !== testData){\n throw new Error('Problem in DeepL node')\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "2672ca93-3052-4bc7-9145-f0f25405378d" - } - ], - "connections": { - "DeepL": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "DeepL", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/149.json b/test-workflows/workflows/149.json deleted file mode 100644 index 0956dc2100..0000000000 --- a/test-workflows/workflows/149.json +++ /dev/null @@ -1,664 +0,0 @@ -{ - "createdAt": "2021-03-24T10:13:37.863Z", - "updatedAt": "2021-07-29T16:13:27.056Z", - "id": "149", - "name": "Reddit:User:get:Subreddit:get getAll:Profile:get:Post:create get getAll search delete:PostComment:create getAll reply delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0591985b-5e87-405c-9836-f3445e04edf6" - }, - { - "parameters": { - "resource": "user", - "username": "nodeqa" - }, - "name": "Reddit", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "id": "56e5318b-d8b6-4e9b-a847-29871a1671a1" - }, - { - "parameters": { - "resource": "user", - "username": "nodeqa", - "details": "comments", - "limit": 1 - }, - "name": "Reddit1", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "alwaysOutputData": true, - "id": "31923945-dd5e-4fc2-8f6d-2aa45e32b06b" - }, - { - "parameters": { - "resource": "user", - "username": "nodeqa", - "details": "gilded", - "limit": 1 - }, - "name": "Reddit2", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "alwaysOutputData": true, - "id": "a7954654-dc0e-44eb-9ff3-f9b5a8f2b1a0" - }, - { - "parameters": { - "resource": "user", - "username": "nodeqa", - "details": "overview", - "limit": 1 - }, - "name": "Reddit3", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "alwaysOutputData": true, - "id": "175fcb7c-a5ee-4900-aeee-4a4bfe2ad1be" - }, - { - "parameters": { - "resource": "user", - "username": "nodeqa", - "details": "submitted", - "limit": 1 - }, - "name": "Reddit4", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "alwaysOutputData": true, - "id": "6d3148bb-7c31-435c-aad2-06272d3a8197" - }, - { - "parameters": { - "resource": "subreddit", - "subreddit": "nocode" - }, - "name": "Reddit5", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "alwaysOutputData": true, - "id": "33965804-57f3-4f25-afb8-68715fa81354" - }, - { - "parameters": { - "resource": "subreddit", - "operation": "getAll", - "limit": 1, - "filters": { - "trending": false - } - }, - "name": "Reddit6", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "alwaysOutputData": true, - "id": "f918e479-b30a-4fa0-8830-89dd7edf5004" - }, - { - "parameters": { - "resource": "profile" - }, - "name": "Reddit7", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "notes": "IGNORED_PROPERTIES=cookie_consent_banner", - "id": "5747c453-08f3-4777-8cee-36315d2dfdc0" - }, - { - "parameters": { - "resource": "profile", - "details": "prefs" - }, - "name": "Reddit8", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "7301f84d-f865-4ce6-b754-26c6688927dc" - }, - { - "parameters": { - "resource": "profile", - "details": "trophies" - }, - "name": "Reddit9", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "6e6261e9-4b73-4cfd-9c43-06e3419204e1" - }, - { - "parameters": { - "subreddit": "test", - "title": "=Title{{Date.now()}}", - "text": "=Test post {{Date.now()}}" - }, - "name": "Reddit10", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 450, - 600 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "008c54e0-80a0-478d-a71e-3d84ede2952e" - }, - { - "parameters": { - "operation": "get", - "subreddit": "test", - "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}" - }, - "name": "Reddit11", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 600, - 600 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "57990704-189f-4f6a-8fc5-6bb9c6593f05" - }, - { - "parameters": { - "operation": "getAll", - "subreddit": "test", - "limit": 1, - "filters": { - "category": "new" - } - }, - "name": "Reddit12", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 750, - 600 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "bbb708d3-a7b5-42fe-bc28-e617f0a95dff" - }, - { - "parameters": { - "operation": "search", - "subreddit": "test", - "keyword": "post", - "limit": 1, - "additionalFields": { - "sort": "new" - } - }, - "name": "Reddit13", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 900, - 600 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "notes": "IGNORED_PROPERTIES=post_hint,preview,url_overridden_by_dest,is_gallery,gallery_data,media_metadata", - "id": "2201c9ff-a721-4b00-a17f-d285bd9daee7" - }, - { - "parameters": { - "operation": "delete", - "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}" - }, - "name": "Reddit14", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1960, - 600 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "6653bae4-be12-47a1-b515-a88ca01a0f03" - }, - { - "parameters": { - "resource": "postComment", - "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}", - "commentText": "=Comment{{Date.now()}}" - }, - "name": "Reddit15", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1050, - 750 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "d11b902b-9839-436b-b370-e90d61b9ed80" - }, - { - "parameters": { - "resource": "postComment", - "operation": "getAll", - "subreddit": "test", - "postId": "={{$node[\"Reddit10\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Reddit16", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1360, - 750 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "a90dfeb6-1940-41eb-8083-eb9e7003bf10" - }, - { - "parameters": { - "resource": "postComment", - "operation": "reply", - "commentId": "={{$node[\"Reddit15\"].json[\"id\"]}}", - "replyText": "=ReplyComment{{Date.now()}}" - }, - "name": "Reddit17", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1510, - 750 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "c80efe81-fc7d-4523-ba4c-11e0e22e064a" - }, - { - "parameters": { - "resource": "postComment", - "operation": "delete", - "commentId": "={{$node[\"Reddit15\"].json[\"id\"]}}" - }, - "name": "Reddit18", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1660, - 750 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "ad24a5e6-0d22-441e-a7f9-d74dcf49ecd4" - }, - { - "parameters": { - "resource": "postComment", - "operation": "delete", - "commentId": "={{$node[\"Reddit17\"].json[\"id\"]}}" - }, - "name": "Reddit19", - "type": "n8n-nodes-base.reddit", - "typeVersion": 1, - "position": [ - 1810, - 750 - ], - "alwaysOutputData": true, - "credentials": { - "redditOAuth2Api": { - "id": "120", - "name": "Reddit OAuth2 API creds" - } - }, - "id": "a9ec2a18-187e-47ee-a5ce-73bbd02576f2" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(10000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 10 seconds", - "type": "n8n-nodes-base.function", - "position": [ - 1200, - 750 - ], - "typeVersion": 1, - "id": "858b86f3-9efd-45b0-88e7-c2b25d560159" - } - ], - "connections": { - "Reddit": { - "main": [ - [ - { - "node": "Reddit1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit1": { - "main": [ - [ - { - "node": "Reddit2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit2": { - "main": [ - [ - { - "node": "Reddit3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit3": { - "main": [ - [ - { - "node": "Reddit4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit5": { - "main": [ - [ - { - "node": "Reddit6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit7": { - "main": [ - [ - { - "node": "Reddit8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit8": { - "main": [ - [ - { - "node": "Reddit9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit10": { - "main": [ - [ - { - "node": "Reddit11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit11": { - "main": [ - [ - { - "node": "Reddit12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit12": { - "main": [ - [ - { - "node": "Reddit13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit13": { - "main": [ - [ - { - "node": "Reddit15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit15": { - "main": [ - [ - { - "node": "Sleep 10 seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit16": { - "main": [ - [ - { - "node": "Reddit17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit17": { - "main": [ - [ - { - "node": "Reddit18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit18": { - "main": [ - [ - { - "node": "Reddit19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Reddit19": { - "main": [ - [ - { - "node": "Reddit14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Reddit", - "type": "main", - "index": 0 - }, - { - "node": "Reddit5", - "type": "main", - "index": 0 - }, - { - "node": "Reddit7", - "type": "main", - "index": 0 - }, - { - "node": "Reddit10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 10 seconds": { - "main": [ - [ - { - "node": "Reddit16", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/15.json b/test-workflows/workflows/15.json deleted file mode 100644 index 1ff348562d..0000000000 --- a/test-workflows/workflows/15.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "createdAt": "2021-02-16T10:16:46.803Z", - "updatedAt": "2021-05-20T15:21:14.466Z", - "id": "15", - "name": "DropBox:File: upload move copy download delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 120, - 300 - ], - "id": "96dbd3bb-afe7-43ce-a204-ab0a1fec38e1" - }, - { - "parameters": { - "path": "={{$json[\"metadata\"][\"path_display\"]}}/testFile", - "binaryData": true - }, - "name": "Dropbox", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "continueOnFail": true, - "id": "ae1f6047-70fc-4da6-a602-663fc63442e4" - }, - { - "parameters": { - "operation": "move", - "path": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/testFile", - "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/moveTestFile{{Date.now()}}" - }, - "name": "Dropbox2", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "6b0ee1ef-fd36-4a78-bf5a-77a6351e7cb5" - }, - { - "parameters": { - "operation": "copy", - "path": "={{$json[\"metadata\"][\"path_display\"]}}", - "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}/copiedTestFile" - }, - "name": "Dropbox3", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1210, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "249d895c-adab-4ef9-a9de-107a707eedc2" - }, - { - "parameters": { - "operation": "delete", - "path": "={{$json[\"metadata\"][\"path_display\"]}}" - }, - "name": "Dropbox4", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1490, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "6f5575aa-9fb2-4ce9-8d17-0955797fb62d" - }, - { - "parameters": { - "operation": "download", - "path": "={{$json[\"metadata\"][\"path_display\"]}}" - }, - "name": "Dropbox5", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1210, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "b982811b-6408-4410-8519-fa3a1df215ba" - }, - { - "parameters": { - "operation": "delete", - "path": "={{$json[\"metadata\"][\"path_display\"]}}" - }, - "name": "Dropbox6", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1500, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "e168f6df-3d70-4256-a19d-ada81d6e29d1" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "0ac33c86-3813-4af0-be35-9201501cbd28" - }, - { - "parameters": { - "resource": "folder", - "path": "=/testFolder{{Date.now()}}" - }, - "name": "Dropbox8", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 300, - 130 - ], - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "8d123a27-69dc-4fb1-95b4-c5d5eb90e07b" - }, - { - "parameters": { - "resource": "folder", - "operation": "list", - "path": "={{$node[\"Dropbox10\"].json[\"metadata\"][\"path_display\"]}}", - "limit": 1, - "filters": { - "include_deleted": true - } - }, - "name": "Dropbox9", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 2070, - 150 - ], - "alwaysOutputData": true, - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "09395798-ba6f-4d77-a96a-01b162e9695f" - }, - { - "parameters": { - "resource": "folder", - "operation": "move", - "path": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}", - "toPath": "={{$node[\"Dropbox8\"].json[\"metadata\"][\"path_display\"]}}Renamed" - }, - "name": "Dropbox10", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 1800, - 150 - ], - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "7eca30c5-506c-46cc-bbe0-6ded1099dee3" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "path": "={{$node[\"Dropbox10\"].json[\"metadata\"][\"path_display\"]}}" - }, - "name": "Dropbox11", - "type": "n8n-nodes-base.dropbox", - "typeVersion": 1, - "position": [ - 2380, - 150 - ], - "credentials": { - "dropboxApi": { - "id": "31", - "name": "Dropbox creds" - } - }, - "id": "f513eda7-84d7-4903-ad94-c33c6f1a37a9" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds", - "type": "n8n-nodes-base.function", - "position": [ - 600, - 300 - ], - "typeVersion": 1, - "id": "28826f4e-1aeb-4bad-9516-fd49a29a4db5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 900, - 300 - ], - "typeVersion": 1, - "id": "55fa0728-bd74-41b0-b0b4-6b59175633b8" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1350, - 300 - ], - "typeVersion": 1, - "id": "694407f2-2225-459d-bfd3-23f9371c7e22" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1350, - 450 - ], - "typeVersion": 1, - "id": "c42d5236-994b-446a-9427-2095bb3b5121" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 2230, - 150 - ], - "typeVersion": 1, - "id": "84d5255b-7ef5-4f96-92dc-4bd7d406cba7" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 1930, - 150 - ], - "typeVersion": 1, - "id": "425dc02d-8d3c-42f9-a812-3a223f6b7a47" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 1650, - 450 - ], - "typeVersion": 1, - "id": "de860b61-34ef-4faa-a0a8-6054fcd8079b" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Dropbox8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox2": { - "main": [ - [ - { - "node": "Dropbox3", - "type": "main", - "index": 0 - }, - { - "node": "Dropbox5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox3": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox5": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox6": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox8": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox9": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Dropbox10": { - "main": [ - [ - { - "node": "Sleep 0.8 seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds": { - "main": [ - [ - { - "node": "Dropbox", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds1": { - "main": [ - [ - { - "node": "Dropbox2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds2": { - "main": [ - [ - { - "node": "Dropbox4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds3": { - "main": [ - [ - { - "node": "Dropbox6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds4": { - "main": [ - [ - { - "node": "Dropbox11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds5": { - "main": [ - [ - { - "node": "Dropbox9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 seconds6": { - "main": [ - [ - { - "node": "Dropbox10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/150.json b/test-workflows/workflows/150.json deleted file mode 100644 index fe9f451413..0000000000 --- a/test-workflows/workflows/150.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "createdAt": "2021-03-24T13:20:07.626Z", - "updatedAt": "2021-03-24T13:33:51.181Z", - "id": "150", - "name": "PostHog:Event:create:Identity:create:Alias:create:Track:page screen", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "74887071-8225-4c30-8b67-c3bc2cbbbb3c" - }, - { - "parameters": { - "eventName": "=Event{{Date.now()}}", - "distinctId": "={{Date.now()}}", - "additionalFields": { - "propertiesUi": { - "propertyValues": [ - { - "key": "name", - "value": "test" - } - ] - }, - "timestamp": "={{(new Date()).toISOString()}}" - } - }, - "name": "PostHog", - "type": "n8n-nodes-base.postHog", - "typeVersion": 1, - "position": [ - 500, - 150 - ], - "credentials": { - "postHogApi": { - "id": "121", - "name": "PostHog API" - } - }, - "id": "73600be8-3dde-4dea-a1d0-cea020c02acf" - }, - { - "parameters": { - "resource": "identity", - "distinctId": "={{Date.now()}}", - "additionalFields": { - "propertiesUi": { - "propertyValues": [ - { - "key": "name", - "value": "identity test" - }, - { - "key": "email", - "value": "=fake{{Date.now()}}@gmail.com" - } - ] - }, - "timestamp": "={{Date.now()}}" - } - }, - "name": "PostHog1", - "type": "n8n-nodes-base.postHog", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "postHogApi": { - "id": "121", - "name": "PostHog API" - } - }, - "id": "dd146375-b44f-445a-a2a4-fbaeb9028b0c" - }, - { - "parameters": { - "resource": "alias", - "alias": "=Alias{{Date.now()}}", - "distinctId": "={{Date.now()}}", - "additionalFields": { - "contextUi": { - "contextValues": [ - { - "key": "name", - "value": "Aliastest" - } - ] - }, - "timestamp": "={{Date.now()}}" - } - }, - "name": "PostHog2", - "type": "n8n-nodes-base.postHog", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "credentials": { - "postHogApi": { - "id": "121", - "name": "PostHog API" - } - }, - "id": "cb1f2644-f1a7-46b0-950e-de720819b2b7" - }, - { - "parameters": { - "resource": "track", - "name": "=TrackPage{{Date.now()}}", - "distinctId": "={{Date.now()}}", - "additionalFields": { - "category": "landing", - "timestamp": "={{Date.now()}}" - } - }, - "name": "PostHog3", - "type": "n8n-nodes-base.postHog", - "typeVersion": 1, - "position": [ - 500, - 600 - ], - "credentials": { - "postHogApi": { - "id": "121", - "name": "PostHog API" - } - }, - "id": "88973d09-036b-41c3-a24c-d799ef0354e2" - }, - { - "parameters": { - "resource": "track", - "operation": "screen", - "name": "=TrackScreen{{Date.now()}}", - "distinctId": "={{Date.now()}}", - "additionalFields": { - "category": "registration", - "timestamp": "={{Date.now()}}" - } - }, - "name": "PostHog4", - "type": "n8n-nodes-base.postHog", - "typeVersion": 1, - "position": [ - 650, - 600 - ], - "credentials": { - "postHogApi": { - "id": "121", - "name": "PostHog API" - } - }, - "id": "2677f5a4-9a15-41f2-a8c0-ea42f269f57b" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "PostHog", - "type": "main", - "index": 0 - }, - { - "node": "PostHog1", - "type": "main", - "index": 0 - }, - { - "node": "PostHog2", - "type": "main", - "index": 0 - }, - { - "node": "PostHog3", - "type": "main", - "index": 0 - } - ] - ] - }, - "PostHog3": { - "main": [ - [ - { - "node": "PostHog4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/151.json b/test-workflows/workflows/151.json deleted file mode 100644 index 5e7775abfc..0000000000 --- a/test-workflows/workflows/151.json +++ /dev/null @@ -1,480 +0,0 @@ -{ - "createdAt": "2021-03-24T14:46:45.567Z", - "updatedAt": "2024-02-23T14:00:43.000Z", - "id": "151", - "name": "Wise:Account:getStatement getBalances getCurrencies:ExchangeRate:get:Profile:get getAll:Recipient:getAll:Quote:create get:Transfer:create get getAll execute delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [250, 650], - "id": "b6204c57-404f-4c53-acc1-a9c9f2e698f5" - }, - { - "parameters": { - "profileId": 16154361 - }, - "name": "Wise", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [650, 200], - "id": "b5851401-b389-4093-9ac2-4f3006f0d21c", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "operation": "getCurrencies" - }, - "name": "Wise1", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [800, 200], - "id": "f0ae63de-1ea4-4ab7-9e72-27aad926e330", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1" - }, - { - "parameters": { - "operation": "getStatement", - "profileId": 16154361, - "borderlessAccountId": 23302, - "currency": "EUR", - "additionalFields": { - "lineStyle": "FLAT" - } - }, - "name": "Wise2", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 200], - "id": "519dda48-ddf1-403b-8dd0-9d91d503f2bb", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "exchangeRate", - "source": "EUR", - "target": "USD", - "additionalFields": {} - }, - "name": "Wise3", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 350], - "id": "ea08c815-9107-41b5-a5af-e2f45b251423", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1" - }, - { - "parameters": { - "resource": "profile", - "profileId": 16154361 - }, - "name": "Wise4", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 500], - "id": "8565eca9-04f5-4c9c-be56-8e3e424e907f", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "recipient", - "limit": 1 - }, - "name": "Wise5", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 650], - "id": "4e57ca88-b2a7-4459-a0c7-09c71da2162b", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "quote", - "operation": "create", - "profileId": 16154361, - "targetAccountId": 147784112, - "amount": 2, - "sourceCurrency": "EUR", - "targetCurrency": "EUR" - }, - "name": "Wise6", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 800], - "id": "0d28f340-cf11-4c34-922e-e82336dfed81", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "quote", - "quoteId": "={{$node[\"Wise6\"].json[\"id\"]}}" - }, - "name": "Wise7", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [640, 800], - "id": "463946cf-45f9-4499-af29-ca3f7ea4f149", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "operation": "create", - "profileId": 16154361, - "quoteId": "={{$node[\"Wise6\"].json[\"id\"]}}", - "targetAccountId": 700007874, - "additionalFields": {} - }, - "name": "Wise8", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [800, 850], - "id": "7adccbb0-f2c0-433c-a80d-5ce191e71ec6", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "transferId": "={{$node[\"Wise8\"].json[\"id\"]}}" - }, - "name": "Wise9", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [950, 850], - "id": "6f34d46a-b8a9-462c-912f-a9de39b43aba", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "operation": "getAll", - "profileId": 16154361, - "limit": 1, - "filters": {} - }, - "name": "Wise10", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [1100, 850], - "executeOnce": false, - "alwaysOutputData": true, - "id": "ba5f7e05-3192-4727-9340-a1003b6b73cb", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "profile", - "operation": "getAll" - }, - "name": "Wise12", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [650, 500], - "id": "a33da4e1-d27c-4f69-9ce0-0734dbce5df7", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "operation": "execute", - "profileId": 16154361, - "transferId": "={{$node[\"Wise8\"].json[\"id\"]}}" - }, - "name": "Wise13", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [1250, 850], - "id": "093d0ca7-9888-4fb1-9734-bc3bf746ce73", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - }, - "disabled": true - }, - { - "parameters": { - "resource": "quote", - "operation": "create", - "profileId": 16154361, - "targetAccountId": 147784112, - "amount": 2, - "sourceCurrency": "EUR", - "targetCurrency": "EUR" - }, - "name": "Wise14", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [500, 1000], - "id": "52b98874-8d52-4e6f-bd45-808afaa13e20", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "operation": "create", - "profileId": 16154361, - "quoteId": "={{$node[\"Wise14\"].json[\"id\"]}}", - "targetAccountId": 700007874, - "additionalFields": {} - }, - "name": "Wise16", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [650, 1050], - "id": "e3d1a7a9-db38-4786-a21a-400182843da5", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - }, - { - "parameters": { - "resource": "transfer", - "operation": "delete", - "transferId": "={{$node[\"Wise16\"].json[\"id\"]}}" - }, - "name": "Wise15", - "type": "n8n-nodes-base.wise", - "typeVersion": 1, - "position": [800, 1050], - "id": "18f10919-83ea-48e0-8df0-19b0ebb2673f", - "credentials": { - "wiseApi": { - "id": "122", - "name": "Wise API creds" - } - } - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Wise5", - "type": "main", - "index": 0 - }, - { - "node": "Wise4", - "type": "main", - "index": 0 - }, - { - "node": "Wise3", - "type": "main", - "index": 0 - }, - { - "node": "Wise2", - "type": "main", - "index": 0 - }, - { - "node": "Wise6", - "type": "main", - "index": 0 - }, - { - "node": "Wise14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise": { - "main": [ - [ - { - "node": "Wise1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise2": { - "main": [ - [ - { - "node": "Wise", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise6": { - "main": [ - [ - { - "node": "Wise7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise4": { - "main": [ - [ - { - "node": "Wise12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise7": { - "main": [ - [ - { - "node": "Wise8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise8": { - "main": [ - [ - { - "node": "Wise9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise9": { - "main": [ - [ - { - "node": "Wise10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise10": { - "main": [ - [ - { - "node": "Wise13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise14": { - "main": [ - [ - { - "node": "Wise16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wise16": { - "main": [ - [ - { - "node": "Wise15", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "12d5670d-e8b6-4c6a-bf37-bcc7f8e53f43", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/152.json b/test-workflows/workflows/152.json deleted file mode 100644 index 7c0f603d5d..0000000000 --- a/test-workflows/workflows/152.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "createdAt": "2021-03-25T09:23:15.717Z", - "updatedAt": "2021-05-10T14:22:21.201Z", - "id": "152", - "name": "AWSComprehend:Text:detectDominantLanguage detectSentiment detectEntities", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "4db01d0f-ffb0-4ced-be9a-8e80eddc20d4" - }, - { - "parameters": { - "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database." - }, - "name": "AWS Comprehend", - "type": "n8n-nodes-base.awsComprehend", - "typeVersion": 1, - "position": [ - 450, - 200 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "dbc6fd62-d8c6-44e7-aed9-6f8f28e609db" - }, - { - "parameters": { - "operation": "detectSentiment", - "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database." - }, - "name": "AWS Comprehend1", - "type": "n8n-nodes-base.awsComprehend", - "typeVersion": 1, - "position": [ - 450, - 380 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "5ba9b2b0-0534-44d9-bdb5-3f45cd4964d9" - }, - { - "parameters": { - "operation": "detectEntities", - "text": "n8n (pronounced n-eight-n) helps you to interconnect every app with an API in the world with each other to share and manipulate its data without a single line of code. It is an easy to use, user-friendly and highly customizable service, which uses an intuitive user interface for you to design your unique workflows very fast. Hosted on your server and not based in the cloud, it keeps your sensible data very secure in your own trusted database.", - "additionalFields": {} - }, - "name": "AWS Comprehend2", - "type": "n8n-nodes-base.awsComprehend", - "typeVersion": 1, - "position": [ - 450, - 550 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "c744db52-65cc-4e4a-811b-69b2ec328352" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "AWS Comprehend", - "type": "main", - "index": 0 - }, - { - "node": "AWS Comprehend1", - "type": "main", - "index": 0 - }, - { - "node": "AWS Comprehend2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/153.json b/test-workflows/workflows/153.json deleted file mode 100644 index efb19b570d..0000000000 --- a/test-workflows/workflows/153.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "createdAt": "2021-03-25T09:44:00.500Z", - "updatedAt": "2021-03-25T09:44:00.500Z", - "id": "153", - "name": "AWSLambda:invoke", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0e6c4d13-c106-4581-890c-ff9d76f686b5" - }, - { - "parameters": { - "function": "arn:aws:lambda:us-east-1:589875339869:function:test-helloworld" - }, - "name": "AWS Lambda", - "type": "n8n-nodes-base.awsLambda", - "typeVersion": 1, - "position": [ - 450, - 200 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "2f7188cc-0b10-48aa-93a7-68814c18cdcb" - }, - { - "parameters": { - "function": "arn:aws:lambda:us-east-1:589875339869:function:test-helloworld", - "payload": "{\n \"name\": \"nodeqa\"\n}" - }, - "name": "AWS Lambda1", - "type": "n8n-nodes-base.awsLambda", - "typeVersion": 1, - "position": [ - 450, - 360 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "798f32bd-9032-4fad-9b3f-5cd4fb35fdb2" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "AWS Lambda", - "type": "main", - "index": 0 - }, - { - "node": "AWS Lambda1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/154.json b/test-workflows/workflows/154.json deleted file mode 100644 index a232e73527..0000000000 --- a/test-workflows/workflows/154.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "createdAt": "2021-03-25T09:52:50.269Z", - "updatedAt": "2021-03-25T09:52:50.269Z", - "id": "154", - "name": "AWSRekognition:Image:analyze", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b1f09994-6b4a-4979-bfc4-ec27ba3003ff" - }, - { - "parameters": { - "type": "detectText", - "binaryData": true, - "additionalFields": {} - }, - "name": "AWS Rekognition", - "type": "n8n-nodes-base.awsRekognition", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "9dd43252-32fd-469a-9698-7f486fc51bb5" - }, - { - "parameters": { - "functionCode": "item = {\n json:{},\n binary:{\n data: {\n data: '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', // Base64 encoded binary data (required)\n mimeType: 'image/png',\n fileExtension: 'png',\n fileName: 'n8n-logo.png',\n }\n }\n}\n\nreturn [item];" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "id": "1d29136d-934f-4913-bd1c-d34a2881c9c8" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "AWS Rekognition", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/155.json b/test-workflows/workflows/155.json deleted file mode 100644 index a8615d20c3..0000000000 --- a/test-workflows/workflows/155.json +++ /dev/null @@ -1,512 +0,0 @@ -{ - "createdAt": "2021-03-25T10:06:21.916Z", - "updatedAt": "2023-03-16T11:39:51.000Z", - "id": "155", - "name": "AWSS3:Bucket:create getAll search:File:upload getAll download delete:Folder:create getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d1457491-53e0-46a5-b33d-f950be72cd4d" - }, - { - "parameters": { - "resource": "bucket", - "name": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "additionalFields": {} - }, - "name": "AWS S3", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "id": "07bca9de-36b9-4dcb-b61e-7fe54ac44273", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "bucketName", - "value": "=Bucket{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "cc6144f2-31e2-47ff-bcb3-92d1c61d07fe" - }, - { - "parameters": { - "resource": "bucket", - "operation": "getAll", - "limit": 1 - }, - "name": "AWS S", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "id": "d500a6b2-04ba-4786-bd4e-ab0432456caa", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "resource": "bucket", - "operation": "search", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "limit": 1, - "additionalFields": {} - }, - "name": "AWS S1", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1650, - 310 - ], - "id": "ae1381cd-181d-41d4-a058-a276b9a860bc", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "operation": "upload", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "fileName": "n8n-logo.png", - "additionalFields": {} - }, - "name": "AWS S2", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1050, - 400 - ], - "id": "1ae1e324-2cbd-460b-ae07-45d76283b3de", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "functionCode": "item = {\n json:{},\n binary:{\n data: {\n data: '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', // Base64 encoded binary data (required)\n mimeType: 'image/png',\n fileExtension: 'png',\n fileName: 'n8n-logo.png',\n }\n }\n}\n\nreturn [item];" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 900, - 400 - ], - "id": "07cbc362-2f04-49d7-bfe7-f6dc1449e633" - }, - { - "parameters": { - "operation": "getAll", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "limit": 1, - "options": {} - }, - "name": "AWS S4", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1200, - 400 - ], - "id": "6409d30f-f301-4455-915f-dca4ba380abd", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "fileKey": "n8n-logo.png" - }, - "name": "AWS S5", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1350, - 400 - ], - "id": "c92b350b-d8ca-434a-8c46-8f2af62100f4", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "operation": "copy", - "sourcePath": "={{$node[\"Set\"].json[\"bucketName\"]}}/n8n-logo.png", - "destinationPath": "={{$node[\"Set\"].json[\"bucketName\"]}}/copied-n8n-logo.png", - "additionalFields": {} - }, - "name": "AWS S6", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1500, - 400 - ], - "id": "f2d2014a-1b8a-4d40-88ea-c4033cc9cfcb", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "disabled": true - }, - { - "parameters": { - "operation": "delete", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "fileKey": "n8n-logo.png", - "options": {} - }, - "name": "AWS S7", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1800, - 400 - ], - "id": "844d7a3e-3e56-4111-9667-f985f4ef3cfc", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "folderName": "={{$node[\"Set1\"].json[\"folderName\"]}}", - "additionalFields": {} - }, - "name": "AWS S8", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "id": "2ede20ee-72aa-431a-bea6-b5831f4df5ae", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "getAll", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "limit": 1, - "options": {} - }, - "name": "AWS S9", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "id": "6ec127d1-bb69-4d7d-9fcf-1ff928ae6b32", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "bucketName": "={{$node[\"Set\"].json[\"bucketName\"]}}", - "folderKey": "={{$node[\"Set1\"].json[\"folderName\"]}}" - }, - "name": "AWS S10", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1200, - 150 - ], - "id": "2697e526-d402-4d6b-8e87-6bd52cc39183", - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "folderName", - "value": "=Folder{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "id": "a2c96217-5106-46a3-bbf9-ed8fb0062592" - }, - { - "parameters": { - "resource": "bucket", - "operation": "delete", - "name": "={{$node[\"Set\"].json[\"bucketName\"]}}" - }, - "id": "afab353f-4e1a-437b-9351-1fd786ededcc", - "name": "AWS S31", - "type": "n8n-nodes-base.awsS3", - "typeVersion": 1, - "position": [ - 1980, - 400 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - } - ], - "connections": { - "AWS S3": { - "main": [ - [ - { - "node": "AWS S", - "type": "main", - "index": 0 - }, - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "AWS S3", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "AWS S2", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S2": { - "main": [ - [ - { - "node": "AWS S4", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S4": { - "main": [ - [ - { - "node": "AWS S5", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S5": { - "main": [ - [ - { - "node": "AWS S6", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S6": { - "main": [ - [ - { - "node": "AWS S1", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S1": { - "main": [ - [ - { - "node": "AWS S7", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S8": { - "main": [ - [ - { - "node": "AWS S9", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S9": { - "main": [ - [ - { - "node": "AWS S10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "AWS S8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS S10": { - "main": [ - [] - ] - }, - "AWS S7": { - "main": [ - [ - { - "node": "AWS S31", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": {}, - "versionId": "75e8472d-f6c4-41de-9cc8-021c88f2e070", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/156.json b/test-workflows/workflows/156.json deleted file mode 100644 index 6009efd38b..0000000000 --- a/test-workflows/workflows/156.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "createdAt": "2021-03-25T10:56:20.715Z", - "updatedAt": "2021-03-25T10:56:20.715Z", - "id": "156", - "name": "AWSSNS:publish", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b5a64e20-a0a9-4ed0-8eb2-f648f8f12789" - }, - { - "parameters": { - "topic": "arn:aws:sns:us-east-1:589875339869:TestingTopic", - "subject": "=Subject{{Date.now()}}", - "message": "=Message{{Date.now()}}" - }, - "name": "AWS SNS", - "type": "n8n-nodes-base.awsSns", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "f57aef0c-0bb4-4e26-b9c2-89df3c72675c" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "AWS SNS", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/157.json b/test-workflows/workflows/157.json deleted file mode 100644 index cd97d388c4..0000000000 --- a/test-workflows/workflows/157.json +++ /dev/null @@ -1,495 +0,0 @@ -{ - "createdAt": "2021-03-25T14:16:35.634Z", - "updatedAt": "2021-03-25T14:30:21.247Z", - "id": "157", - "name": "AWSSES:Template:create geAll get update delete:Email:sendTemplate send:CustomVerificationEmail:create get getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b45b0b50-c25f-4e41-9d82-f0c06af9777a" - }, - { - "parameters": { - "resource": "template", - "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", - "subjectPart": "=Subject{{Date.now()}}", - "additionalFields": { - "textPart": "=Email body example {{Date.now()}}" - } - }, - "name": "AWS SES", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "3bacb945-31c3-4889-ae64-e956c40c4830" - }, - { - "parameters": { - "resource": "template", - "operation": "getAll", - "limit": 1 - }, - "name": "AWS SES1", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "8dd0d2de-eeac-49e4-ab06-04d56d09972e" - }, - { - "parameters": { - "resource": "template", - "operation": "get", - "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}" - }, - "name": "AWS SES2", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "ab6f7068-8997-473c-a58c-59f881694dc3" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "templateName", - "value": "=Template{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "d8d7bba3-dc23-493e-8f26-781a66685439" - }, - { - "parameters": { - "resource": "template", - "operation": "update", - "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", - "updateFields": { - "subjectPart": "={{$node[\"AWS SES2\"].json[\"GetTemplateResult\"][\"Template\"][\"SubjectPart\"]}}", - "htmlPart": "=Updated{{$node[\"AWS SES2\"].json[\"GetTemplateResult\"][\"Template\"][\"TextPart\"]}}" - } - }, - "name": "AWS SES3", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "f807da32-fd62-46b0-9204-2667437bc3ee" - }, - { - "parameters": { - "resource": "template", - "operation": "delete", - "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}" - }, - "name": "AWS SES4", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1500, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "913d5637-d449-42dc-b4b9-ccc6dcb92bde" - }, - { - "parameters": { - "operation": "sendTemplate", - "templateName": "={{$node[\"Set\"].json[\"templateName\"]}}", - "fromEmail": "node8qa@gmail.com", - "toAddresses": [ - "node8qa@gmail.com" - ], - "templateDataUi": { - "templateDataValues": [] - }, - "additionalFields": {} - }, - "name": "AWS SES5", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1200, - 450 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "6681aed4-834c-480c-b712-3fac85484bae" - }, - { - "parameters": { - "subject": "=AWS email {{Date.now()}}", - "body": "=Testing AWS SES node {{Date.now()}}", - "fromEmail": "node8qa@gmail.com", - "toAddresses": [ - "node8qa@gmail.com" - ], - "additionalFields": {} - }, - "name": "AWS SES6", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1350, - 450 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "00af365e-6cc7-4006-acdf-6357a1fc80d2" - }, - { - "parameters": { - "resource": "customVerificationEmail", - "fromEmailAddress": "node8qa@gmail.com", - "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}", - "templateSubject": "=VerificationSubject{{Date.now()}}", - "successRedirectionURL": "http://n8n.io", - "failureRedirectionURL": "http://n8n.io" - }, - "name": "AWS SES7", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 600, - 100 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "844157e9-3159-4ba1-9a6d-0d9a88622cb7" - }, - { - "parameters": { - "resource": "customVerificationEmail", - "operation": "get", - "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}" - }, - "name": "AWS SES8", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 800, - 100 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "a43d3806-6471-4db1-ac5b-ebf3f85198ca" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "templateName", - "value": "=VerificationTemplate{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 100 - ], - "id": "4c2fa60b-186d-49bc-8c1c-125c25553acb" - }, - { - "parameters": { - "resource": "customVerificationEmail", - "operation": "getAll", - "limit": 1 - }, - "name": "AWS SES9", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1000, - 100 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "cfcaa069-6215-4adf-81cf-20a8d7d4da49" - }, - { - "parameters": { - "resource": "customVerificationEmail", - "operation": "update", - "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}", - "updateFields": { - "failureRedirectionURL": "https://community.n8n.io/" - } - }, - "name": "AWS SES10", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1200, - 100 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "42712f43-3c40-48db-b031-f370b75efae6" - }, - { - "parameters": { - "resource": "customVerificationEmail", - "operation": "delete", - "templateName": "={{$node[\"Set1\"].json[\"templateName\"]}}" - }, - "name": "AWS SES11", - "type": "n8n-nodes-base.awsSes", - "typeVersion": 1, - "position": [ - 1400, - 100 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "ec9b73d3-c23c-4f14-9e2e-2c55910d508f" - } - ], - "connections": { - "AWS SES": { - "main": [ - [ - { - "node": "AWS SES1", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES1": { - "main": [ - [ - { - "node": "AWS SES2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "AWS SES", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES2": { - "main": [ - [ - { - "node": "AWS SES3", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES3": { - "main": [ - [ - { - "node": "AWS SES5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES5": { - "main": [ - [ - { - "node": "AWS SES6", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES6": { - "main": [ - [ - { - "node": "AWS SES4", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES7": { - "main": [ - [ - { - "node": "AWS SES8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "AWS SES7", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES8": { - "main": [ - [ - { - "node": "AWS SES9", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES9": { - "main": [ - [ - { - "node": "AWS SES10", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS SES10": { - "main": [ - [ - { - "node": "AWS SES11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/158.json b/test-workflows/workflows/158.json deleted file mode 100644 index da78e96f91..0000000000 --- a/test-workflows/workflows/158.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "createdAt": "2021-03-25T15:40:17.167Z", - "updatedAt": "2021-03-25T15:40:17.167Z", - "id": "158", - "name": "MicrosoftSQL:insert update executeQuery", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "07cfaafd-88a2-4563-9c2d-7ecfacc4a008" - }, - { - "parameters": { - "table": "TestTable", - "columns": "id,content" - }, - "name": "Microsoft SQL", - "type": "n8n-nodes-base.microsoftSql", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "microsoftSql": { - "id": "98", - "name": "Microsoft SQL" - } - }, - "id": "e854f1b2-572c-4697-8597-aaa1cbfb06cb" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "content", - "value": "=Content{{(new Date()).toISOString()}}" - } - ], - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*10000)}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "59f67b24-0711-4944-aec9-b3470e58ef3a" - }, - { - "parameters": { - "operation": "update", - "table": "TestTable", - "columns": "id,content" - }, - "name": "Microsoft SQL1", - "type": "n8n-nodes-base.microsoftSql", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "microsoftSql": { - "id": "98", - "name": "Microsoft SQL" - } - }, - "id": "7dd65584-a631-4365-aa97-d1eac48055dd" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "content", - "value": "=UpdatedContent{{(new Date()).toISOString()}}" - } - ], - "number": [] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "id": "a7177030-713f-456c-97d8-2d1eeeabacd8" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "=SELECT * FROM TestTable WHERE id={{$node[\"Set\"].json[\"id\"]}};" - }, - "name": "Microsoft SQL2", - "type": "n8n-nodes-base.microsoftSql", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "notesInFlow": true, - "credentials": { - "microsoftSql": { - "id": "98", - "name": "Microsoft SQL" - } - }, - "notes": "Execute Query (SELECT one)", - "id": "66a5e1da-49ef-4b2a-a505-6d42985c72d3" - }, - { - "parameters": { - "operation": "delete", - "table": "TestTable" - }, - "name": "Microsoft SQL3", - "type": "n8n-nodes-base.microsoftSql", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "microsoftSql": { - "id": "98", - "name": "Microsoft SQL" - } - }, - "id": "43594a06-313c-40f6-b454-7bf217d8dfb8" - }, - { - "parameters": { - "operation": "executeQuery", - "query": "SELECT * FROM TestTable;" - }, - "name": "Microsoft SQL4", - "type": "n8n-nodes-base.microsoftSql", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "notesInFlow": true, - "credentials": { - "microsoftSql": { - "id": "98", - "name": "Microsoft SQL" - } - }, - "notes": "Execute Query (SELECT All)", - "id": "5c833fc6-917e-445b-b4bc-d7d2090c9e1a" - } - ], - "connections": { - "Microsoft SQL": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Microsoft SQL", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Microsoft SQL1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft SQL1": { - "main": [ - [ - { - "node": "Microsoft SQL2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft SQL2": { - "main": [ - [ - { - "node": "Microsoft SQL3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft SQL3": { - "main": [ - [ - { - "node": "Microsoft SQL4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/159.json b/test-workflows/workflows/159.json deleted file mode 100644 index 4ac3893766..0000000000 --- a/test-workflows/workflows/159.json +++ /dev/null @@ -1,457 +0,0 @@ -{ - "createdAt": "2021-03-25T16:19:55.787Z", - "updatedAt": "2021-03-25T16:30:10.075Z", - "id": "159", - "name": "Tapfiliate:Affiliate:create getAll get delete:ProgramAffiliate:add disapprove approve get getAll:AffiliateMetaData:add update remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "35279fb2-20b3-4fb0-b959-7a34dfdd053f" - }, - { - "parameters": { - "email": "=fake{{Date.now()}}@gmail.com", - "firstname": "=Fname{{Date.now()}}", - "lastname": "=Lname{{Date.now()}}", - "additionalFields": {} - }, - "name": "Tapfiliate", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "c69d2f6e-658d-4372-a697-f7e56b1a0f3e" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Tapfiliate1", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "448a390b-2bf9-4676-bb8a-a963a6662117" - }, - { - "parameters": { - "operation": "get", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" - }, - "name": "Tapfiliate2", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "6d5a78c3-8e56-4401-ada4-2de21b0710c6" - }, - { - "parameters": { - "operation": "delete", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" - }, - "name": "Tapfiliate3", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1850, - 300 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "b30f84fe-d53f-485a-8362-509e66c19060" - }, - { - "parameters": { - "resource": "affiliateMetadata", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", - "metadataUi": { - "metadataValues": [ - { - "key": "source", - "value": "n8n" - } - ] - } - }, - "name": "Tapfiliate4", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 950, - 400 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "a6109eae-d935-48c9-a9aa-b06f15f604c9" - }, - { - "parameters": { - "resource": "affiliateMetadata", - "operation": "update", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", - "key": "source", - "value": "n8n.io" - }, - "name": "Tapfiliate5", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1100, - 400 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "0492bf9a-1a4b-4282-8a07-1319fe026e45" - }, - { - "parameters": { - "resource": "affiliateMetadata", - "operation": "remove", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", - "key": "source" - }, - "name": "Tapfiliate6", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "baf74150-4967-4c31-8bbf-602ffdeef566" - }, - { - "parameters": { - "resource": "programAffiliate", - "programId": "nodeqa-affiliate", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Tapfiliate7", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 950, - 200 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "c909217e-f419-46b9-83fd-7a3b7c8203dc" - }, - { - "parameters": { - "resource": "programAffiliate", - "operation": "disapprove", - "programId": "nodeqa-affiliate", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" - }, - "name": "Tapfiliate8", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1100, - 200 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "9178e7d7-d054-466d-83c3-e99b09705035" - }, - { - "parameters": { - "resource": "programAffiliate", - "operation": "approve", - "programId": "nodeqa-affiliate", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" - }, - "name": "Tapfiliate9", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1250, - 200 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "8c873324-9d69-4bc8-97c8-3a3907aff5a2" - }, - { - "parameters": { - "resource": "programAffiliate", - "operation": "get", - "programId": "nodeqa-affiliate", - "affiliateId": "={{$node[\"Tapfiliate\"].json[\"id\"]}}" - }, - "name": "Tapfiliate10", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1400, - 200 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "16dc0791-f3b0-4d70-ba91-8f68eaceb7e0" - }, - { - "parameters": { - "resource": "programAffiliate", - "operation": "getAll", - "programId": "nodeqa-affiliate", - "limit": 1, - "filters": {} - }, - "name": "Tapfiliate11", - "type": "n8n-nodes-base.tapfiliate", - "typeVersion": 1, - "position": [ - 1550, - 200 - ], - "credentials": { - "tapfiliateApi": { - "id": "125", - "name": "Tapfiliate API creds" - } - }, - "id": "56c57083-92db-4e64-97d8-34fc470147de" - }, - { - "parameters": { - "mode": "wait" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 1, - "position": [ - 1700, - 300 - ], - "id": "8465e4b1-c77d-4522-8f59-df64f4582255" - } - ], - "connections": { - "Tapfiliate": { - "main": [ - [ - { - "node": "Tapfiliate1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate1": { - "main": [ - [ - { - "node": "Tapfiliate2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Tapfiliate", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate2": { - "main": [ - [ - { - "node": "Tapfiliate4", - "type": "main", - "index": 0 - }, - { - "node": "Tapfiliate7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate4": { - "main": [ - [ - { - "node": "Tapfiliate5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate5": { - "main": [ - [ - { - "node": "Tapfiliate6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate7": { - "main": [ - [ - { - "node": "Tapfiliate8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate8": { - "main": [ - [ - { - "node": "Tapfiliate9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate9": { - "main": [ - [ - { - "node": "Tapfiliate10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate10": { - "main": [ - [ - { - "node": "Tapfiliate11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate11": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Tapfiliate6": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Tapfiliate3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/16.json b/test-workflows/workflows/16.json deleted file mode 100644 index 1efac1a16f..0000000000 --- a/test-workflows/workflows/16.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "createdAt": "2021-02-16T12:21:52.835Z", - "updatedAt": "2021-07-15T14:40:02.810Z", - "id": "16", - "name": "OpenWeatherMap:: current-weather 5-day-forecast", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "3af2c46a-cc25-4094-8889-0539e80bbbfb" - }, - { - "parameters": { - "cityName": "berlin", - "language": "en" - }, - "name": "OpenWeatherMap", - "type": "n8n-nodes-base.openWeatherMap", - "typeVersion": 1, - "position": [ - 490, - 300 - ], - "credentials": { - "openWeatherMapApi": { - "id": "9", - "name": "openweathermap token" - } - }, - "notes": "IGNORED_PROPERTIES=rain", - "id": "e12fb37d-8207-4219-a3df-20cbd5b9a4d8" - }, - { - "parameters": { - "operation": "5DayForecast", - "cityName": "berlin", - "language": "en" - }, - "name": "OpenWeatherMap1", - "type": "n8n-nodes-base.openWeatherMap", - "typeVersion": 1, - "position": [ - 690, - 300 - ], - "credentials": { - "openWeatherMapApi": { - "id": "9", - "name": "openweathermap token" - } - }, - "id": "4923e536-3bc8-4659-b3bc-c15b7cf7352f" - } - ], - "connections": { - "OpenWeatherMap": { - "main": [ - [ - { - "node": "OpenWeatherMap1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "OpenWeatherMap", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/160.json b/test-workflows/workflows/160.json deleted file mode 100644 index b5a3cb6cd5..0000000000 --- a/test-workflows/workflows/160.json +++ /dev/null @@ -1,293 +0,0 @@ -{ - "createdAt": "2021-03-26T08:52:34.511Z", - "updatedAt": "2021-11-19T13:01:47.053Z", - "id": "160", - "name": "Wordpress:User:getAll get create update:Post:create get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "1a1d54e3-a566-4100-9ce1-3299836fbf11" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Wordpress", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "47be3700-b529-4ea0-b262-9230788cc460" - }, - { - "parameters": { - "resource": "user", - "username": "=username{{Date.now()}}", - "name": "=Name{{Date.now()}}", - "firstName": "=Fname{{Date.now()}}", - "lastName": "=Lname{{Date.now()}}", - "email": "=fake{{Date.now()}}@gmail.com", - "password": "={{new Array(12).fill().map(() => String.fromCharCode(Math.random()*25+66)).join(\"\")}}", - "additionalFields": {} - }, - "name": "Wordpress1", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "3195d3b1-4dad-4470-9707-cefbe4409813" - }, - { - "parameters": { - "resource": "user", - "operation": "get", - "userId": "={{$node[\"Wordpress\"].json[\"id\"]}}", - "options": {} - }, - "name": "Wordpress2", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "e1ef9cce-7248-470b-a827-b4bb27c3ce22" - }, - { - "parameters": { - "resource": "user", - "operation": "update", - "userId": "={{$node[\"Wordpress1\"].json[\"id\"]}}", - "updateFields": { - "slug": "=slug-updated{{$node[\"Wordpress1\"].json[\"slug\"]}}" - } - }, - "name": "Wordpress3", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "cf5aa95b-d232-493e-9c8a-d35039ac13b4" - }, - { - "parameters": { - "title": "=Title{{Date.now()}}", - "additionalFields": { - "content": "=Post content {{Date.now()}}", - "status": "draft" - } - }, - "name": "Wordpress4", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "3e3bf3c6-e000-4034-9919-6ff705999f1a" - }, - { - "parameters": { - "operation": "get", - "postId": "={{$node[\"Wordpress4\"].json[\"id\"]}}", - "options": {} - }, - "name": "Wordpress5", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "761de321-3bf2-4c4d-9432-ffe80813bda9" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Wordpress6", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "2bf2fd5e-ed32-4964-95dd-2a94e7f0fb4d" - }, - { - "parameters": { - "operation": "update", - "postId": "={{$node[\"Wordpress4\"].json[\"id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Wordpress4\"].json[\"title\"][\"rendered\"]}}" - } - }, - "name": "Wordpress7", - "type": "n8n-nodes-base.wordpress", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "wordpressApi": { - "id": "126", - "name": "Wordpress API creds" - } - }, - "id": "f574c739-2015-4996-ace7-c9d6f7f170ba" - } - ], - "connections": { - "Wordpress": { - "main": [ - [ - { - "node": "Wordpress2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wordpress2": { - "main": [ - [ - { - "node": "Wordpress1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wordpress1": { - "main": [ - [ - { - "node": "Wordpress3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wordpress4": { - "main": [ - [ - { - "node": "Wordpress5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wordpress5": { - "main": [ - [ - { - "node": "Wordpress6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Wordpress", - "type": "main", - "index": 0 - }, - { - "node": "Wordpress4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wordpress6": { - "main": [ - [ - { - "node": "Wordpress7", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/161.json b/test-workflows/workflows/161.json deleted file mode 100644 index 1fa13a1e27..0000000000 --- a/test-workflows/workflows/161.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "createdAt": "2021-03-29T08:38:31.241Z", - "updatedAt": "2021-03-29T08:39:51.181Z", - "id": "161", - "name": "Vonage:SMS:send", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e945a821-3ba5-4579-966a-2dad40345d27" - }, - { - "parameters": { - "from": "21624827732", - "to": "21624827732", - "message": "=Message{{Date.now()}}", - "additionalFields": {} - }, - "name": "Vonage", - "type": "n8n-nodes-base.vonage", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "vonageApi": { - "id": "128", - "name": "Vonage API creds" - } - }, - "id": "d92003eb-6352-45fe-9e96-7a4b98fdd513" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Vonage", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/162.json b/test-workflows/workflows/162.json deleted file mode 100644 index ec8c7cc8aa..0000000000 --- a/test-workflows/workflows/162.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "createdAt": "2021-04-06T08:27:12.354Z", - "updatedAt": "2021-04-19T08:16:20.657Z", - "id": "162", - "name": "AWSSQS:sendMessage", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "61c9e1a4-21ab-4146-82ae-4c4388c1da30" - }, - { - "parameters": { - "queue": "https://sqs.us-east-1.amazonaws.com/589875339869/StandardTestQueue", - "sendInputData": false, - "message": "=StandardMessage{{Date.now()}}", - "options": { - "messageAttributes": { - "string": [ - { - "name": "type", - "value": "test" - } - ] - } - } - }, - "name": "AWS SQS", - "type": "n8n-nodes-base.awsSqs", - "typeVersion": 1, - "position": [ - 550, - 200 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "0194b047-c629-4f68-a629-12455de6ecf6" - }, - { - "parameters": { - "queue": "https://sqs.us-east-1.amazonaws.com/589875339869/FifoTestQueue.fifo", - "queueType": "fifo", - "sendInputData": false, - "message": "=FIFOMessage{{Date.now()}}", - "messageGroupId": "TestMessageGroupId", - "options": { - "messageAttributes": { - "string": [ - { - "name": "type", - "value": "test" - } - ] - }, - "messageDeduplicationId": "DedupTestMessageGroupId" - } - }, - "name": "AWS SQS1", - "type": "n8n-nodes-base.awsSqs", - "typeVersion": 1, - "position": [ - 550, - 380 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "25bc7b70-06c8-4605-8744-f27ab8765761" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "AWS SQS1", - "type": "main", - "index": 0 - }, - { - "node": "AWS SQS", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/163.json b/test-workflows/workflows/163.json deleted file mode 100644 index 4e3a1a33f2..0000000000 --- a/test-workflows/workflows/163.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "createdAt": "2021-04-06T10:52:29.924Z", - "updatedAt": "2021-04-06T12:05:26.358Z", - "id": "163", - "name": "GoogleSlides:Presentation:create get getSlides replaceText:Page:get getThumbnail", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "280bf9cc-7749-4adb-972f-17c43e386aa9" - }, - { - "parameters": { - "authentication": "serviceAccount", - "title": "=Slides{{(new Date()).toUTCString()}}" - }, - "name": "Google Slides", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 480, - 220 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "4c2f181a-17c4-41d9-aef1-05c8e0641974" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "get", - "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}" - }, - "name": "Google Slides1", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 640, - 220 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "1b3d04df-4bab-4b44-b1c3-1ed81e90c7f0" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "getSlides", - "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}" - }, - "name": "Google Slides2", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 800, - 220 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "65882408-7d0c-4869-aa45-d454cc9e3c3f" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "replaceText", - "presentationId": "=1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", - "textUi": { - "textValues": [ - { - "pageObjectIds": [ - "p" - ], - "replaceText": "n8n", - "text": "Title" - } - ] - }, - "options": { - "revisionId": "" - } - }, - "name": "Google Slides3", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 500, - 50 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "81aa81ed-04d3-4204-a583-9b31fda35266" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "page", - "operation": "getThumbnail", - "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}", - "pageObjectId": "p", - "download": true - }, - "name": "Google Slides4", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 640, - 390 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "4b42479d-07ed-49ce-9bf6-4c13e7541d89" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "page", - "presentationId": "={{$node[\"Google Slides\"].json[\"presentationId\"]}}", - "pageObjectId": "p" - }, - "name": "Google Slides5", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 800, - 390 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "4525257c-52bd-4520-87eb-b7327b01bccb" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "replaceText", - "presentationId": "=1y7glcx_2V4LQoSWXTkBbn-kWRLBEAsn7I27B6RQ3cdo", - "textUi": { - "textValues": [ - { - "pageObjectIds": [ - "p" - ], - "replaceText": "Title", - "text": "n8n" - } - ] - }, - "options": { - "revisionId": "" - } - }, - "name": "Google Slides6", - "type": "n8n-nodes-base.googleSlides", - "typeVersion": 1, - "position": [ - 650, - 50 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "11ef0bd7-e0bf-4779-b21e-4a9f81327119" - } - ], - "connections": { - "Google Slides": { - "main": [ - [ - { - "node": "Google Slides1", - "type": "main", - "index": 0 - }, - { - "node": "Google Slides4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Slides1": { - "main": [ - [ - { - "node": "Google Slides2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Slides2": { - "main": [ - [] - ] - }, - "Google Slides4": { - "main": [ - [ - { - "node": "Google Slides5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Slides", - "type": "main", - "index": 0 - }, - { - "node": "Google Slides3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Slides3": { - "main": [ - [ - { - "node": "Google Slides6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/164.json b/test-workflows/workflows/164.json deleted file mode 100644 index cedfa5dffe..0000000000 --- a/test-workflows/workflows/164.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "createdAt": "2021-04-07T16:05:43.152Z", - "updatedAt": "2021-05-21T11:15:28.503Z", - "id": "164", - "name": "ClickUp:SpaceTag:create getAll update delete:TaskTag:add remove:TaskList:add remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e574628c-4213-42a6-9675-067f8663a712" - }, - { - "parameters": { - "resource": "spaceTag", - "space": "8716115", - "name": "={{$node[\"Set\"].json[\"name\"]}}", - "foregroundColor": "#fff", - "backgroundColor": "#FF6D5A" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "cac9ec08-3ee6-4e13-bf16-97e2f65384f3" - }, - { - "parameters": { - "resource": "spaceTag", - "operation": "getAll", - "space": "8716115", - "returnAll": false, - "limit": 1 - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "c23b91c3-7954-4779-ae69-6ba40d03c207" - }, - { - "parameters": { - "resource": "spaceTag", - "operation": "update", - "space": "8716115", - "name": "={{$node[\"Set\"].json[\"name\"].toLowerCase()}}", - "newName": "={{$node[\"Set1\"].json[\"updatedname\"]}}", - "foregroundColor": "#FF6D5A" - }, - "name": "ClickUp3", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "a242d8e6-7e91-4cf2-a092-677a156e72bd" - }, - { - "parameters": { - "resource": "spaceTag", - "operation": "delete", - "space": "8716115", - "name": "={{$node[\"Set1\"].json[\"updatedname\"].toLowerCase()}}" - }, - "name": "ClickUp4", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1600, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "8c4ab219-84b6-4bd6-8b31-babfd3971f5d" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=SpaceTag{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "52b9c2d4-d0e7-46f7-b62e-0c5e55d50bf4" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "updatedname", - "value": "=UpdatedSpaceTag{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "id": "6da544fc-4cd1-479a-8692-7ed19d7b2125" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folderless": true, - "name": "=TestList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 400, - 450 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "d4cec873-fa7d-46b5-80d8-99c1976cf787" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second", - "type": "n8n-nodes-base.function", - "position": [ - 550, - 500 - ], - "typeVersion": 1, - "id": "e4f9c382-78bb-4eb3-b27a-408e5d696cce" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second1", - "type": "n8n-nodes-base.function", - "position": [ - 700, - 300 - ], - "typeVersion": 1, - "id": "2dad6f1d-f2e3-48db-8593-e741e04bd5ae" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1150, - 300 - ], - "typeVersion": 1, - "id": "f5f6b488-12be-4c2c-91f0-ff1b6a932a4c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1450, - 300 - ], - "typeVersion": 1, - "id": "29ab4028-3ffd-4b2a-bad6-b1702f2709c2" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folderless": true, - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "name": "=testTask{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp5", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1000, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "8e04926c-2eca-41e2-b48a-bf3b679d4df4" - }, - { - "parameters": { - "resource": "taskList", - "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "listId": "={{$node[\"ClickUp7\"].json[\"id\"]}}" - }, - "name": "ClickUp6", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2050, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "55659b0d-1067-4a18-a849-72ce9bc20e39" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second4", - "type": "n8n-nodes-base.function", - "position": [ - 1150, - 500 - ], - "typeVersion": 1, - "id": "94369ca0-c7c9-4b4e-ad64-7f400169ea24" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folderless": true, - "name": "=TestList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 700, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "5d662490-3d98-4427-98c8-308fba1ef216" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "name", - "value": "=TaskTag{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set2", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1300, - 600 - ], - "id": "d5d2592b-4e8e-4fef-b151-43a5d0f11d28" - }, - { - "parameters": { - "resource": "taskTag", - "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "tagName": "={{$node[\"Set2\"].json[\"name\"]}}", - "additionalFields": {} - }, - "name": "ClickUp8", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1450, - 600 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "61f2fe7f-b3a9-495a-84a3-8c3d7a7865b8" - }, - { - "parameters": { - "resource": "taskTag", - "operation": "remove", - "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "tagName": "={{$node[\"Set2\"].json[\"name\"]}}", - "additionalFields": {} - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1750, - 600 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "3a612843-f56e-450e-b570-597adb5c16e1" - }, - { - "parameters": { - "resource": "taskList", - "operation": "remove", - "taskId": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "listId": "={{$node[\"ClickUp7\"].json[\"id\"]}}" - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2350, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "419a6bd0-af51-4835-9357-d67592c5ac59" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"ClickUp5\"].json[\"id\"]}}" - }, - "name": "ClickUp11", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2550, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "b3d6e8db-f9b1-4ad5-bb07-67414b83c06e" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folderless": true, - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp12", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2700, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f864bc89-0fbd-4268-94bd-947f4bfbd283" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folderless": true, - "list": "={{$node[\"ClickUp7\"].json[\"id\"]}}" - }, - "name": "ClickUp13", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2850, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "a18e9bc1-c907-49a6-ad91-d06a3d08607a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second5", - "type": "n8n-nodes-base.function", - "position": [ - 850, - 500 - ], - "typeVersion": 1, - "id": "88500c7b-e4da-4d5c-aef5-f533b1beca73" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second6", - "type": "n8n-nodes-base.function", - "position": [ - 1600, - 600 - ], - "typeVersion": 1, - "id": "a65e5617-7265-44b4-a4f9-0b24e9bc8a63" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second7", - "type": "n8n-nodes-base.function", - "position": [ - 1900, - 500 - ], - "typeVersion": 1, - "id": "b1abb9ec-9534-462e-9b87-c2b15d5fdd94" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second8", - "type": "n8n-nodes-base.function", - "position": [ - 2200, - 500 - ], - "typeVersion": 1, - "id": "4bcf2ad3-34c5-4061-9c14-eb9033e726fa" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 0.8 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp2": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp3": { - "main": [ - [ - { - "node": "Sleep 0.8 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Sleep 0.8 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 0.8 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second1": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second2": { - "main": [ - [ - { - "node": "ClickUp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second3": { - "main": [ - [ - { - "node": "ClickUp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp5": { - "main": [ - [ - { - "node": "Sleep 0.8 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp6": { - "main": [ - [ - { - "node": "Sleep 0.8 second8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second4": { - "main": [ - [ - { - "node": "Set2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp7": { - "main": [ - [ - { - "node": "Sleep 0.8 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set2": { - "main": [ - [ - { - "node": "ClickUp8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp8": { - "main": [ - [ - { - "node": "Sleep 0.8 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp9": { - "main": [ - [ - { - "node": "Sleep 0.8 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "ClickUp11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp11": { - "main": [ - [ - { - "node": "ClickUp12", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp12": { - "main": [ - [ - { - "node": "ClickUp13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second5": { - "main": [ - [ - { - "node": "ClickUp5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second6": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second7": { - "main": [ - [ - { - "node": "ClickUp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second8": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/165.json b/test-workflows/workflows/165.json deleted file mode 100644 index 816c2ac40c..0000000000 --- a/test-workflows/workflows/165.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "createdAt": "2021-04-09T07:26:51.323Z", - "updatedAt": "2021-05-21T09:03:30.653Z", - "id": "165", - "name": "Emelia:Campaign:create addContact get getAll start pause:ContactList:getAll add", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e0161f99-f352-4391-a04c-4f5f35a5579d" - }, - { - "parameters": { - "operation": "addContact", - "campaignId": "={{$node[\"Emelia3\"].json[\"_id\"]}}", - "contactEmail": "=fake{{Date.now()}}@email.com", - "additionalFields": {} - }, - "name": "Emelia", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 590, - 150 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "b01f183f-33bb-4f66-a35b-c3510f25566c" - }, - { - "parameters": { - "campaignId": "={{$node[\"Emelia3\"].json[\"_id\"]}}" - }, - "name": "Emelia1", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "a7748a81-f4c6-4412-81f3-a30433806180" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Emelia2", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "3915812e-9ccc-4106-9617-f8e4a0e86721" - }, - { - "parameters": { - "operation": "create", - "campaignName": "=TestCampaign{{Date.now()}}" - }, - "name": "Emelia3", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "2c3250bc-e6e8-4d96-ba6c-e48b7d4d7029" - }, - { - "parameters": { - "operation": "start", - "campaignId": "6076e11687008a0e9fc32356" - }, - "name": "Emelia4", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "425267c3-ceee-44b8-a225-8b9754df353d" - }, - { - "parameters": { - "operation": "pause", - "campaignId": "6076e11687008a0e9fc32356" - }, - "name": "Emelia5", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "385748b1-d93b-48f9-bcde-3f5dc8bbd72a" - }, - { - "parameters": { - "resource": "contactList", - "operation": "getAll", - "limit": 1 - }, - "name": "Emelia6", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "6026559f-751f-4cc0-9762-6be2c85011a0" - }, - { - "parameters": { - "resource": "contactList", - "operation": "add", - "contactListId": "={{$node[\"Emelia6\"].json[\"_id\"]}}", - "contactEmail": "=fakeContact{{Date.now()}}@email.com", - "additionalFields": {} - }, - "name": "Emelia7", - "type": "n8n-nodes-base.emelia", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "emeliaApi": { - "id": "136", - "name": "Emelia API creds" - } - }, - "id": "9b44146c-54be-48fe-868e-30029a235f7a" - } - ], - "connections": { - "Emelia": { - "main": [ - [ - { - "node": "Emelia1", - "type": "main", - "index": 0 - }, - { - "node": "Emelia2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Emelia3": { - "main": [ - [ - { - "node": "Emelia", - "type": "main", - "index": 0 - } - ] - ] - }, - "Emelia4": { - "main": [ - [ - { - "node": "Emelia5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Emelia6": { - "main": [ - [ - { - "node": "Emelia7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Emelia3", - "type": "main", - "index": 0 - }, - { - "node": "Emelia4", - "type": "main", - "index": 0 - }, - { - "node": "Emelia6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/166.json b/test-workflows/workflows/166.json deleted file mode 100644 index 432ee5d0b7..0000000000 --- a/test-workflows/workflows/166.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "createdAt": "2021-04-09T07:48:03.152Z", - "updatedAt": "2021-04-16T10:57:50.621Z", - "id": "166", - "name": "Intercom:Company:create get getAll update users:Lead:create get getAll update delete:User:create get getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 270, - 300 - ], - "id": "64bf3c53-0178-4d4d-9512-03e5d4499dbd" - }, - { - "parameters": { - "resource": "company", - "companyId": "=Company{{Date.now()}}", - "additionalFields": { - "name": "=TestingCompany{{(new Date()).toISOString()}}" - }, - "customAttributesUi": { - "customAttributesValues": [] - } - }, - "name": "Intercom1", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 450, - 140 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "58a9b746-7277-4ade-96cd-cbe1d7b043f1" - }, - { - "parameters": { - "resource": "company", - "operation": "get", - "selectBy": "companyId", - "value": "={{$node[\"Intercom1\"].json[\"company_id\"]}}" - }, - "name": "Intercom", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 600, - 140 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "6dc0d8fe-d4f2-420b-aa34-dbae9b3720f7" - }, - { - "parameters": { - "resource": "company", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Intercom2", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 750, - 140 - ], - "alwaysOutputData": true, - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "ca96c3e9-1a42-4586-a59e-e020ff6bb533" - }, - { - "parameters": { - "resource": "company", - "operation": "update", - "companyId": "={{$node[\"Intercom1\"].json[\"company_id\"]}}", - "additionalFields": { - "name": "=Updated{{$node[\"Intercom\"].json[\"name\"]}}" - } - }, - "name": "Intercom3", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 900, - 140 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "10bc6886-98c8-4abd-a43e-955b02228f32" - }, - { - "parameters": { - "resource": "company", - "operation": "users", - "listBy": "companyId", - "value": "={{$node[\"Intercom\"].json[\"company_id\"]}}" - }, - "name": "Intercom4", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 1050, - 140 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "b9b67277-92d0-4f4f-ad58-c052bd7fdc1e" - }, - { - "parameters": { - "resource": "lead", - "email": "=fake{{Date.now()}}@email.com", - "additionalFields": { - "avatar": "https://static.intercomassets.com/ember/assets/images/onboarding/home/guide-assistants/phil-978b5567c644d4c0f67a4516c03c6b91.png" - } - }, - "name": "Intercom5", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "ee755a25-9b93-4041-9021-e4f81c3d7c69" - }, - { - "parameters": { - "resource": "lead", - "operation": "get", - "selectBy": "id", - "value": "={{$node[\"Intercom5\"].json[\"id\"]}}" - }, - "name": "Intercom6", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "fceb5905-6512-4c30-b0e8-de1720e7cace" - }, - { - "parameters": { - "resource": "lead", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Intercom7", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "03ace0e9-3abc-4144-ba2a-6a3785887d39" - }, - { - "parameters": { - "resource": "lead", - "operation": "update", - "value": "={{$node[\"Intercom5\"].json[\"id\"]}}", - "additionalFields": { - "name": "=UpdatedLead" - } - }, - "name": "Intercom8", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "0deacb0c-d21c-4f03-85c1-83f6383f3c67" - }, - { - "parameters": { - "resource": "lead", - "operation": "delete", - "deleteBy": "id", - "value": "={{$node[\"Intercom5\"].json[\"id\"]}}" - }, - "name": "Intercom9", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "c4dbf1f2-2c89-4041-b409-64f83643c235" - }, - { - "parameters": { - "identifierType": "userId", - "idValue": "=User{{Date.now()}}", - "additionalFields": {} - }, - "name": "Intercom10", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 450, - 440 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "3a93e3d0-b94e-4987-bf80-b272d9315472" - }, - { - "parameters": { - "operation": "get", - "selectBy": "id", - "value": "={{$node[\"Intercom10\"].json[\"id\"]}}" - }, - "name": "Intercom11", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 600, - 440 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "7442311e-f761-47fb-8008-b884e434acd8" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Intercom12", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 740, - 440 - ], - "alwaysOutputData": true, - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "f82997b8-6501-4e4f-b36f-34571cbb4b84" - }, - { - "parameters": { - "operation": "update", - "value": "={{$node[\"Intercom10\"].json[\"id\"]}}", - "additionalFields": { - "name": "UpdatedUser" - } - }, - "name": "Intercom13", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 900, - 440 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "a11ffecd-9647-4a31-846f-687b1f5146fd" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Intercom10\"].json[\"id\"]}}" - }, - "name": "Intercom14", - "type": "n8n-nodes-base.intercom", - "typeVersion": 1, - "position": [ - 1050, - 440 - ], - "credentials": { - "intercomApi": { - "id": "137", - "name": "Intercom API creds" - } - }, - "id": "300d5a46-b105-4360-80d6-f60f8f4e8e35" - } - ], - "connections": { - "Intercom1": { - "main": [ - [ - { - "node": "Intercom", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom": { - "main": [ - [ - { - "node": "Intercom2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom2": { - "main": [ - [ - { - "node": "Intercom3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom3": { - "main": [ - [ - { - "node": "Intercom4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom5": { - "main": [ - [ - { - "node": "Intercom6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom6": { - "main": [ - [ - { - "node": "Intercom7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom7": { - "main": [ - [ - { - "node": "Intercom8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom8": { - "main": [ - [ - { - "node": "Intercom9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom10": { - "main": [ - [ - { - "node": "Intercom11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom11": { - "main": [ - [ - { - "node": "Intercom12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom12": { - "main": [ - [ - { - "node": "Intercom13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Intercom13": { - "main": [ - [ - { - "node": "Intercom14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Intercom5", - "type": "main", - "index": 0 - }, - { - "node": "Intercom10", - "type": "main", - "index": 0 - }, - { - "node": "Intercom1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/167.json b/test-workflows/workflows/167.json deleted file mode 100644 index 29b37e3458..0000000000 --- a/test-workflows/workflows/167.json +++ /dev/null @@ -1,370 +0,0 @@ -{ - "createdAt": "2021-04-09T18:07:51.949Z", - "updatedAt": "2021-04-09T18:10:34.849Z", - "id": "167", - "name": "FreshDesk:Contact:create get update getAll delete:Ticket:create get getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "30b651f9-2126-4c0c-9574-2c52f2ebddc0" - }, - { - "parameters": { - "resource": "contact", - "name": "=Name{{Date.now()}}", - "email": "=Fake{{Date.now()}}@email.com", - "additionalFields": { - "company_id": 80000582589 - } - }, - "name": "Freshdesk", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "106ad001-92d8-4969-8bbb-44f90f77b2f0" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}" - }, - "name": "Freshdesk1", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "6953c12c-ddce-45c5-89f7-65179a5b8f5a" - }, - { - "parameters": { - "resource": "contact", - "operation": "update", - "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}", - "additionalFields": { - "job_title": "QA", - "tags": [ - "Test" - ] - } - }, - "name": "Freshdesk2", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "b31d99f6-5818-458c-98ca-17ba07e85319" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "filters": { - "email": "={{$node[\"Freshdesk1\"].json[\"email\"]}}" - } - }, - "name": "Freshdesk3", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "67a516db-2f2e-4963-a3e2-e1c692c4d271" - }, - { - "parameters": { - "resource": "contact", - "operation": "delete", - "contactId": "={{$node[\"Freshdesk\"].json[\"id\"]}}" - }, - "name": "Freshdesk4", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1850, - 300 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "f1658504-002f-4bd9-9323-87c9923953e2" - }, - { - "parameters": { - "requesterIdentificationValue": "={{$node[\"Freshdesk\"].json[\"id\"]}}", - "priority": "medium", - "options": { - "agent": 80014216011, - "company": 80000582589, - "description": "Testing Workflow", - "group": 80000368389, - "name": "=TicketTest", - "subject": "Testing ticket creation", - "tags": "test,", - "type": "Question" - } - }, - "name": "Freshdesk5", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1100, - 400 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "6859ca0a-615c-451e-961f-2293fbd40ae0" - }, - { - "parameters": { - "operation": "get", - "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}" - }, - "name": "Freshdesk6", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "b20c4c3a-7bcb-4c22-995e-c4ce5f920c70" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Freshdesk7", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1400, - 400 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "988bd8e4-4b99-4612-b0cf-8e77c652fd4b" - }, - { - "parameters": { - "operation": "update", - "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}", - "updateFields": { - "status": "open", - "tags": "test,updated" - } - }, - "name": "Freshdesk8", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1550, - 400 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "421ede3f-463e-4262-b4a3-7f874e0866c1" - }, - { - "parameters": { - "operation": "delete", - "ticketId": "={{$node[\"Freshdesk5\"].json[\"id\"]}}" - }, - "name": "Freshdesk9", - "type": "n8n-nodes-base.freshdesk", - "typeVersion": 1, - "position": [ - 1700, - 400 - ], - "credentials": { - "freshdeskApi": { - "id": "134", - "name": "Freshdesk API creds" - } - }, - "id": "2a3e7a8e-b5e8-42a4-be76-b97d1c877942" - } - ], - "connections": { - "Freshdesk": { - "main": [ - [ - { - "node": "Freshdesk1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk1": { - "main": [ - [ - { - "node": "Freshdesk2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk2": { - "main": [ - [ - { - "node": "Freshdesk3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk3": { - "main": [ - [ - { - "node": "Freshdesk5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk5": { - "main": [ - [ - { - "node": "Freshdesk6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk6": { - "main": [ - [ - { - "node": "Freshdesk7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk7": { - "main": [ - [ - { - "node": "Freshdesk8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk8": { - "main": [ - [ - { - "node": "Freshdesk9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Freshdesk9": { - "main": [ - [ - { - "node": "Freshdesk4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Freshdesk", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/168.json b/test-workflows/workflows/168.json deleted file mode 100644 index 94307143ad..0000000000 --- a/test-workflows/workflows/168.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "createdAt": "2021-04-13T14:55:34.780Z", - "updatedAt": "2021-05-26T08:10:22.923Z", - "id": "168", - "name": "Demio:Event:getAll get register:Report:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 400, - 480 - ], - "id": "47dbd966-77aa-4bda-96ed-e97f6a5981fd" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Demio", - "type": "n8n-nodes-base.demio", - "typeVersion": 1, - "position": [ - 650, - 420 - ], - "credentials": { - "demioApi": { - "id": "135", - "name": "Demio API creds" - } - }, - "id": "57e082a8-354b-45a4-942d-11f7227fc3ce" - }, - { - "parameters": { - "eventId": "={{$node[\"Demio\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Demio1", - "type": "n8n-nodes-base.demio", - "typeVersion": 1, - "position": [ - 790, - 420 - ], - "credentials": { - "demioApi": { - "id": "135", - "name": "Demio API creds" - } - }, - "id": "1e57d585-0f82-4111-8c63-f5b4e66cef5e" - }, - { - "parameters": { - "operation": "register", - "eventId": "={{$node[\"Demio\"].json[\"id\"]}}", - "firstName": "=Name{{Date.now()}}", - "email": "=Fake{{Date.now()}}@email.com", - "additionalFields": {} - }, - "name": "Demio2", - "type": "n8n-nodes-base.demio", - "typeVersion": 1, - "position": [ - 940, - 420 - ], - "credentials": { - "demioApi": { - "id": "135", - "name": "Demio API creds" - } - }, - "id": "517f9682-cda3-406e-bf92-668fcc9feccb" - }, - { - "parameters": { - "resource": "report", - "eventId": 400538, - "dateId": 1967450, - "filters": {} - }, - "name": "Demio3", - "type": "n8n-nodes-base.demio", - "typeVersion": 1, - "position": [ - 650, - 570 - ], - "credentials": { - "demioApi": { - "id": "135", - "name": "Demio API creds" - } - }, - "id": "3404303d-775a-4445-9458-a77f408726a7" - } - ], - "connections": { - "Demio": { - "main": [ - [ - { - "node": "Demio1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Demio1": { - "main": [ - [ - { - "node": "Demio2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Demio", - "type": "main", - "index": 0 - }, - { - "node": "Demio3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/169.json b/test-workflows/workflows/169.json deleted file mode 100644 index aae1b055c3..0000000000 --- a/test-workflows/workflows/169.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "createdAt": "2021-04-19T08:59:29.617Z", - "updatedAt": "2021-04-19T08:59:29.617Z", - "id": "169", - "name": "Mocean:SMS:send", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "7f66f905-8236-4fe4-922b-8a7ab6921f26" - }, - { - "parameters": { - "from": "Nodeqa", - "to": "21624827732", - "message": "=SMS-TEST-{{Date.now()}}" - }, - "name": "Mocean", - "type": "n8n-nodes-base.mocean", - "typeVersion": 1, - "position": [ - 500, - 200 - ], - "credentials": { - "moceanApi": { - "id": "138", - "name": "Mocean Api creds" - } - }, - "id": "3a8d2f48-5719-466e-95be-21d0c1d84c88" - }, - { - "parameters": { - "resource": "voice", - "from": "Nodeqa", - "to": "21624827732", - "language": "en-GB", - "message": "=SMS{{Date.now()}}" - }, - "name": "Mocean1", - "type": "n8n-nodes-base.mocean", - "typeVersion": 1, - "position": [ - 500, - 350 - ], - "credentials": { - "moceanApi": { - "id": "138", - "name": "Mocean Api creds" - } - }, - "disabled": true, - "id": "2b80cb4d-4dda-4b2b-8c7a-05293a2ae063" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Mocean", - "type": "main", - "index": 0 - }, - { - "node": "Mocean1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/17.json b/test-workflows/workflows/17.json deleted file mode 100644 index dd0ff48469..0000000000 --- a/test-workflows/workflows/17.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "createdAt": "2021-02-16T12:25:56.509Z", - "updatedAt": "2021-02-16T12:26:09.769Z", - "id": "17", - "name": "OpenThesaurus:: Get Synonyms", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d7c16b8e-f8b9-42dc-8c13-b38f754dac42" - }, - { - "parameters": { - "text": "Wasser", - "options": { - "similar": true - } - }, - "name": "OpenThesaurus", - "type": "n8n-nodes-base.openThesaurus", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "id": "54144d68-c88f-447d-8831-72754b58214a" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "OpenThesaurus", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/170.json b/test-workflows/workflows/170.json deleted file mode 100644 index 694bdee929..0000000000 --- a/test-workflows/workflows/170.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "createdAt": "2021-04-19T09:55:16.357Z", - "updatedAt": "2021-05-25T13:38:12.376Z", - "id": "170", - "name": "Xero:Contact:create get getAll update:Invoice:create get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "f0c45c75-abab-4369-b823-165926299d4d" - }, - { - "parameters": { - "resource": "contact", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "name": "=Contact{{Date.now()}}", - "additionalFields": { - "firstName": "=FirstName{{Date.now()}}" - } - }, - "name": "Xero", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 500, - 200 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "bef8a1fb-6608-4881-843a-3f1a0bf6d0df" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "contactId": "={{$node[\"Xero\"].json[\"ContactID\"]}}" - }, - "name": "Xero1", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 650, - 200 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "04550831-0f26-471a-ac9d-4acd8d25e905" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "limit": 1, - "options": { - "orderBy": "UpdatedDateUTC", - "sortOrder": "ASC" - } - }, - "name": "Xero2", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 800, - 200 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "db15691c-4eb1-4ada-81c0-deb62b1ad238" - }, - { - "parameters": { - "resource": "contact", - "operation": "update", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "contactId": "={{$node[\"Xero\"].json[\"ContactID\"]}}", - "updateFields": { - "firstName": "=Updated{{$node[\"Xero1\"].json[\"FirstName\"]}}" - } - }, - "name": "Xero3", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 950, - 200 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "8ca6dfd8-8429-4ae8-809e-7f2167350cf2" - }, - { - "parameters": { - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "type": "ACCPAY", - "contactId": "={{$node[\"Xero1\"].json[\"ContactID\"]}}", - "lineItemsUi": { - "lineItemsValues": [ - { - "description": "Test", - "quantity": 3, - "unitAmount": "10", - "itemCode": "BOOK", - "accountCode": "300", - "taxType": "INPUT", - "taxAmount": "10" - } - ] - }, - "additionalFields": {} - }, - "name": "Xero4", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "fd0adcca-b10b-4ae1-9a24-d088339623f7" - }, - { - "parameters": { - "operation": "get", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "invoiceId": "={{$node[\"Xero4\"].json[\"InvoiceID\"]}}" - }, - "name": "Xero5", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "576e9017-aabf-4651-b653-fa13d56de323" - }, - { - "parameters": { - "operation": "getAll", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "limit": 1, - "options": {} - }, - "name": "Xero6", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 1100, - 350 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "fe2004ce-131e-448a-90c5-8c326a30b2dd" - }, - { - "parameters": { - "operation": "update", - "organizationId": "90ee722a-8780-44f6-8788-e1d6b0bd2aa4", - "invoiceId": "={{$node[\"Xero4\"].json[\"InvoiceID\"]}}", - "updateFields": { - "dueDate": "2021-04-29T22:00:00.000Z", - "status": "SUBMITTED" - } - }, - "name": "Xero7", - "type": "n8n-nodes-base.xero", - "typeVersion": 1, - "position": [ - 1250, - 350 - ], - "credentials": { - "xeroOAuth2Api": { - "id": "139", - "name": "Xero OAuth2 API creds" - } - }, - "id": "1e653ae8-8157-4d05-9dd2-2446a64385d1" - } - ], - "connections": { - "Xero": { - "main": [ - [ - { - "node": "Xero1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Xero1": { - "main": [ - [ - { - "node": "Xero2", - "type": "main", - "index": 0 - }, - { - "node": "Xero4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Xero2": { - "main": [ - [ - { - "node": "Xero3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Xero4": { - "main": [ - [ - { - "node": "Xero5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Xero5": { - "main": [ - [ - { - "node": "Xero6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Xero6": { - "main": [ - [ - { - "node": "Xero7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Xero", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/171.json b/test-workflows/workflows/171.json deleted file mode 100644 index 809c936f9c..0000000000 --- a/test-workflows/workflows/171.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "createdAt": "2021-04-19T10:15:58.189Z", - "updatedAt": "2021-06-04T14:55:29.008Z", - "id": "171", - "name": "Stackby:append read list delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "570ac713-7639-4d31-aed5-d813b6cb3f32" - }, - { - "parameters": { - "stackId": "stOgji6AOGIluLfusu", - "table": "TestTable", - "columns": "id,name" - }, - "name": "Stackby", - "type": "n8n-nodes-base.stackby", - "typeVersion": 1, - "position": [ - 570, - 300 - ], - "credentials": { - "stackbyApi": { - "id": "140", - "name": "Stackby API creds" - } - }, - "id": "c5684dac-5284-4aee-ac91-fbf9cd9f0ee6" - }, - { - "parameters": { - "values": { - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*1000)}}" - } - ], - "string": [ - { - "name": "name", - "value": "=Test{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "31ebc435-4f59-42a7-813d-6d98eb59449e" - }, - { - "parameters": { - "operation": "read", - "stackId": "stOgji6AOGIluLfusu", - "table": "TestTable", - "id": "={{$node[\"Stackby\"].json[\"rowId\"]}}" - }, - "name": "Stackby1", - "type": "n8n-nodes-base.stackby", - "typeVersion": 1, - "position": [ - 720, - 300 - ], - "credentials": { - "stackbyApi": { - "id": "140", - "name": "Stackby API creds" - } - }, - "id": "d78e9f09-6930-46d9-919b-80bfaeeac953" - }, - { - "parameters": { - "operation": "list", - "stackId": "stOgji6AOGIluLfusu", - "table": "TestTable", - "additionalFields": { - "view": "" - } - }, - "name": "Stackby2", - "type": "n8n-nodes-base.stackby", - "typeVersion": 1, - "position": [ - 880, - 300 - ], - "credentials": { - "stackbyApi": { - "id": "140", - "name": "Stackby API creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "e94a8735-e82b-4388-8020-925e6e549c1b" - }, - { - "parameters": { - "operation": "delete", - "stackId": "stOgji6AOGIluLfusu", - "table": "TestTable", - "id": "={{$node[\"Stackby\"].json[\"rowId\"]}}" - }, - "name": "Stackby3", - "type": "n8n-nodes-base.stackby", - "typeVersion": 1, - "position": [ - 1030, - 300 - ], - "executeOnce": true, - "credentials": { - "stackbyApi": { - "id": "140", - "name": "Stackby API creds" - } - }, - "id": "18174a44-9f60-4a2b-9635-1f5f5eb579c7" - } - ], - "connections": { - "Stackby": { - "main": [ - [ - { - "node": "Stackby1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Stackby", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Stackby1": { - "main": [ - [ - { - "node": "Stackby2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Stackby2": { - "main": [ - [ - { - "node": "Stackby3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/172.json b/test-workflows/workflows/172.json deleted file mode 100644 index cdc931c78f..0000000000 --- a/test-workflows/workflows/172.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "createdAt": "2021-04-19T13:01:49.487Z", - "updatedAt": "2021-06-08T09:29:29.798Z", - "id": "172", - "name": "Paypal:Payout:create get:PayoutItem:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c685e7cb-90e2-42d3-87d4-c8f8143c5a8c" - }, - { - "parameters": { - "senderBatchId": "={{Date.now()}}", - "itemsUi": { - "itemsValues": [ - { - "receiverValue": "sb-0ci8p5941871@business.example.com", - "amount": "20" - } - ] - }, - "additionalFields": {} - }, - "name": "PayPal", - "type": "n8n-nodes-base.payPal", - "typeVersion": 1, - "position": [ - 450, - 200 - ], - "credentials": { - "payPalApi": { - "id": "141", - "name": "PayPal API creds" - } - }, - "id": "31bf4a9b-bc38-4b63-9990-4f08db26a285" - }, - { - "parameters": { - "operation": "get", - "payoutBatchId": "={{$node[\"PayPal\"].json[\"batch_header\"][\"payout_batch_id\"]}}", - "limit": 1 - }, - "name": "PayPal1", - "type": "n8n-nodes-base.payPal", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "credentials": { - "payPalApi": { - "id": "141", - "name": "PayPal API creds" - } - }, - "notes": "IGNORED_PROPERTIES=errors", - "id": "d2fdb861-6f84-4ee1-86a4-a5b8c81b0656" - }, - { - "parameters": { - "resource": "payoutItem", - "payoutItemId": "={{$node[\"PayPal1\"].json[\"payout_item_id\"]}}" - }, - "name": "PayPal2", - "type": "n8n-nodes-base.payPal", - "typeVersion": 1, - "position": [ - 750, - 250 - ], - "credentials": { - "payPalApi": { - "id": "141", - "name": "PayPal API creds" - } - }, - "notes": "IGNORED_PROPERTIES=errors", - "id": "0ef6ac4c-4aa1-4cb1-a4f7-3feb6a17208e" - }, - { - "parameters": { - "resource": "payoutItem", - "operation": "cancel", - "payoutItemId": "={{$node[\"PayPal1\"].json[\"payout_item_id\"]}}" - }, - "name": "PayPal3", - "type": "n8n-nodes-base.payPal", - "typeVersion": 1, - "position": [ - 900, - 250 - ], - "credentials": { - "payPalApi": { - "id": "141", - "name": "PayPal API creds" - } - }, - "disabled": true, - "id": "bec01033-9ce1-4789-9115-7f07991ac6b1" - } - ], - "connections": { - "PayPal": { - "main": [ - [ - { - "node": "PayPal1", - "type": "main", - "index": 0 - } - ] - ] - }, - "PayPal1": { - "main": [ - [ - { - "node": "PayPal2", - "type": "main", - "index": 0 - } - ] - ] - }, - "PayPal2": { - "main": [ - [ - { - "node": "PayPal3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "PayPal", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/173.json b/test-workflows/workflows/173.json deleted file mode 100644 index c8b043a2bf..0000000000 --- a/test-workflows/workflows/173.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "createdAt": "2021-04-19T15:04:14.654Z", - "updatedAt": "2021-04-20T08:10:42.292Z", - "id": "173", - "name": "GetResponse:Contact:create getAll get update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "5651ff0c-3724-4194-8070-66f3737a0762" - }, - { - "parameters": { - "operation": "create", - "email": "=fake{{Date.now()}}@email.com", - "campaignId": "MHDjt", - "additionalFields": { - "name": "=Name{{Date.now()}}" - } - }, - "name": "GetResponse", - "type": "n8n-nodes-base.getResponse", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "getResponseApi": { - "id": "143", - "name": "GetResponse API creds" - } - }, - "id": "a3fa00e2-6539-4066-ac49-a6e2561397a9" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": { - "sortBy": "createdOn", - "sortOrder": "DESC" - } - }, - "name": "GetResponse1", - "type": "n8n-nodes-base.getResponse", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "getResponseApi": { - "id": "143", - "name": "GetResponse API creds" - } - }, - "id": "6abe5d00-d52a-4624-a45b-e7508bdc8cbc" - }, - { - "parameters": { - "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", - "options": {} - }, - "name": "GetResponse2", - "type": "n8n-nodes-base.getResponse", - "typeVersion": 1, - "position": [ - 1100, - 300 - ], - "credentials": { - "getResponseApi": { - "id": "143", - "name": "GetResponse API creds" - } - }, - "id": "f6ac6160-9cf1-4f5f-88e9-6c1fee5328bd" - }, - { - "parameters": { - "operation": "update", - "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", - "updateFields": { - "email": "=Updated{{$node[\"GetResponse1\"].json[\"email\"]}}", - "name": "=Updated{{$node[\"GetResponse1\"].json[\"name\"]}}" - } - }, - "name": "GetResponse3", - "type": "n8n-nodes-base.getResponse", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "getResponseApi": { - "id": "143", - "name": "GetResponse API creds" - } - }, - "id": "af223c10-9e82-4e4f-b4a2-fbcb87e3a81f" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"GetResponse1\"].json[\"contactId\"]}}", - "options": {} - }, - "name": "GetResponse4", - "type": "n8n-nodes-base.getResponse", - "typeVersion": 1, - "position": [ - 1500, - 300 - ], - "credentials": { - "getResponseApi": { - "id": "143", - "name": "GetResponse API creds" - } - }, - "id": "85f302a7-b522-4e38-a88a-07e0705f0711" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 1 second", - "type": "n8n-nodes-base.function", - "position": [ - 700, - 300 - ], - "typeVersion": 1, - "id": "994c0e7a-3a6d-4cdd-8fa6-f62d67f15a70" - } - ], - "connections": { - "GetResponse1": { - "main": [ - [ - { - "node": "GetResponse2", - "type": "main", - "index": 0 - } - ] - ] - }, - "GetResponse2": { - "main": [ - [ - { - "node": "GetResponse3", - "type": "main", - "index": 0 - } - ] - ] - }, - "GetResponse3": { - "main": [ - [ - { - "node": "GetResponse4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "GetResponse", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 1 second": { - "main": [ - [ - { - "node": "GetResponse1", - "type": "main", - "index": 0 - } - ] - ] - }, - "GetResponse": { - "main": [ - [ - { - "node": "Sleep 1 second", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/174.json b/test-workflows/workflows/174.json deleted file mode 100644 index 312e667428..0000000000 --- a/test-workflows/workflows/174.json +++ /dev/null @@ -1,337 +0,0 @@ -{ - "createdAt": "2021-04-20T08:36:34.927Z", - "updatedAt": "2021-04-20T08:36:34.927Z", - "id": "174", - "name": "Vero:User:create alias addTags removeTags unsubscribe resubscribe delete:Event:track", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b7de37cc-c85a-4eac-beec-1f0c1ea5190a" - }, - { - "parameters": { - "id": "={{$node[\"Set id & email\"].json[\"id\"]}}", - "additionalFields": { - "email": "={{$node[\"Set id & email\"].json[\"email\"]}}" - }, - "dataAttributesUi": { - "dataAttributesValues": [] - } - }, - "name": "Vero", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "d27a15f1-3855-42b0-b3d9-bca97501ed10" - }, - { - "parameters": { - "operation": "alias", - "id": "={{$node[\"Set id & email\"].json[\"id\"]}}", - "newId": "={{$node[\"Set id & email\"].json[\"email\"]}}" - }, - "name": "Vero1", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "ea140d44-f58b-4d57-9ac3-5bf93cddbe93" - }, - { - "parameters": { - "operation": "addTags", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", - "tags": "TEST," - }, - "name": "Vero2", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "903d206c-c3c4-4d20-81b7-a6ea73aeaebf" - }, - { - "parameters": { - "operation": "removeTags", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", - "tags": "TEST," - }, - "name": "Vero3", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "1e426c6f-88d4-4c23-8c01-9ffcca7bed76" - }, - { - "parameters": { - "operation": "unsubscribe", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" - }, - "name": "Vero4", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "a92a41ef-d98b-4ff8-931d-d2488777ecf8" - }, - { - "parameters": { - "operation": "resubscribe", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" - }, - "name": "Vero5", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "629e08e8-9f31-4824-afc1-f09c7fbfdf1a" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}" - }, - "name": "Vero6", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 1600, - 300 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "5da2dd1f-d40e-490c-bb38-9adaf10ebc92" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "string": [ - { - "name": "email", - "value": "=fake{{Date.now()}}@email.com" - } - ], - "number": [ - { - "name": "id", - "value": "={{Math.round(Math.random()*1000)}}" - } - ] - }, - "options": {} - }, - "name": "Set id & email", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "76d32334-89e0-4fc0-aa81-e56eaeb206c2" - }, - { - "parameters": { - "resource": "event", - "id": "={{$node[\"Set id & email\"].json[\"email\"]}}", - "email": "={{$node[\"Set id & email\"].json[\"email\"]}}", - "eventName": "=Event{{Date.now()}}", - "dataAttributesUi": { - "dataAttributesValues": [ - { - "key": "Type", - "value": "Test" - } - ] - }, - "extraAttributesUi": { - "extraAttributesValues": [] - } - }, - "name": "Vero7", - "type": "n8n-nodes-base.vero", - "typeVersion": 1, - "position": [ - 1450, - 400 - ], - "credentials": { - "veroApi": { - "id": "144", - "name": "Vero API creds" - } - }, - "id": "89b0e1de-a2b6-4f67-a63b-1d7dafdba2c2" - } - ], - "connections": { - "Vero1": { - "main": [ - [ - { - "node": "Vero2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set id & email", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero": { - "main": [ - [ - { - "node": "Vero1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero2": { - "main": [ - [ - { - "node": "Vero3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero3": { - "main": [ - [ - { - "node": "Vero4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero4": { - "main": [ - [ - { - "node": "Vero5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero5": { - "main": [ - [ - { - "node": "Vero7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set id & email": { - "main": [ - [ - { - "node": "Vero", - "type": "main", - "index": 0 - } - ] - ] - }, - "Vero7": { - "main": [ - [ - { - "node": "Vero6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/176.json b/test-workflows/workflows/176.json deleted file mode 100644 index eb84f56ca3..0000000000 --- a/test-workflows/workflows/176.json +++ /dev/null @@ -1,1192 +0,0 @@ -{ - "createdAt": "2021-04-20T13:25:03.086Z", - "updatedAt": "2021-04-20T15:03:32.741Z", - "id": "176", - "name": "uProc:Audio:*:company:*;", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d0c17f4b-8961-440e-a16c-c2b24573ded4" - }, - { - "parameters": { - "group": "audio", - "text": "n8n rocks!", - "gender": "female", - "language": "american", - "additionalOptions": {} - }, - "name": "uProc", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 560, - 200 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "93760945-e663-434d-929b-bde008a9048d" - }, - { - "parameters": { - "group": "audio", - "tool": "getAudioSpeechByText", - "text": "n8n rocks!", - "gender": "female", - "language": "american", - "additionalOptions": {} - }, - "name": "uProc1", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 740, - 200 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "048ecc11-0c05-474f-b05c-758e4ed5debb" - }, - { - "parameters": { - "group": "company", - "tool": "getCifNormalized", - "cif": "B 12345 678", - "additionalOptions": {} - }, - "name": "uProc10", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 560, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a6e61a99-e759-45ce-9564-c07e9edd4ff9" - }, - { - "parameters": { - "group": "company", - "cif": "B 12345 678", - "additionalOptions": {} - }, - "name": "uProc11", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 690, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "3176fdab-d652-4402-883f-eb3b49173235" - }, - { - "parameters": { - "group": "company", - "tool": "checkNumberIsin", - "isin": "US0004026250", - "additionalOptions": {} - }, - "name": "uProc12", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 820, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "e015d1d9-aa1e-49e5-823c-9e6372d316ec" - }, - { - "parameters": { - "group": "company", - "tool": "checkNumberSsEs", - "number": "998239812282", - "additionalOptions": {} - }, - "name": "uProc13", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "90bde607-e419-4547-b8e2-e96a181dd152" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByCif", - "cif": "B 12345 678", - "additionalOptions": {} - }, - "name": "uProc14", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1080, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d4ad8ce2-d306-432d-a6de-a82826964eda" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc15", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1210, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d2852025-5de5-41fa-9f29-d9783cb3ec9d" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByDuns", - "duns": "150483782", - "additionalOptions": {} - }, - "name": "uProc16", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1340, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "88e58d49-0c18-42e4-84bf-d9752cf74fa7" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByEmail", - "email": "hello@n8n.io", - "additionalOptions": {} - }, - "name": "uProc17", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1470, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "74543b06-f296-417a-a9cb-cf5c9aeb8bf4" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc18", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1600, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "6cbbc927-2cef-4688-9824-50e15a2ab433" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByName", - "country": "DE", - "name": "n8n", - "additionalOptions": {} - }, - "name": "uProc19", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1730, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "b9198acf-94fb-4d58-81f6-9713d3588e64" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByPhone", - "phone": "932187670", - "additionalOptions": {} - }, - "name": "uProc20", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1860, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "2862f234-cc12-4df0-b994-26d38ee16414" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyByProfile", - "url": "https://twitter.com/n8n_io", - "additionalOptions": {} - }, - "name": "uProc21", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1990, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "b6c61930-8b49-4c7d-8831-93722da0f894" - }, - { - "parameters": { - "group": "company", - "tool": "getRoleClassified", - "role": "Junior web developer", - "additionalOptions": {} - }, - "name": "uProc22", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2120, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d051cee8-5bca-4c2a-b945-95cbf54a08b4" - }, - { - "parameters": { - "group": "company", - "tool": "checkCompanyDebtorByTaxid", - "taxid": "B12345678", - "additionalOptions": {} - }, - "name": "uProc23", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2250, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "421b79d2-8337-41f9-9f3b-e44d49040cb3" - }, - { - "parameters": { - "group": "company", - "tool": "getPersonDecisionMaker", - "company": "n8n.io", - "area": "Engineering", - "additionalOptions": {} - }, - "name": "uProc24", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2380, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "1e955a1c-eb87-4c24-af10-8f5bfc0728dd" - }, - { - "parameters": { - "group": "company", - "tool": "getPersonDecisionMakerBySearch", - "company": "n8n.io", - "area": "Product", - "clevel": "No", - "additionalOptions": {} - }, - "name": "uProc25", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2510, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d288cae2-b1d9-46e7-a4f2-339fc7a8fab1" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyDomainByName", - "name": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc26", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2640, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "896d6a19-4717-4e1e-9380-b7fa88e05a3b" - }, - { - "parameters": { - "group": "company", - "tool": "getPersonEmailsByDomainAndArea", - "domain": "n8n.io", - "area": "Engineering", - "additionalOptions": {} - }, - "name": "uProc27", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2770, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "c5b64761-444e-4ee1-8289-b3e3805b071d" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyExtendedByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc28", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2900, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "01cb8555-31bc-49ec-82a2-36b24bb48873" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyExtendedByEmail", - "email": "hello@n8n.io", - "additionalOptions": {} - }, - "name": "uProc29", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3030, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a801f605-1677-443b-8c86-fe636414c2ab" - }, - { - "parameters": { - "group": "company", - "tool": "getProfileFacebookByCompany", - "company": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc30", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3160, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a0f7131d-c121-4eb2-b6f5-bf72e3af23c0" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyFinancialByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc31", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3290, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "1b027a55-7122-4a63-8364-9dd7176f9672" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyFinancialByDuns", - "duns": "150483782", - "additionalOptions": {} - }, - "name": "uProc32", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3420, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "b046e6e6-34c2-4b91-ab6b-0f69905f85ce" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyFinancialByName", - "name": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc33", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3550, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a01a0c27-1386-45a7-a86e-8e118bf5d327" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyFinancialByTaxid", - "taxid": "B12345678", - "additionalOptions": {} - }, - "name": "uProc34", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3680, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "60c8d394-358a-47e1-9a2c-dd11553737a0" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyGeocodedByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc35", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3810, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a4efe1ed-b5da-4185-99e0-840da0544e4f" - }, - { - "parameters": { - "group": "company", - "tool": "getProfileLinkedinByCompany", - "company": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc36", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3940, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ad662983-c0b8-4650-9577-dd23ac9b3db7" - }, - { - "parameters": { - "group": "company", - "tool": "getPersonListByParams", - "country": "DE", - "phone": "932187670", - "email": "hello@n8n.io", - "company": "n8n.io", - "area": "Information technology", - "seniority": "Intermediate", - "additionalOptions": {} - }, - "name": "uProc37", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4070, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "aaaa41b2-d90e-4cb4-8083-87cd7bdcaf69" - }, - { - "parameters": { - "group": "company", - "tool": "getPersonMultipleDecisionMakerBySearch", - "company": "n8n.io", - "area": "Information technology", - "clevel": "No", - "additionalOptions": {} - }, - "name": "uProc38", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4200, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ba76171b-5070-4938-9e9d-923121f1c45a" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyNameByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc39", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4330, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d76f3d0a-9a82-4d93-a783-8f793c412c94" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyPhoneByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc40", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4460, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "f53778bf-935f-4f49-9281-552993ae1429" - }, - { - "parameters": { - "group": "company", - "tool": "getCompanyPhoneByName", - "name": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc41", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4590, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ab0ec7c3-397d-44de-b082-33e244ba1272" - }, - { - "parameters": { - "group": "company", - "tool": "getProfileTwitterByCompany", - "company": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc42", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 4720, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "bbe5a143-20db-49b7-a9ac-8600a895b74d" - } - ], - "connections": { - "uProc": { - "main": [ - [ - { - "node": "uProc1", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc10": { - "main": [ - [ - { - "node": "uProc11", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc11": { - "main": [ - [ - { - "node": "uProc12", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc12": { - "main": [ - [ - { - "node": "uProc13", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc13": { - "main": [ - [ - { - "node": "uProc14", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc14": { - "main": [ - [ - { - "node": "uProc15", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc15": { - "main": [ - [ - { - "node": "uProc16", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc16": { - "main": [ - [ - { - "node": "uProc17", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc17": { - "main": [ - [ - { - "node": "uProc18", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc18": { - "main": [ - [ - { - "node": "uProc19", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc19": { - "main": [ - [ - { - "node": "uProc20", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc20": { - "main": [ - [ - { - "node": "uProc21", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc21": { - "main": [ - [ - { - "node": "uProc22", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc22": { - "main": [ - [ - { - "node": "uProc23", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc23": { - "main": [ - [ - { - "node": "uProc24", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc24": { - "main": [ - [ - { - "node": "uProc25", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc25": { - "main": [ - [ - { - "node": "uProc26", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc26": { - "main": [ - [ - { - "node": "uProc27", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc27": { - "main": [ - [ - { - "node": "uProc28", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc28": { - "main": [ - [ - { - "node": "uProc29", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc29": { - "main": [ - [ - { - "node": "uProc30", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc30": { - "main": [ - [ - { - "node": "uProc31", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc31": { - "main": [ - [ - { - "node": "uProc32", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc32": { - "main": [ - [ - { - "node": "uProc33", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc33": { - "main": [ - [ - { - "node": "uProc34", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc34": { - "main": [ - [ - { - "node": "uProc35", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc35": { - "main": [ - [ - { - "node": "uProc36", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc36": { - "main": [ - [ - { - "node": "uProc37", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc37": { - "main": [ - [ - { - "node": "uProc38", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc38": { - "main": [ - [ - { - "node": "uProc39", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc39": { - "main": [ - [ - { - "node": "uProc40", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc40": { - "main": [ - [ - { - "node": "uProc41", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc41": { - "main": [ - [ - { - "node": "uProc42", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "uProc", - "type": "main", - "index": 0 - }, - { - "node": "uProc10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/177.json b/test-workflows/workflows/177.json deleted file mode 100644 index 18571c297e..0000000000 --- a/test-workflows/workflows/177.json +++ /dev/null @@ -1,825 +0,0 @@ -{ - "createdAt": "2021-04-20T15:07:09.205Z", - "updatedAt": "2021-04-20T15:15:49.518Z", - "id": "177", - "name": "uProc:Finance:*;", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "6b5f7fea-a0f3-445b-8366-b6631683411e" - }, - { - "parameters": { - "group": "finance", - "tool": "checkCreditcardChecksum", - "credit_card": "5564456122310619", - "additionalOptions": {} - }, - "name": "uProc1", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 510, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "74ad2ff7-afc0-4327-9fad-600cb2675d92" - }, - { - "parameters": { - "group": "finance", - "tool": "getCreditcardType", - "credit_card": "5564456122310619", - "additionalOptions": {} - }, - "name": "uProc2", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 640, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "47cd053a-0375-4e02-944e-57ca74d30b3a" - }, - { - "parameters": { - "group": "finance", - "tool": "checkBankAccountValidEs", - "account": "5564456122310619", - "additionalOptions": {} - }, - "name": "uProc3", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 770, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "25a3db7b-f396-4cc4-bb1c-2d95c72a3e70" - }, - { - "parameters": { - "group": "finance", - "bic": "AYGBESMM", - "additionalOptions": {} - }, - "name": "uProc4", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 900, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a96d6b7d-de57-4b0f-9451-da49bcad0023" - }, - { - "parameters": { - "group": "finance", - "tool": "getBankIbanByAccount", - "account": "9121000418450200051332M", - "isocode": "ES", - "additionalOptions": {} - }, - "name": "uProc5", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1030, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "48f91455-d72d-404f-8edb-a3113272a656" - }, - { - "parameters": { - "group": "finance", - "tool": "getBankIbanLookup", - "iban": "ES9121000418450200051332M", - "additionalOptions": {} - }, - "name": "uProc6", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1160, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "2926e714-090d-4605-ad8a-a3fc6299d953" - }, - { - "parameters": { - "group": "finance", - "tool": "checkBankIbanValid", - "iban": "ES9121000418450200051332M", - "additionalOptions": {} - }, - "name": "uProc7", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1290, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "851c69bb-ca48-4be7-a536-00de1d6e1705" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyByCountry", - "country": "ES", - "additionalOptions": {} - }, - "name": "uProc8", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1420, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "0783831e-2de6-429b-8b65-0a891c43c524" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyByCountryIsocode", - "country_code": "ES", - "additionalOptions": {} - }, - "name": "uProc9", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1550, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "b34da6a8-3825-4d75-bb7f-33f2777bd05e" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc10", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1680, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a6d4a2b4-16bc-44d6-8f62-289fe44e3150" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyByIsocode", - "isocode": "ES", - "additionalOptions": {} - }, - "name": "uProc11", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1810, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "df8e1a41-aee5-45b2-96ce-743a871263e9" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyConvertedBetweenIsocodeDate", - "date": "104.21.37.3", - "amount": "10", - "isocode1": "EUR", - "isocode2": "JPY", - "additionalOptions": {} - }, - "name": "uProc12", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1940, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "1be97cfc-7d88-4308-8fcc-bf089c1a89a9" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyListByCountry", - "additionalOptions": {} - }, - "name": "uProc13", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2070, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "07c56b1c-ec2d-4041-96bb-976c33920f95" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyListByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc14", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2200, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "e8d0f97f-9d56-412c-9a05-0ba48a923a76" - }, - { - "parameters": { - "group": "finance", - "tool": "getCurrencyListByIsocode", - "isocode": "DE", - "additionalOptions": {} - }, - "name": "uProc15", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2330, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "804d201d-919c-4464-8280-49fd0c6126ca" - }, - { - "parameters": { - "group": "finance", - "tool": "checkCurrencyValidIso", - "isocode": "DE", - "additionalOptions": {} - }, - "name": "uProc16", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2460, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "dff16814-7b04-4e4c-82f4-a480686e490e" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByAddress", - "address": "10115, Berlin, Germany", - "additionalOptions": {} - }, - "name": "uProc17", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2590, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "919c88b5-7079-46c4-9c7a-e5c7e29adcce" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByCoordinates", - "coordinates": "52.52986092913615, 13.389315284523297", - "additionalOptions": {} - }, - "name": "uProc18", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2720, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "e93ca526-f829-4793-a05a-9ecab9b45b78" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc19", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2850, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "c90211c8-5e05-4f0b-bd91-fef5d2d51e3a" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByIsocode", - "isocode": "DE", - "additionalOptions": {} - }, - "name": "uProc20", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2980, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "c5be744b-9203-4e74-9626-37afc39a1577" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByNumber", - "isocode": "DE", - "tin": "44016116G", - "additionalOptions": {} - }, - "name": "uProc21", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3110, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "9a011b5c-ef1a-4b51-bb7a-6a2458116342" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByPhone", - "phone": "932187670", - "additionalOptions": {} - }, - "name": "uProc22", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3240, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "094bb0ed-9abf-47e1-8c35-dcb30e1c966a" - }, - { - "parameters": { - "group": "finance", - "tool": "getVatByZipcode", - "zipcode": "10115", - "additionalOptions": {} - }, - "name": "uProc23", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3370, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "644bf7bc-3fdf-4e27-91ea-8bbd7912a79c" - }, - { - "parameters": { - "group": "finance", - "tool": "checkVatExist", - "isocode": "ES", - "tin": "44016116G", - "additionalOptions": {} - }, - "name": "uProc24", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3500, - 290 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "8d9a2640-f227-4184-8563-16a2054a5992" - } - ], - "connections": { - "uProc1": { - "main": [ - [ - { - "node": "uProc2", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc2": { - "main": [ - [ - { - "node": "uProc3", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc3": { - "main": [ - [ - { - "node": "uProc4", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc4": { - "main": [ - [ - { - "node": "uProc5", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc5": { - "main": [ - [ - { - "node": "uProc6", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc6": { - "main": [ - [ - { - "node": "uProc7", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc7": { - "main": [ - [ - { - "node": "uProc8", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc8": { - "main": [ - [ - { - "node": "uProc9", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc9": { - "main": [ - [ - { - "node": "uProc10", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc10": { - "main": [ - [ - { - "node": "uProc11", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc11": { - "main": [ - [ - { - "node": "uProc12", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc12": { - "main": [ - [ - { - "node": "uProc13", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc13": { - "main": [ - [ - { - "node": "uProc14", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc14": { - "main": [ - [ - { - "node": "uProc15", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc15": { - "main": [ - [ - { - "node": "uProc16", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc16": { - "main": [ - [ - { - "node": "uProc17", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc17": { - "main": [ - [ - { - "node": "uProc18", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc18": { - "main": [ - [ - { - "node": "uProc19", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc19": { - "main": [ - [ - { - "node": "uProc20", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc20": { - "main": [ - [ - { - "node": "uProc21", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc21": { - "main": [ - [ - { - "node": "uProc22", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc22": { - "main": [ - [ - { - "node": "uProc23", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc23": { - "main": [ - [ - { - "node": "uProc24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "uProc1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/179.json b/test-workflows/workflows/179.json deleted file mode 100644 index 85c584b294..0000000000 --- a/test-workflows/workflows/179.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "createdAt": "2021-04-21T07:53:05.959Z", - "updatedAt": "2021-04-21T07:53:05.959Z", - "id": "179", - "name": "uProc:Image:*:Security:*;", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "ea22a2a9-c7b7-4e4c-b89a-d123c4de7c63" - }, - { - "parameters": { - "group": "security", - "tool": "checkNumberUuid", - "uuid": "0c6a1543-6232-49d2-b50d-c1e70cd015a0", - "additionalOptions": {} - }, - "name": "uProc1", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 450, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "cd9469be-7495-4963-9e72-2946c8c9026b" - }, - { - "parameters": { - "group": "security", - "tool": "getDomainBlacklists", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc2", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 580, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "65d979d4-1b48-4e05-81ec-003ca73360ec" - }, - { - "parameters": { - "group": "security", - "tool": "getIpBlacklists", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc3", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 710, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a93216f3-6d7e-4e8e-808f-2a9781cd54d1" - }, - { - "parameters": { - "group": "security", - "luhn": "79927398713", - "additionalOptions": {} - }, - "name": "uProc4", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 840, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "c850df47-d882-4253-9912-87781ce9cca5" - }, - { - "parameters": { - "group": "security", - "tool": "checkPasswordStrong", - "password": "randompassword", - "additionalOptions": {} - }, - "name": "uProc5", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 970, - 350 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "13527442-5599-40a4-aa97-69e88fc71dac" - }, - { - "parameters": { - "group": "image", - "tool": "getBarcodeEncoded", - "text": "n8n rocks!", - "bcid": "auspost", - "additionalOptions": {} - }, - "name": "uProc", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "826bf485-a60a-4835-8290-1259daf44305" - }, - { - "parameters": { - "group": "image", - "tool": "getImageExif", - "url": "https://n8n.io/_nuxt/img/df5be1c.png", - "additionalOptions": {} - }, - "name": "uProc8", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 840, - 150 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "dcf2a843-5f5f-4f9f-ba27-1aaa9486dd58" - }, - { - "parameters": { - "group": "image", - "tool": "getImageWithText", - "text": "n8n rocks!", - "url": "https://n8n.io/_nuxt/img/df5be1c.png", - "size": "72", - "additionalOptions": {} - }, - "name": "uProc9", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 970, - 150 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "5a42b133-730f-4288-aed9-8ef6ab9f9579" - }, - { - "parameters": { - "group": "image", - "tool": "getDomainLogo", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc10", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 580, - 150 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "5a1a3be9-b954-4cab-8adc-a82fa4156780" - }, - { - "parameters": { - "group": "image", - "tool": "getUrlScreenshot", - "url": "n8n.io", - "useragent": "n8n-agent", - "width": "160", - "fullpage": "no", - "additionalOptions": {} - }, - "name": "uProc11", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 710, - 150 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "65aa976a-1b8b-4ddf-bab6-f3308221ade0" - } - ], - "connections": { - "uProc1": { - "main": [ - [ - { - "node": "uProc2", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc2": { - "main": [ - [ - { - "node": "uProc3", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc3": { - "main": [ - [ - { - "node": "uProc4", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc4": { - "main": [ - [ - { - "node": "uProc5", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc": { - "main": [ - [ - { - "node": "uProc10", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc8": { - "main": [ - [ - { - "node": "uProc9", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc9": { - "main": [ - [] - ] - }, - "uProc10": { - "main": [ - [ - { - "node": "uProc11", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc11": { - "main": [ - [ - { - "node": "uProc8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "uProc", - "type": "main", - "index": 0 - }, - { - "node": "uProc1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/180.json b/test-workflows/workflows/180.json deleted file mode 100644 index 0bdddaced5..0000000000 --- a/test-workflows/workflows/180.json +++ /dev/null @@ -1,1351 +0,0 @@ -{ - "createdAt": "2021-04-21T08:02:44.895Z", - "updatedAt": "2021-04-21T08:23:47.669Z", - "id": "180", - "name": "uProc:Internet:*;", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "471ee767-0f84-4092-8848-b32bfa27c904" - }, - { - "parameters": { - "group": "internet", - "tool": "getDeviceByUa", - "useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "additionalOptions": {} - }, - "name": "uProc1", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 420, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "225c9e0c-c8df-4a5c-99c1-ab87c07c5747" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlByDomain", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc2", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "d05ce8e6-52bc-4cdf-8ca9-8e736dab51e7" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainByIp", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc3", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 680, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ec459164-9037-4974-86db-51572db34457" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainByUrl", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc4", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 810, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "de574cfe-b7b8-4d7e-bf9d-874994cd72a1" - }, - { - "parameters": { - "group": "internet", - "tool": "checkDomainCertificate", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc5", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 940, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "6a965548-4b41-4ec7-a171-b808fa56f874" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainCertificate", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc6", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1070, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "8c1aa668-7b5d-43cd-aa59-9c9fc7734514" - }, - { - "parameters": { - "group": "internet", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc7", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "221ef5e2-caf2-4454-b3e9-82f7741e1fe7" - }, - { - "parameters": { - "group": "internet", - "tool": "checkDomainFormat", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc8", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1330, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "3c2fbae3-b5d5-4a07-9d07-9dc12e18b96d" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainIsp", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc9", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1460, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "a05ff442-89be-4566-8ab4-a0a6be404b8c" - }, - { - "parameters": { - "group": "internet", - "tool": "checkDomainMx", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc10", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1590, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "28f8de7b-97db-4ba4-ae60-d7715a47b433" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlPdf", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc11", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1720, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "866ba0e4-3011-4c2a-aab6-dedd534b0ccf" - }, - { - "parameters": { - "group": "internet", - "tool": "checkDomainRecord", - "domain": "n8n.io", - "type": "NS", - "additionalOptions": {} - }, - "name": "uProc12", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1850, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "edd0634b-e73d-4b56-ac05-2ebc2986af7c" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainRecord", - "domain": "n8n.io", - "type": "NS", - "additionalOptions": {} - }, - "name": "uProc13", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1980, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "97d92f60-cf96-4f11-88c6-5f0c13466cc8" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainRecords", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc14", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2110, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "2b48dcec-a2bc-422f-bd74-60e237726f93" - }, - { - "parameters": { - "group": "internet", - "tool": "checkDomainReverse", - "ip": "104.21.37.3", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc15", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2240, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "25a7db94-89db-4c44-b5ea-610921ea78c5" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainReverseIp", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc16", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2370, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "4dcf45b3-9786-4c41-9b5a-be82a46927b1" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlShareableLinks", - "text": "n8n rocks!", - "url": "https://n8n.io/", - "additionalOptions": {} - }, - "name": "uProc17", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2500, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "bc8d869f-0f74-40aa-ad4f-a602e6703526" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainTechnologies", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc18", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2630, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "c19223f4-34f6-4fc0-8580-a706d079a0ff" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlTechnologies", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc19", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2760, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "cd0c931e-5ced-4300-8d38-4c6b13d7f9d7" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainVisits", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc20", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2890, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "e63b384c-db6c-4f60-867a-e0b1c185e13d" - }, - { - "parameters": { - "group": "internet", - "tool": "getDomainWhois", - "domain": "n8n.io", - "additionalOptions": {} - }, - "name": "uProc21", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 3020, - 300 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "111d4ba6-cdb8-4879-94db-b26f52a0a8fd" - }, - { - "parameters": { - "group": "internet", - "tool": "getIpWhois", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc22", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 420, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "33cd2d4d-710a-485f-a54d-db721b95be59" - }, - { - "parameters": { - "group": "internet", - "tool": "getFileCopiedBetweenUrls", - "source": "https://n8n.io/_nuxt/img/df5be1c.png", - "destination": "test", - "additionalOptions": {} - }, - "name": "uProc23", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 550, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "01eadfc0-0bc0-4630-b54a-a254917686d3" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlAnalysis", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc24", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 680, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "309d8b34-9d8f-4f04-8487-5849906b23fb" - }, - { - "parameters": { - "group": "internet", - "tool": "getNetAton", - "ip": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc25", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 810, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "8560b080-f140-4dec-9ab6-a7135c9a0ccc" - }, - { - "parameters": { - "group": "internet", - "tool": "checkUrlContains", - "url": "104.21.37.3", - "regex": "n8n", - "additionalOptions": {} - }, - "name": "uProc26", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 940, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "9d7ea1fd-7b6c-4023-8452-de501689d0e0" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlContents", - "url": "https://n8n.io", - "selector": "h1", - "additionalOptions": {} - }, - "name": "uProc27", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1070, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "61e3e8c3-619e-430a-99fb-dc0e30c85177" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlContentsParsed", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc28", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1200, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "cd18157f-d519-4700-a0f6-acb17688bf38" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlDecode", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc29", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1330, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "94bac370-001b-42bd-aab8-0a3265166e43" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlEncode", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc30", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1460, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "8af8cfea-c432-404f-83a1-0fb46c7a86e3" - }, - { - "parameters": { - "group": "internet", - "tool": "checkUrlExist", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc31", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1590, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ec8594b3-8ae9-4a76-9f71-d1cec1508e00" - }, - { - "parameters": { - "group": "internet", - "tool": "getNetFixip", - "number": "104.21.37.3", - "additionalOptions": {} - }, - "name": "uProc32", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1720, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "7c981264-b095-4827-81a0-751991548cda" - }, - { - "parameters": { - "group": "internet", - "tool": "checkNetHostAlive", - "host": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc33", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1850, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ad04ee24-86dc-4972-ac6a-c6f5dd731c72" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlListContentsParsed", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc34", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 1980, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "b7a838aa-9b5a-41a8-ad4e-078d5bae0386" - }, - { - "parameters": { - "group": "internet", - "tool": "getNetNtoa", - "number": "10421373", - "additionalOptions": {} - }, - "name": "uProc35", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2110, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "99b81130-900a-4eff-afe1-9f812071071f" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlParsed", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc36", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2240, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "02263618-4341-43a3-97ff-579b3ae5849b" - }, - { - "parameters": { - "group": "internet", - "tool": "getNetScan", - "host": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc37", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2370, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "f12e7ab7-f2eb-419f-8a7d-5e630849ac5c" - }, - { - "parameters": { - "group": "internet", - "tool": "checkNetServiceUp", - "host": "https://n8n.io", - "port": "80", - "additionalOptions": {} - }, - "name": "uProc38", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2500, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "30cdf3be-b9eb-4c91-8c8a-979ed1672bea" - }, - { - "parameters": { - "group": "internet", - "tool": "getUrlTables", - "url": "https://n8n.io", - "table": "3", - "additionalOptions": {} - }, - "name": "uProc39", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2630, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "ed5bf95c-cdd4-4eb8-810f-ac18703f3743" - }, - { - "parameters": { - "group": "internet", - "tool": "checkUrlValid", - "url": "https://n8n.io", - "additionalOptions": {} - }, - "name": "uProc40", - "type": "n8n-nodes-base.uproc", - "typeVersion": 1, - "position": [ - 2760, - 470 - ], - "credentials": { - "uprocApi": { - "id": "142", - "name": "uProc API creds" - } - }, - "id": "6f264af2-ffbe-44cc-9b31-2e64d2b83b9b" - } - ], - "connections": { - "uProc1": { - "main": [ - [ - { - "node": "uProc2", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc2": { - "main": [ - [ - { - "node": "uProc3", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc3": { - "main": [ - [ - { - "node": "uProc4", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc4": { - "main": [ - [ - { - "node": "uProc5", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc5": { - "main": [ - [ - { - "node": "uProc6", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc6": { - "main": [ - [ - { - "node": "uProc7", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc7": { - "main": [ - [ - { - "node": "uProc8", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc8": { - "main": [ - [ - { - "node": "uProc9", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc9": { - "main": [ - [ - { - "node": "uProc10", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc10": { - "main": [ - [ - { - "node": "uProc11", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc11": { - "main": [ - [ - { - "node": "uProc12", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc12": { - "main": [ - [ - { - "node": "uProc13", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc13": { - "main": [ - [ - { - "node": "uProc14", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc14": { - "main": [ - [ - { - "node": "uProc15", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc15": { - "main": [ - [ - { - "node": "uProc16", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc16": { - "main": [ - [ - { - "node": "uProc17", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc17": { - "main": [ - [ - { - "node": "uProc18", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc18": { - "main": [ - [ - { - "node": "uProc19", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc19": { - "main": [ - [ - { - "node": "uProc20", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc20": { - "main": [ - [ - { - "node": "uProc21", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc22": { - "main": [ - [ - { - "node": "uProc23", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc23": { - "main": [ - [ - { - "node": "uProc24", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc24": { - "main": [ - [ - { - "node": "uProc25", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc25": { - "main": [ - [ - { - "node": "uProc26", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc26": { - "main": [ - [ - { - "node": "uProc27", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc27": { - "main": [ - [ - { - "node": "uProc28", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc28": { - "main": [ - [ - { - "node": "uProc29", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc29": { - "main": [ - [ - { - "node": "uProc30", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc30": { - "main": [ - [ - { - "node": "uProc31", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc31": { - "main": [ - [ - { - "node": "uProc32", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc32": { - "main": [ - [ - { - "node": "uProc33", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc33": { - "main": [ - [ - { - "node": "uProc34", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc34": { - "main": [ - [ - { - "node": "uProc35", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc35": { - "main": [ - [ - { - "node": "uProc36", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc36": { - "main": [ - [ - { - "node": "uProc37", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc37": { - "main": [ - [ - { - "node": "uProc38", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc38": { - "main": [ - [ - { - "node": "uProc39", - "type": "main", - "index": 0 - } - ] - ] - }, - "uProc39": { - "main": [ - [ - { - "node": "uProc40", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "uProc1", - "type": "main", - "index": 0 - }, - { - "node": "uProc22", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/182.json b/test-workflows/workflows/182.json deleted file mode 100644 index fae2d5f988..0000000000 --- a/test-workflows/workflows/182.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "createdAt": "2021-04-23T08:55:02.078Z", - "updatedAt": "2021-04-23T08:55:02.078Z", - "id": "182", - "name": "Webflow:Item:create get update delete getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "a462a0c7-cda9-4a9e-b447-99be5b8df6f2" - }, - { - "parameters": { - "operation": "create", - "siteId": "6082884ac940c371277833ae", - "collectionId": "608289f18593d40792d70d54", - "fieldsUi": { - "fieldValues": [ - { - "fieldId": "name", - "fieldValue": "=Item{{Date.now()}}" - }, - { - "fieldId": "slug", - "fieldValue": "=ItemSlug{{Date.now()}}" - }, - { - "fieldId": "_archived", - "fieldValue": "False" - }, - { - "fieldId": "_draft", - "fieldValue": "True" - } - ] - } - }, - "name": "Webflow", - "type": "n8n-nodes-base.webflow", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "webflowApi": { - "id": "147", - "name": "Webflow API creds" - } - }, - "id": "270ca4f8-df14-4629-95df-e5adb713d02d" - }, - { - "parameters": { - "siteId": "6082884ac940c371277833ae", - "collectionId": "608289f18593d40792d70d54", - "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}" - }, - "name": "Webflow1", - "type": "n8n-nodes-base.webflow", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "webflowApi": { - "id": "147", - "name": "Webflow API creds" - } - }, - "id": "fc5b71c8-e124-49aa-b15f-8fed15916ff1" - }, - { - "parameters": { - "operation": "update", - "siteId": "6082884ac940c371277833ae", - "collectionId": "608289f18593d40792d70d54", - "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}", - "fieldsUi": { - "fieldValues": [ - { - "fieldId": "_draft", - "fieldValue": "False" - }, - { - "fieldId": "_archived", - "fieldValue": "False" - }, - { - "fieldId": "slug", - "fieldValue": "=Updated{{$node[\"Webflow1\"].json[\"slug\"]}}" - }, - { - "fieldId": "name", - "fieldValue": "=Updated{{$node[\"Webflow1\"].json[\"name\"]}}" - } - ] - } - }, - "name": "Webflow2", - "type": "n8n-nodes-base.webflow", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "webflowApi": { - "id": "147", - "name": "Webflow API creds" - } - }, - "id": "07182187-0587-41b2-89e0-1a289070643d" - }, - { - "parameters": { - "operation": "delete", - "siteId": "6082884ac940c371277833ae", - "collectionId": "608289f18593d40792d70d54", - "itemId": "={{$node[\"Webflow\"].json[\"_id\"]}}" - }, - "name": "Webflow3", - "type": "n8n-nodes-base.webflow", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "webflowApi": { - "id": "147", - "name": "Webflow API creds" - } - }, - "id": "197f83d4-c767-4c4a-a776-6c28ec39c799" - }, - { - "parameters": { - "operation": "getAll", - "siteId": "6082884ac940c371277833ae", - "collectionId": "608289f18593d40792d70d54", - "limit": 1 - }, - "name": "Webflow4", - "type": "n8n-nodes-base.webflow", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "webflowApi": { - "id": "147", - "name": "Webflow API creds" - } - }, - "id": "acb4b42b-c8b1-4222-9227-10b8456505fb" - } - ], - "connections": { - "Webflow": { - "main": [ - [ - { - "node": "Webflow1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Webflow1": { - "main": [ - [ - { - "node": "Webflow2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Webflow2": { - "main": [ - [ - { - "node": "Webflow3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Webflow3": { - "main": [ - [ - { - "node": "Webflow4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Webflow", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/183.json b/test-workflows/workflows/183.json deleted file mode 100644 index efa087bd29..0000000000 --- a/test-workflows/workflows/183.json +++ /dev/null @@ -1,617 +0,0 @@ -{ - "createdAt": "2021-04-23T11:00:16.427Z", - "updatedAt": "2021-04-23T16:04:29.271Z", - "id": "183", - "name": "Telegram:Chat:get setDescription setTitle member:Message: sendMessage editMessageText pinChatMessage unpinChatMessage sendPhoto sendSticker sendMediaGroup sendChatAction sendLocation sendDocument sendAudio sendAnimation sendVideo:File:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "2003127c-05c1-4e8d-a123-f50582b324d0" - }, - { - "parameters": { - "resource": "chat", - "chatId": "@FixedChannel123" - }, - "name": "Telegram", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 500, - 200 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "b74ed6ec-dd64-46f1-bbd2-968a02e248bc" - }, - { - "parameters": { - "resource": "chat", - "operation": "setDescription", - "chatId": "@FixedChannel123", - "description": "=UpdatedDescription{{Date.now()}}" - }, - "name": "Telegram1", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 650, - 200 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "b78da1c6-a208-490f-95a9-b359f8d9852c" - }, - { - "parameters": { - "resource": "chat", - "operation": "setTitle", - "chatId": "@FixedChannel123", - "title": "=Title{{Date.now()}}" - }, - "name": "Telegram2", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 800, - 200 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "50e2a9f1-5cf4-4009-8952-9d9a7f798cf6" - }, - { - "parameters": { - "resource": "chat", - "operation": "member", - "chatId": "@FixedChannel123", - "userId": "1757347499" - }, - "name": "Telegram3", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 950, - 200 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "26a5c251-d0c1-4cb4-83a8-b5722b6b086c" - }, - { - "parameters": { - "chatId": "@FixedChannel123", - "text": "=Test{{Date.now()}}", - "additionalFields": {} - }, - "name": "Telegram4", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 490, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "8b3c6634-82c9-433e-8492-8c670b0e0ffd" - }, - { - "parameters": { - "operation": "editMessageText", - "chatId": "@FixedChannel123", - "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}", - "text": "=UpdatedTest{{Date.now()}}", - "additionalFields": {} - }, - "name": "Telegram5", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 650, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "179251fc-335f-4f05-ab9c-9c712e11b778" - }, - { - "parameters": { - "operation": "pinChatMessage", - "chatId": "@FixedChannel123", - "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}", - "additionalFields": {} - }, - "name": "Telegram6", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 800, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "bb70b35e-a908-43d8-8f01-a9cb3d152d53" - }, - { - "parameters": { - "operation": "unpinChatMessage", - "chatId": "@FixedChannel123", - "messageId": "={{$node[\"Telegram4\"].json[\"result\"][\"message_id\"]}}" - }, - "name": "Telegram7", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 950, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "dce352dc-fdbe-49ee-bb47-7aa065d5c3e4" - }, - { - "parameters": { - "operation": "sendPhoto", - "chatId": "@FixedChannel123", - "file": "https://n8n.io/_nuxt/img/df5be1c.png", - "additionalFields": {} - }, - "name": "Telegram8", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1100, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "bdb4221e-41ad-42ad-8725-6d93a326abe4" - }, - { - "parameters": { - "operation": "sendSticker", - "chatId": "@FixedChannel123", - "file": "https://tlgrm.eu/_/stickers/22c/b26/22cb267f-a2ab-41e4-8360-fe35ac048c3b/192/12.webp", - "additionalFields": {} - }, - "name": "Telegram9", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "70f93d2c-1365-4a84-acb6-efe74de090a1" - }, - { - "parameters": { - "resource": "file", - "fileId": "={{$node[\"Telegram8\"].json[\"result\"][\"photo\"][0][\"file_id\"]}}" - }, - "name": "Telegram10", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1250, - 600 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "53b7d1e7-462d-4843-b852-3491a1e69310" - }, - { - "parameters": { - "operation": "sendMediaGroup", - "chatId": "@FixedChannel123", - "media": { - "media": [ - { - "media": "https://n8n.io/_nuxt/img/df5be1c.png", - "additionalFields": {} - }, - { - "media": "https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-screenshot.png", - "additionalFields": {} - } - ] - }, - "additionalFields": {} - }, - "name": "Telegram11", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1400, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "f8727e6e-c697-4b6b-be71-aaa451f4dabb" - }, - { - "parameters": { - "operation": "sendChatAction", - "chatId": "@FixedChannel123", - "action": "find_location" - }, - "name": "Telegram12", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1550, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "045fd95c-e699-4568-b6a5-3e1289e686c1" - }, - { - "parameters": { - "operation": "sendLocation", - "chatId": "@FixedChannel123", - "latitude": 52.529776, - "longitude": 13.3893152845, - "additionalFields": {} - }, - "name": "Telegram13", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1700, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "fa2ee6c4-f697-4e88-a952-dfbe3b5806d2" - }, - { - "parameters": { - "operation": "sendDocument", - "chatId": "@FixedChannel123", - "file": "https://nx10458.your-storageshare.de/s/4w7bEHjjGyEzoXq/download", - "additionalFields": {} - }, - "name": "Telegram14", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 1850, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "777d6bca-1444-4da2-bc76-454702bbbd33" - }, - { - "parameters": { - "operation": "sendAudio", - "chatId": "@FixedChannel123", - "file": "http://websrvr90va.audiovideoweb.com/va90web25003/companions/Foundations%20of%20Rock/13.07.mp3", - "additionalFields": {} - }, - "name": "Telegram15", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 2000, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "d6eced32-26b0-417f-832f-0521976847ec" - }, - { - "parameters": { - "operation": "sendAnimation", - "chatId": "@FixedChannel123", - "file": "https://media.giphy.com/media/1nR6fu93A17vWZbO9c/giphy.gif", - "additionalFields": {} - }, - "name": "Telegram16", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 2150, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "64ed5e7e-fa11-447c-b9e8-f8ee091bc447" - }, - { - "parameters": { - "operation": "sendVideo", - "chatId": "@FixedChannel123", - "file": "http://vod-progressive.akamaized.net/exp=1619203691~acl=%2Fvimeo-prod-skyfire-std-us%2F01%2F3610%2F13%2F343052045%2F1373111309.mp4~hmac=8ede5174dfb91845afeae538f8144fe5d6819b4a4713f700e1ff805261445369/vimeo-prod-skyfire-std-us/01/3610/13/343052045/1373111309.mp4?download=1&filename=Pexels Videos 2519660.mp4", - "additionalFields": {} - }, - "name": "Telegram17", - "type": "n8n-nodes-base.telegram", - "typeVersion": 1, - "position": [ - 2300, - 400 - ], - "credentials": { - "telegramApi": { - "id": "148", - "name": "Telegram API creds" - } - }, - "id": "735e6eeb-4dff-4a56-847f-ac2512d00a18" - } - ], - "connections": { - "Telegram": { - "main": [ - [ - { - "node": "Telegram1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram1": { - "main": [ - [ - { - "node": "Telegram2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram2": { - "main": [ - [ - { - "node": "Telegram3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram4": { - "main": [ - [ - { - "node": "Telegram5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram5": { - "main": [ - [ - { - "node": "Telegram6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram6": { - "main": [ - [ - { - "node": "Telegram7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram8": { - "main": [ - [ - { - "node": "Telegram10", - "type": "main", - "index": 0 - }, - { - "node": "Telegram9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram7": { - "main": [ - [ - { - "node": "Telegram8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram9": { - "main": [ - [ - { - "node": "Telegram11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Telegram", - "type": "main", - "index": 0 - }, - { - "node": "Telegram4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram11": { - "main": [ - [ - { - "node": "Telegram12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram12": { - "main": [ - [ - { - "node": "Telegram13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram13": { - "main": [ - [ - { - "node": "Telegram14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram14": { - "main": [ - [ - { - "node": "Telegram15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram15": { - "main": [ - [ - { - "node": "Telegram16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Telegram16": { - "main": [ - [ - { - "node": "Telegram17", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/184.json b/test-workflows/workflows/184.json deleted file mode 100644 index 91b6137b2d..0000000000 --- a/test-workflows/workflows/184.json +++ /dev/null @@ -1,930 +0,0 @@ -{ - "createdAt": "2021-04-26T16:15:15.635Z", - "updatedAt": "2021-05-20T16:56:10.192Z", - "id": "184", - "name": "Salesforce:Account:create get addNote getAll getSummary update delete:Case:create get addComment getAll getSummary update delete:Attachment:create get getAll getSummary update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "66a1cb46-3115-4e3f-b986-589153ee056b" - }, - { - "parameters": { - "resource": "account", - "name": "=Account{{Date.now()}}", - "additionalFields": {} - }, - "name": "Salesforce", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 520, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "5b1a4927-ea99-4ad0-9166-87de446b39e2" - }, - { - "parameters": { - "resource": "account", - "operation": "get", - "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce1", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 770, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "78646575-42fb-4d9c-af75-f55fcac7a0e8" - }, - { - "parameters": { - "resource": "account", - "operation": "addNote", - "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "title": "=Note{{Date.now()}}", - "options": {} - }, - "name": "Salesforce2", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 930, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "3036a0b8-1700-4cac-afd9-0679461bbeb3" - }, - { - "parameters": { - "resource": "account", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce3", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1210, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "3025fb7e-2d06-4174-b60b-e31ae414b56e" - }, - { - "parameters": { - "resource": "account", - "operation": "getSummary" - }, - "name": "Salesforce4", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1360, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "f9572f72-55e8-4e58-9aac-aebc4476a91b" - }, - { - "parameters": { - "resource": "account", - "operation": "update", - "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Salesforce1\"].json[\"Name\"]}}" - } - }, - "name": "Salesforce5", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1650, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "50385d4f-bfbf-49ba-a620-6372ce9eb7e2" - }, - { - "parameters": { - "resource": "account", - "operation": "delete", - "accountId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce6", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1800, - 190 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "2baac145-ccd2-421a-8e57-0312264f64c6" - }, - { - "parameters": { - "resource": "case", - "type": "Other", - "additionalFields": { - "reason": "Installation", - "subject": "=Subject{{Date.now()}}" - } - }, - "name": "Salesforce7", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 530, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "6f52f121-1906-4583-9ab5-ace8a85c21f1" - }, - { - "parameters": { - "resource": "case", - "operation": "get", - "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}" - }, - "name": "Salesforce8", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 690, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "5623e57f-6a90-46d4-b4b1-2a295c4a97be" - }, - { - "parameters": { - "resource": "case", - "operation": "addComment", - "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}", - "options": { - "commentBody": "=Comment{{Date.now()}}" - } - }, - "name": "Salesforce9", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2490, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "2fd4dca0-4bfa-41d2-971e-0bd469242d21" - }, - { - "parameters": { - "resource": "case", - "operation": "getSummary" - }, - "name": "Salesforce10", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2750, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "93aa55e7-46e5-4576-a634-82ff1b94963b" - }, - { - "parameters": { - "resource": "case", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce11", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2910, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "3e12fbf3-547f-4444-84c8-82339fa49485" - }, - { - "parameters": { - "resource": "case", - "operation": "update", - "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}", - "updateFields": { - "subject": "=Updated{{$node[\"Salesforce8\"].json[\"Subject\"]}}" - } - }, - "name": "Salesforce12", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 3180, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "dc93d012-04c6-4b5b-85c8-6a6cdd2c37f1" - }, - { - "parameters": { - "resource": "case", - "operation": "delete", - "caseId": "={{$node[\"Salesforce7\"].json[\"id\"]}}" - }, - "name": "Salesforce13", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 3340, - 350 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "339d8458-fcf3-4717-8baf-33651e27e169" - }, - { - "parameters": { - "resource": "attachment", - "parentId": "={{$node[\"Salesforce8\"].json[\"Id\"]}}", - "name": "=Attachment{{Date.now()}}", - "additionalFields": {} - }, - "name": "Salesforce14", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1260, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "6cac533b-4965-4432-908e-5f9abf9d7e28" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "data", - "value": "=Attachment example" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 800, - 500 - ], - "id": "4e4a6a2b-ffb1-4ca1-93bd-39ace5d35c68" - }, - { - "parameters": { - "mode": "jsonToBinary", - "options": {} - }, - "name": "Move Binary Data", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 960, - 500 - ], - "id": "2436fc2e-c730-4cfc-aeb9-0fbeda60b653" - }, - { - "parameters": { - "resource": "attachment", - "operation": "get", - "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}" - }, - "name": "Salesforce15", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1410, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "044ebdfa-a4ba-4c6f-a6b8-73e557b01f5a" - }, - { - "parameters": { - "resource": "attachment", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce16", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1710, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "11d43928-769d-49b0-b0df-540b98dbb94e" - }, - { - "parameters": { - "resource": "attachment", - "operation": "getSummary" - }, - "name": "Salesforce17", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1860, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "677c0167-c2c3-43cd-87c8-6281f3bdbced" - }, - { - "parameters": { - "resource": "attachment", - "operation": "update", - "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}", - "updateFields": { - "isPrivate": true - } - }, - "name": "Salesforce18", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2140, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "0f9a0337-0b8e-4839-8507-4da0ae9cce8f" - }, - { - "parameters": { - "resource": "attachment", - "operation": "delete", - "attachmentId": "={{$node[\"Salesforce14\"].json[\"id\"]}}" - }, - "name": "Salesforce19", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2290, - 500 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "d3dee2a4-4a49-42c8-9965-8d3a4614dab7" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 190 - ], - "typeVersion": 1, - "id": "82031d82-409d-4921-8fd7-bdb9f5b30e44" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 1070, - 190 - ], - "typeVersion": 1, - "id": "ca22ae1e-464b-4c60-9411-d953f6274def" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1510, - 190 - ], - "typeVersion": 1, - "id": "b51888e4-e156-45dc-b04a-de238a40d59b" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 3050, - 350 - ], - "typeVersion": 1, - "id": "52d4818a-c5fa-4172-9a9d-754095a21f3b" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 2620, - 350 - ], - "typeVersion": 1, - "id": "8fdcf0f4-d8be-41dd-94c1-4c3802500701" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 1990, - 500 - ], - "typeVersion": 1, - "id": "98e604e1-ee39-43a5-8aad-53b423f88033" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second6", - "type": "n8n-nodes-base.function", - "position": [ - 1580, - 500 - ], - "typeVersion": 1, - "id": "04e6ad3e-5031-4945-ac5e-84baaf8db3be" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second7", - "type": "n8n-nodes-base.function", - "position": [ - 1120, - 500 - ], - "typeVersion": 1, - "id": "a61fabaa-a79e-4714-8910-4300cdb6c0b5" - } - ], - "connections": { - "Salesforce": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce1": { - "main": [ - [ - { - "node": "Salesforce2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce2": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce3": { - "main": [ - [ - { - "node": "Salesforce4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce4": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce5": { - "main": [ - [ - { - "node": "Salesforce6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce7": { - "main": [ - [ - { - "node": "Salesforce8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce8": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce9": { - "main": [ - [ - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce10": { - "main": [ - [ - { - "node": "Salesforce11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce11": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce12": { - "main": [ - [ - { - "node": "Salesforce13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Move Binary Data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Move Binary Data": { - "main": [ - [ - { - "node": "Sleep 0.5 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce14": { - "main": [ - [ - { - "node": "Salesforce15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce15": { - "main": [ - [ - { - "node": "Sleep 0.5 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce16": { - "main": [ - [ - { - "node": "Salesforce17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce17": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce18": { - "main": [ - [ - { - "node": "Salesforce19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce19": { - "main": [ - [ - { - "node": "Salesforce9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Salesforce7", - "type": "main", - "index": 0 - }, - { - "node": "Salesforce", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Salesforce1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "Salesforce3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "Salesforce5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "Salesforce12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "Salesforce10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "Salesforce18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second6": { - "main": [ - [ - { - "node": "Salesforce16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second7": { - "main": [ - [ - { - "node": "Salesforce14", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/185.json b/test-workflows/workflows/185.json deleted file mode 100644 index 8edbab332a..0000000000 --- a/test-workflows/workflows/185.json +++ /dev/null @@ -1,966 +0,0 @@ -{ - "createdAt": "2021-04-26T16:57:16.077Z", - "updatedAt": "2021-05-20T16:55:37.548Z", - "id": "185", - "name": "Salesforce:Lead:create get addNote addToCampaign getAll getSummary update delete:Contact:create get addNote addToCampaign getAll getSummary update delete:CustomObject:create get getAll update delete:Flow:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "3e759fa8-73f9-4851-968b-65c1843c646c" - }, - { - "parameters": { - "resource": "contact", - "lastname": "=Contact{{Date.now()}}", - "additionalFields": {} - }, - "name": "Salesforce", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 450, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "0ae37230-15ba-4ff3-a4af-373fa3a1b0b4" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce1", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 600, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "a2dc5829-0aee-495e-a7e2-a8db3b8eacc5" - }, - { - "parameters": { - "resource": "contact", - "operation": "addNote", - "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "title": "=Note{{Date.now()}}", - "options": {} - }, - "name": "Salesforce2", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 940, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "75d1b33c-cb4d-429e-835d-06e3b59cecff" - }, - { - "parameters": { - "resource": "contact", - "operation": "getSummary" - }, - "name": "Salesforce3", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1090, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "6a0bda2d-3ba5-409f-b5c2-d1cce8e13206" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce4", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1400, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "bf879abe-b86e-44f9-819a-96dcde8ed019" - }, - { - "parameters": { - "resource": "contact", - "operation": "addToCampaign", - "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "campaignId": "70109000000TU12AAG", - "options": {} - }, - "name": "Salesforce5", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1550, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "a00bc642-9a77-4109-9de3-be96c3d9c615" - }, - { - "parameters": { - "resource": "contact", - "operation": "update", - "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "updateFields": { - "title": "=UpdatedTitle{{Date.now()}}" - } - }, - "name": "Salesforce6", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1910, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "f7354012-b9c7-4a0b-9ca6-d627443b24c5" - }, - { - "parameters": { - "resource": "contact", - "operation": "delete", - "contactId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce7", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2060, - 230 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "d1552ed3-73d6-4f8d-801c-d24e594044b7" - }, - { - "parameters": { - "resource": "customObject", - "customObject": "CustomObjectFixed__c", - "customFieldsUi": { - "customFieldsValues": [ - { - "fieldId": "Name", - "value": "TestCustomObjectFixed" - } - ] - } - }, - "name": "Salesforce8", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 460, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "1ca8c1bc-5e2b-45c5-ab7a-33b766fa906b" - }, - { - "parameters": { - "resource": "customObject", - "operation": "get", - "customObject": "CustomObjectFixed__c", - "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" - }, - "name": "Salesforce9", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 810, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "7ec96ddd-97b2-48c1-ba74-f0219d9f8df6" - }, - { - "parameters": { - "resource": "customObject", - "operation": "getAll", - "customObject": "CustomObjectFixed__c", - "limit": 1, - "options": {} - }, - "name": "Salesforce10", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 950, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "655e131b-ce30-4408-90c4-33c2bbf2509d" - }, - { - "parameters": { - "resource": "customObject", - "operation": "update", - "customObject": "CustomObjectFixed__c", - "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}", - "customFieldsUi": { - "customFieldsValues": [ - { - "fieldId": "Name", - "value": "UpdatedCustomObjectFixed" - } - ] - } - }, - "name": "Salesforce11", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1320, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "a8bbc9dc-095e-4977-8e7e-ab51105e067e" - }, - { - "parameters": { - "resource": "customObject", - "operation": "delete", - "customObject": "CustomObjectFixed__c", - "recordId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" - }, - "name": "Salesforce12", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1470, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "079ed153-25b5-459d-8fa9-09ed6b6839a4" - }, - { - "parameters": { - "resource": "flow", - "operation": "getAll", - "limit": 1 - }, - "name": "Salesforce13", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 460, - 560 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "f869a8a4-f0ac-4ad6-a594-2d51099aa226" - }, - { - "parameters": { - "resource": "flow", - "apiName": "={{$node[\"Salesforce13\"].json[\"name\"]}}" - }, - "name": "Salesforce14", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 600, - 560 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "disabled": true, - "id": "f476766b-2817-4b3a-9220-21b5852609e2" - }, - { - "parameters": { - "company": "n8n", - "lastname": "=LastName{{Date.now()}}", - "additionalFields": {} - }, - "name": "Salesforce15", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 450, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "2881bb5a-12ff-41b6-9624-82bbadf392e2" - }, - { - "parameters": { - "operation": "get", - "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}" - }, - "name": "Salesforce16", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 600, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "79861ab0-f376-48df-aeba-08c297c7070f" - }, - { - "parameters": { - "operation": "addNote", - "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", - "title": "LeadNote", - "options": {} - }, - "name": "Salesforce17", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 940, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "19fd1281-ef46-4aa2-9b21-0c767bf2e050" - }, - { - "parameters": { - "operation": "getSummary" - }, - "name": "Salesforce18", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1090, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "f1b56cfe-41c8-4f8b-9ce5-ba48744907fd" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce19", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1400, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "b80c3c9c-9f27-459c-b4c7-8d581923dced" - }, - { - "parameters": { - "operation": "addToCampaign", - "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", - "campaignId": "70109000000TU12AAG", - "options": {} - }, - "name": "Salesforce20", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1550, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "b7fa794c-495a-4d41-9416-9b318522e236" - }, - { - "parameters": { - "operation": "update", - "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}", - "updateFields": { - "description": "Updated Description" - } - }, - "name": "Salesforce21", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1910, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "c26d4856-782a-47e9-aa17-aecb7705610a" - }, - { - "parameters": { - "operation": "delete", - "leadId": "={{$node[\"Salesforce15\"].json[\"id\"]}}" - }, - "name": "Salesforce22", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 2060, - 50 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "02fc2ba8-33ae-4ffe-9e18-ed113a5b75e6" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 770, - 50 - ], - "typeVersion": 1, - "id": "c004a09e-09fd-4ac2-8d5c-270a15b204b1" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 770, - 230 - ], - "typeVersion": 1, - "id": "4939f605-622d-4f84-8da2-6565fc63b42f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1240, - 50 - ], - "typeVersion": 1, - "id": "e44a9ad5-a103-49da-956c-53ff4993450c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1250, - 230 - ], - "typeVersion": 1, - "id": "75c555b9-1b6f-426a-9dab-b691918843a2" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 1730, - 50 - ], - "typeVersion": 1, - "id": "523558db-379a-4eac-8ce0-03e3ce08ff6a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 1730, - 230 - ], - "typeVersion": 1, - "id": "077e1d54-864f-47f9-b248-a5b482946e13" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second6", - "type": "n8n-nodes-base.function", - "position": [ - 1150, - 400 - ], - "typeVersion": 1, - "id": "d6328f6e-5944-4f30-8911-1f691fbfbd4c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second7", - "type": "n8n-nodes-base.function", - "position": [ - 620, - 400 - ], - "typeVersion": 1, - "id": "feb9fe8d-176e-442e-85e5-f58a42603a35" - } - ], - "connections": { - "Salesforce": { - "main": [ - [ - { - "node": "Salesforce1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce1": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce2": { - "main": [ - [ - { - "node": "Salesforce3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce3": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce4": { - "main": [ - [ - { - "node": "Salesforce5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce5": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce6": { - "main": [ - [ - { - "node": "Salesforce7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Salesforce", - "type": "main", - "index": 0 - }, - { - "node": "Salesforce8", - "type": "main", - "index": 0 - }, - { - "node": "Salesforce13", - "type": "main", - "index": 0 - }, - { - "node": "Salesforce15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce8": { - "main": [ - [ - { - "node": "Sleep 0.5 second7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce9": { - "main": [ - [ - { - "node": "Salesforce10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce10": { - "main": [ - [ - { - "node": "Sleep 0.5 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce11": { - "main": [ - [ - { - "node": "Salesforce12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce13": { - "main": [ - [ - { - "node": "Salesforce14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce15": { - "main": [ - [ - { - "node": "Salesforce16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce16": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce17": { - "main": [ - [ - { - "node": "Salesforce18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce18": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce19": { - "main": [ - [ - { - "node": "Salesforce20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce20": { - "main": [ - [ - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce21": { - "main": [ - [ - { - "node": "Salesforce22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "Salesforce21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "Salesforce6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "Salesforce19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "Salesforce4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Salesforce17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "Salesforce2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second6": { - "main": [ - [ - { - "node": "Salesforce11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second7": { - "main": [ - [ - { - "node": "Salesforce9", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/186.json b/test-workflows/workflows/186.json deleted file mode 100644 index bbdaf94514..0000000000 --- a/test-workflows/workflows/186.json +++ /dev/null @@ -1,618 +0,0 @@ -{ - "createdAt": "2021-04-26T17:42:22.794Z", - "updatedAt": "2021-05-21T12:39:59.740Z", - "id": "186", - "name": "Salesforce:Opportunity:create get addNote getAll getSummary update delete:Task:create get getAll getSummary update delete:Query:search", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0c8d4ebe-b490-4418-a240-32e15a25879c" - }, - { - "parameters": { - "resource": "opportunity", - "name": "=Opp{{Date.now()}}", - "closeDate": "2021-03-31T22:00:00.000Z", - "stageName": "Value Proposition", - "additionalFields": {} - }, - "name": "Salesforce", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "611612e2-cd0e-413c-a8c0-ca011830d3f3" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "get", - "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce1", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 780, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "76c5bb71-c7a5-41fe-bab8-8ab5a4e3bd02" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "addNote", - "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "title": "OppNote", - "options": {} - }, - "name": "Salesforce2", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 910, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "863c2685-0e4a-45ae-a838-570cd2b328be" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "getSummary" - }, - "name": "Salesforce3", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1180, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "531dba66-59fa-4274-abd9-fa424c6068d2" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce4", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1330, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "95bef426-8b35-43d0-a0cb-274650ee2f64" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "update", - "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}", - "updateFields": { - "name": "UpdatedOpp" - } - }, - "name": "Salesforce5", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1580, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "9806aa1f-fe25-4e09-83c7-7412d6897d52" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "delete", - "opportunityId": "={{$node[\"Salesforce\"].json[\"id\"]}}" - }, - "name": "Salesforce6", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1730, - 250 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "7e5cf8e8-0935-4ea0-b58e-896cd0a1d7a2" - }, - { - "parameters": { - "resource": "search", - "query": "SELECT Id, Name, BillingCity FROM Account LIMIT 1" - }, - "name": "Salesforce7", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "b338d5c8-ce76-4faa-9764-f86e4b346b87" - }, - { - "parameters": { - "resource": "task", - "status": "In Progress", - "additionalFields": {} - }, - "name": "Salesforce8", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 600, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "2c2811e3-2dc0-42c1-ab13-0940503318fd" - }, - { - "parameters": { - "resource": "task", - "operation": "get", - "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" - }, - "name": "Salesforce9", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 750, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "0e61e836-069b-45f3-8ea7-298610c170b2" - }, - { - "parameters": { - "resource": "task", - "operation": "getSummary" - }, - "name": "Salesforce10", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1010, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "ff0c0a0f-16c9-44e5-9aef-531039f7985c" - }, - { - "parameters": { - "resource": "task", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Salesforce11", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1150, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "cbf534bd-9db5-4e10-abfa-8cae05cf147b" - }, - { - "parameters": { - "resource": "task", - "operation": "update", - "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}", - "updateFields": { - "status": "Completed" - } - }, - "name": "Salesforce12", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1460, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "04afbeb0-d437-4060-8966-e35cef872f79" - }, - { - "parameters": { - "resource": "task", - "operation": "delete", - "taskId": "={{$node[\"Salesforce8\"].json[\"id\"]}}" - }, - "name": "Salesforce13", - "type": "n8n-nodes-base.salesforce", - "typeVersion": 1, - "position": [ - 1610, - 550 - ], - "credentials": { - "salesforceOAuth2Api": { - "id": "149", - "name": "Salesforce OAuth2 API creds" - } - }, - "id": "5f800e5f-7be2-483a-8633-70e258e9ce69" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 640, - 250 - ], - "typeVersion": 1, - "id": "74e93e34-a272-40a3-a976-98f7da373e49" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 1050, - 250 - ], - "typeVersion": 1, - "id": "c4d53540-e46f-4e9f-b61a-cdfa72df1730" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1450, - 250 - ], - "typeVersion": 1, - "id": "1fc2b051-cd25-4fc4-8c6f-819c24ca1f49" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 880, - 550 - ], - "typeVersion": 1, - "id": "a7794510-cd2c-4265-b7ce-505aceb813c8" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 480, - 550 - ], - "typeVersion": 1, - "id": "f50da613-c2c9-4823-9ba8-2969ed4899c1" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 1290, - 550 - ], - "typeVersion": 1, - "id": "3259acd2-fd46-4348-b7d0-48d4396041df" - } - ], - "connections": { - "Salesforce": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce1": { - "main": [ - [ - { - "node": "Salesforce2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce3": { - "main": [ - [ - { - "node": "Salesforce4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce4": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce5": { - "main": [ - [ - { - "node": "Salesforce6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Salesforce", - "type": "main", - "index": 0 - }, - { - "node": "Salesforce7", - "type": "main", - "index": 0 - }, - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce8": { - "main": [ - [ - { - "node": "Salesforce9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce9": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce10": { - "main": [ - [ - { - "node": "Salesforce11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce11": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce12": { - "main": [ - [ - { - "node": "Salesforce13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "Salesforce8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "Salesforce3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Salesforce1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "Salesforce10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "Salesforce5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "Salesforce12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesforce2": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/187.json b/test-workflows/workflows/187.json deleted file mode 100644 index 97ead5e567..0000000000 --- a/test-workflows/workflows/187.json +++ /dev/null @@ -1,266 +0,0 @@ -{ - "createdAt": "2021-04-29T08:02:29.441Z", - "updatedAt": "2021-04-29T08:02:29.441Z", - "id": "187", - "name": "Strapi:Entry:create get getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e4175f5f-af4e-4fe5-b5e4-c7a00de9330c" - }, - { - "parameters": { - "operation": "create", - "contentType": "Tests", - "columns": "test,random" - }, - "name": "Strapi", - "type": "n8n-nodes-base.strapi", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "strapiApi": { - "id": "150", - "name": "Strapi API creds" - } - }, - "id": "d3173ece-7c5a-42c5-95d8-cb11b4444741" - }, - { - "parameters": { - "values": { - "number": [ - { - "name": "random", - "value": "={{Math.round(Math.random()*1000)}}" - } - ], - "string": [ - { - "name": "test", - "value": "=Entry{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "f4431416-b2cf-49d9-b61f-8629fb40f97b" - }, - { - "parameters": { - "contentType": "Tests", - "entryId": "={{$node[\"Strapi\"].json[\"id\"]}}" - }, - "name": "Strapi1", - "type": "n8n-nodes-base.strapi", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "strapiApi": { - "id": "150", - "name": "Strapi API creds" - } - }, - "id": "2160d0d9-f5f3-45c5-9925-3e6449a71097" - }, - { - "parameters": { - "operation": "getAll", - "contentType": "Tests", - "limit": 1, - "options": {} - }, - "name": "Strapi2", - "type": "n8n-nodes-base.strapi", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "strapiApi": { - "id": "150", - "name": "Strapi API creds" - } - }, - "id": "bebbc112-21a2-48f8-9291-89f264057fff" - }, - { - "parameters": { - "operation": "update", - "contentType": "Tests", - "columns": "test" - }, - "name": "Strapi3", - "type": "n8n-nodes-base.strapi", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "strapiApi": { - "id": "150", - "name": "Strapi API creds" - } - }, - "id": "275f4cc2-4ebb-42fe-9fee-ef709df4df6b" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "number": [ - { - "name": "id", - "value": "={{$node[\"Strapi1\"].json[\"id\"]}}" - } - ], - "string": [ - { - "name": "test", - "value": "=Updated{{$node[\"Set\"].json[\"test\"]}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "id": "bcff9dc4-914a-4494-b08f-321f541511d2" - }, - { - "parameters": { - "operation": "delete", - "contentType": "Tests", - "entryId": "={{$node[\"Strapi\"].json[\"id\"]}}" - }, - "name": "Strapi4", - "type": "n8n-nodes-base.strapi", - "typeVersion": 1, - "position": [ - 1290, - 300 - ], - "credentials": { - "strapiApi": { - "id": "150", - "name": "Strapi API creds" - } - }, - "id": "f60abebb-e54e-4bf6-805e-7a3c22769dbc" - } - ], - "connections": { - "Strapi": { - "main": [ - [ - { - "node": "Strapi1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Strapi", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strapi1": { - "main": [ - [ - { - "node": "Strapi2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strapi2": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Strapi3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strapi3": { - "main": [ - [ - { - "node": "Strapi4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/188.json b/test-workflows/workflows/188.json deleted file mode 100644 index ac147d5dc1..0000000000 --- a/test-workflows/workflows/188.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "createdAt": "2021-04-29T08:16:23.227Z", - "updatedAt": "2021-04-29T08:16:23.227Z", - "id": "188", - "name": "Uplead:Company:enrich:Person:enrich", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "1a29e4a7-f246-40dc-b79c-b786d4c806b1" - }, - { - "parameters": { - "company": "amazon" - }, - "name": "Uplead", - "type": "n8n-nodes-base.uplead", - "typeVersion": 1, - "position": [ - 550, - 200 - ], - "credentials": { - "upleadApi": { - "id": "151", - "name": "Uplead API creds" - } - }, - "id": "879b9140-4c58-4d4d-86ab-a483fd617922" - }, - { - "parameters": { - "resource": "person", - "firstname": "Werner ", - "lastname": "Vogels", - "domain": "amazon.com" - }, - "name": "Uplead1", - "type": "n8n-nodes-base.uplead", - "typeVersion": 1, - "position": [ - 550, - 350 - ], - "credentials": { - "upleadApi": { - "id": "151", - "name": "Uplead API creds" - } - }, - "id": "e97bccd6-c107-4099-9141-040cebe56ed8" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Uplead", - "type": "main", - "index": 0 - }, - { - "node": "Uplead1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/189.json b/test-workflows/workflows/189.json deleted file mode 100644 index 6aeac6a6c4..0000000000 --- a/test-workflows/workflows/189.json +++ /dev/null @@ -1,534 +0,0 @@ -{ - "createdAt": "2021-04-29T08:53:09.807Z", - "updatedAt": "2021-05-12T17:31:21.682Z", - "id": "189", - "name": "Affinity:Organization:create get update delete getAll:List:getAll get:ListEntry:create get getAll delete:Person:create get update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "87d46406-85dc-49d6-bf83-b69e094d6873" - }, - { - "parameters": { - "name": "=TESTCOMPANY{{Date.now()}}", - "domain": "test.com", - "additionalFields": {} - }, - "name": "Affinity", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "1be8b362-0d29-48ef-8f70-f98b408ac154" - }, - { - "parameters": { - "operation": "get", - "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}", - "options": {} - }, - "name": "Affinity1", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "5797c0f2-ace5-41ef-aabf-1104f582ae02" - }, - { - "parameters": { - "operation": "update", - "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}", - "updateFields": { - "name": "={{$node[\"Affinity1\"].json[\"name\"]}}-UPDATED" - } - }, - "name": "Affinity2", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "1a74bdc8-4e0e-4d9c-9af0-4e80dba7a290" - }, - { - "parameters": { - "operation": "delete", - "organizationId": "={{$node[\"Affinity\"].json[\"id\"]}}" - }, - "name": "Affinity3", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "781cad97-11a9-47ba-8de2-0b1863513c0f" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Affinity4", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "d803cdfd-b2ea-4f74-9839-56c26276a9d4" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "limit": 1 - }, - "name": "Affinity5", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 500, - 150 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "d2f43144-3321-4b65-9aed-91ed98d8b26d" - }, - { - "parameters": { - "resource": "list", - "listId": "={{$node[\"Affinity5\"].json[\"id\"]}}" - }, - "name": "Affinity6", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 650, - 150 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "7f3f2a9b-d82c-451f-bf94-785afba42af9" - }, - { - "parameters": { - "resource": "person", - "firstName": "=Fname_{{(new Date).toISOString()}}", - "lastName": "=Lname_{{(new Date).toISOString()}}", - "additionalFields": {} - }, - "name": "Affinity7", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 500, - 600 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "a7a2a691-028c-4c01-a8ed-392e2c026f94" - }, - { - "parameters": { - "resource": "person", - "operation": "get", - "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}", - "options": {} - }, - "name": "Affinity8", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 650, - 600 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "12399f87-e27c-443b-809e-812eaa0e41fb" - }, - { - "parameters": { - "resource": "person", - "operation": "update", - "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}", - "updateFields": {}, - "emails": [ - "=email_{{Date.now()}}@test.com" - ] - }, - "name": "Affinity9", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 800, - 600 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "b28eb5fe-e6f9-487e-b947-469f21addca5" - }, - { - "parameters": { - "resource": "person", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Affinity10", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 950, - 600 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "aadcf4a8-89eb-49b6-a1cf-36df4aff4c3b" - }, - { - "parameters": { - "resource": "person", - "operation": "delete", - "personId": "={{$node[\"Affinity7\"].json[\"id\"]}}" - }, - "name": "Affinity11", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 1100, - 600 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "013b336c-1062-4f12-90f4-b3204fde09df" - }, - { - "parameters": { - "resource": "listEntry", - "listId": 51365, - "entityId": "={{$node[\"Affinity\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Affinity12", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 650, - 450 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "99544ad9-75e7-4927-9070-a1d88df5631a" - }, - { - "parameters": { - "resource": "listEntry", - "operation": "get", - "listId": 51365, - "listEntryId": "={{$node[\"Affinity12\"].json[\"id\"]}}" - }, - "name": "Affinity13", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "8a4abe86-e2d3-4bb5-9f1a-2dc77c0668fa" - }, - { - "parameters": { - "resource": "listEntry", - "operation": "getAll", - "listId": 51365, - "limit": 1 - }, - "name": "Affinity14", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 950, - 450 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "a1e54a4a-19a1-4705-bb5e-36a3074a987a" - }, - { - "parameters": { - "resource": "listEntry", - "operation": "delete", - "listId": 51365, - "listEntryId": "={{$node[\"Affinity12\"].json[\"id\"]}}" - }, - "name": "Affinity15", - "type": "n8n-nodes-base.affinity", - "typeVersion": 1, - "position": [ - 1100, - 450 - ], - "credentials": { - "affinityApi": { - "id": "152", - "name": "Affinity API creds" - } - }, - "id": "a1f2281d-3a7f-4632-9d76-8696703fda14" - } - ], - "connections": { - "Affinity": { - "main": [ - [ - { - "node": "Affinity12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity1": { - "main": [ - [ - { - "node": "Affinity2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity2": { - "main": [ - [ - { - "node": "Affinity3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Affinity", - "type": "main", - "index": 0 - }, - { - "node": "Affinity4", - "type": "main", - "index": 0 - }, - { - "node": "Affinity5", - "type": "main", - "index": 0 - }, - { - "node": "Affinity7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity5": { - "main": [ - [ - { - "node": "Affinity6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity7": { - "main": [ - [ - { - "node": "Affinity8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity8": { - "main": [ - [ - { - "node": "Affinity9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity9": { - "main": [ - [ - { - "node": "Affinity10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity10": { - "main": [ - [ - { - "node": "Affinity11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity12": { - "main": [ - [ - { - "node": "Affinity13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity13": { - "main": [ - [ - { - "node": "Affinity14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity14": { - "main": [ - [ - { - "node": "Affinity15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Affinity15": { - "main": [ - [ - { - "node": "Affinity1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/19.json b/test-workflows/workflows/19.json deleted file mode 100644 index 18a8ffad4b..0000000000 --- a/test-workflows/workflows/19.json +++ /dev/null @@ -1,794 +0,0 @@ -{ - "createdAt": "2021-02-16T14:22:05.872Z", - "updatedAt": "2021-07-15T13:45:13.306Z", - "id": "19", - "name": "SentryIo:Organization:create get getAll update:Team:create get getAll update delete:Project:create getAll get update delete:Issue:getAll get update:Event:getAll get:Release:create get getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 210, - 580 - ], - "id": "3ae6a472-ef2b-4e70-b1b8-34f11865656a" - }, - { - "parameters": { - "resource": "organization", - "operation": "create", - "name": "=Org{{Date.now()}}", - "agreeTerms": true, - "additionalFields": {} - }, - "name": "Sentry.io", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 420, - 300 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "3b9b06b9-024b-411b-b074-b5d26419c178" - }, - { - "parameters": { - "resource": "organization", - "organizationSlug": "={{$node[\"Sentry.io\"].json[\"slug\"]}}" - }, - "name": "Sentry.io1", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 610, - 300 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "214cd123-0b74-4e6b-b70b-fc715226309b" - }, - { - "parameters": { - "resource": "organization", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Sentry.io2", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 980, - 300 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "b39920cd-5e8e-4cb7-a5f6-781665b22b53" - }, - { - "parameters": { - "resource": "team", - "operation": "create", - "organizationSlug": "n8n-iq", - "name": "=Team{{Date.now()}}", - "additionalFields": {} - }, - "name": "Sentry.io3", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 420, - 140 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "9f460480-4b55-4f2d-b0ab-7e1f1dc1e974" - }, - { - "parameters": { - "resource": "team", - "organizationSlug": "n8n-iq", - "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}" - }, - "name": "Sentry.io4", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 580, - 140 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "c095b56c-c87b-41e4-9dd1-a529b963dd47" - }, - { - "parameters": { - "resource": "team", - "operation": "getAll", - "organizationSlug": "n8n-iq", - "limit": 1 - }, - "name": "Sentry.io5", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 930, - 140 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "83e5e140-a7fa-497a-9154-84b33f1f43a7" - }, - { - "parameters": { - "resource": "project", - "operation": "getAll", - "limit": 1 - }, - "name": "Sentry.io6", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 590, - 470 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "674a3f1a-9812-43b9-b95b-e3de0106df02" - }, - { - "parameters": { - "resource": "project", - "organizationSlug": "n8n-iq", - "projectSlug": "={{$node[\"Sentry.io22\"].json[\"slug\"]}}" - }, - "name": "Sentry.io7", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 780, - 470 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "78b758fd-29a0-4444-b8b6-128e942b1075" - }, - { - "parameters": { - "resource": "issue", - "issueId": "={{$json[\"id\"]}}" - }, - "name": "Sentry.io8", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 610, - 630 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "15c4106f-e73e-492f-8ea4-bfcfbd15ae6d" - }, - { - "parameters": { - "resource": "issue", - "operation": "getAll", - "organizationSlug": "n8n-iq", - "projectSlug": "javascript", - "limit": 1, - "additionalFields": {} - }, - "name": "Sentry.io9", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 430, - 630 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "ee504fe3-dec7-4225-8ba9-3e978f5186aa" - }, - { - "parameters": { - "resource": "issue", - "operation": "update", - "issueId": "={{$json[\"id\"]}}", - "additionalFields": { - "isBookmarked": "={{!$json[\"isBookmarked\"]}}" - } - }, - "name": "Sentry.io10", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 780, - 630 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "33d3a8d7-1f90-47ab-b890-f3689bb2c4c2" - }, - { - "parameters": { - "operation": "getAll", - "organizationSlug": "n8n-iq", - "projectSlug": "javascript", - "full": false, - "limit": 1 - }, - "name": "Sentry.io11", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 430, - 780 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "9bb47894-f507-49da-9b4e-5b69629bbfcf" - }, - { - "parameters": { - "organizationSlug": "n8n-iq", - "projectSlug": "javascript", - "eventId": "={{$json[\"id\"]}}" - }, - "name": "Sentry.io12", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 610, - 780 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "b99e1b5d-f5c9-448b-84fe-f14fadda556b" - }, - { - "parameters": { - "resource": "release", - "operation": "create", - "organizationSlug": "n8n-iq", - "version": "={{Date.now().toString()}}", - "url": "http://n8n.io", - "projects": "={{[$node[\"Sentry.io22\"].json[\"slug\"]]}}", - "additionalFields": {} - }, - "name": "Sentry.io13", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1100, - 530 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "c20a70e0-852e-4e75-9ea5-52196890f619" - }, - { - "parameters": { - "resource": "release", - "organizationSlug": "n8n-iq", - "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}" - }, - "name": "Sentry.io14", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1260, - 530 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "b962d75f-256b-4e10-9da0-750913bf4b21" - }, - { - "parameters": { - "resource": "release", - "operation": "getAll", - "organizationSlug": "n8n-iq", - "limit": 1, - "additionalFields": {} - }, - "name": "Sentry.io15", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1440, - 530 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "253e52a4-18a3-4ce8-b3a9-f9ece3eb6230" - }, - { - "parameters": { - "resource": "team", - "operation": "update", - "organizationSlug": "n8n-iq", - "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}", - "updateFields": {} - }, - "name": "Sentry.io16", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 750, - 140 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "8e6fe7c5-6475-4404-87e4-20441ddb887f" - }, - { - "parameters": { - "resource": "team", - "operation": "delete", - "organizationSlug": "n8n-iq", - "teamSlug": "={{$node[\"Sentry.io3\"].json[\"slug\"]}}" - }, - "name": "Sentry.io17", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1100, - 140 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "860e3e1b-139d-487b-8cfc-cc141044c446" - }, - { - "parameters": { - "resource": "organization", - "operation": "update", - "organization_slug": "={{$node[\"Sentry.io\"].json[\"slug\"]}}", - "updateFields": {} - }, - "name": "Sentry.io18", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 790, - 300 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "9265dc47-fd2c-458e-991c-ff781cf7fbcd" - }, - { - "parameters": { - "resource": "project", - "operation": "update", - "organizationSlug": "n8n-iq", - "projectSlug": "={{$node[\"Sentry.io6\"].json[\"slug\"]}}", - "updateFields": {} - }, - "name": "Sentry.io19", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 950, - 470 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "60e51eaa-b5a3-4871-9514-462c11b9b640" - }, - { - "parameters": { - "resource": "release", - "operation": "update", - "organizationSlug": "n8n-iq", - "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}", - "updateFields": {} - }, - "name": "Sentry.io20", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1600, - 530 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "0c4c5b23-1127-4dc4-be96-50ccca58c89e" - }, - { - "parameters": { - "resource": "release", - "operation": "delete", - "organizationSlug": "n8n-iq", - "version": "={{$node[\"Sentry.io13\"].json[\"shortVersion\"]}}" - }, - "name": "Sentry.io21", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1750, - 530 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "61a5111f-5290-429a-9513-c26789af0bd6" - }, - { - "parameters": { - "resource": "project", - "operation": "create", - "organizationSlug": "n8n-iq", - "teamSlug": "n8nteam", - "name": "=ProjectTest{{Date.now()}}", - "additionalFields": {} - }, - "name": "Sentry.io22", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 430, - 470 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "dc68e4b1-7874-4f7a-b44f-5222ae7fe47e" - }, - { - "parameters": { - "resource": "project", - "operation": "delete", - "organizationSlug": "n8n-iq", - "projectSlug": "={{$node[\"Sentry.io22\"].json[\"slug\"]}}" - }, - "name": "Sentry.io23", - "type": "n8n-nodes-base.sentryIo", - "typeVersion": 1, - "position": [ - 1900, - 480 - ], - "credentials": { - "sentryIoApi": { - "id": "10", - "name": "sentry io token" - } - }, - "id": "8143174a-4e94-4e6b-a75f-080c71f08227" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Sentry.io", - "type": "main", - "index": 0 - }, - { - "node": "Sentry.io3", - "type": "main", - "index": 0 - }, - { - "node": "Sentry.io22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io": { - "main": [ - [ - { - "node": "Sentry.io1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io1": { - "main": [ - [ - { - "node": "Sentry.io18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io3": { - "main": [ - [ - { - "node": "Sentry.io4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io4": { - "main": [ - [ - { - "node": "Sentry.io16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io6": { - "main": [ - [ - { - "node": "Sentry.io7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io8": { - "main": [ - [ - { - "node": "Sentry.io10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io9": { - "main": [ - [ - { - "node": "Sentry.io8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io11": { - "main": [ - [ - { - "node": "Sentry.io12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io13": { - "main": [ - [ - { - "node": "Sentry.io14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io14": { - "main": [ - [ - { - "node": "Sentry.io15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io16": { - "main": [ - [ - { - "node": "Sentry.io5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io5": { - "main": [ - [ - { - "node": "Sentry.io17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io18": { - "main": [ - [ - { - "node": "Sentry.io2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io7": { - "main": [ - [ - { - "node": "Sentry.io19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io19": { - "main": [ - [ - { - "node": "Sentry.io13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io15": { - "main": [ - [ - { - "node": "Sentry.io20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io20": { - "main": [ - [ - { - "node": "Sentry.io21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io22": { - "main": [ - [ - { - "node": "Sentry.io6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sentry.io21": { - "main": [ - [ - { - "node": "Sentry.io23", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/190.json b/test-workflows/workflows/190.json deleted file mode 100644 index 62871b2e24..0000000000 --- a/test-workflows/workflows/190.json +++ /dev/null @@ -1,561 +0,0 @@ -{ - "createdAt": "2021-04-29T10:21:23.768Z", - "updatedAt": "2021-06-04T14:59:28.116Z", - "id": "190", - "name": "Discourse:User:create get getAll:Category:create update getAll:Group:create update get getAll:UserGroup:add remove:Post:create update get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "84717a95-a963-4bf8-9398-1b47ae0ddea8" - }, - { - "parameters": { - "resource": "category", - "name": "=Category{{Date.now()}}", - "color": "FF6D5A" - }, - "name": "Discourse", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "1f50403d-2276-4adb-827d-b7c4259f4966" - }, - { - "parameters": { - "resource": "category", - "operation": "update", - "categoryId": "={{$node[\"Discourse\"].json[\"id\"]}}", - "name": "=Updated{{$node[\"Discourse\"].json[\"name\"]}}", - "updateFields": {} - }, - "name": "Discourse1", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 650, - 250 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "1719b47a-1de6-470f-a6f5-a92b8bc4c7d2" - }, - { - "parameters": { - "resource": "category", - "operation": "getAll", - "limit": 1 - }, - "name": "Discourse2", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 800, - 250 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "dcddf8d2-7e35-4075-9302-11c69187ac8a" - }, - { - "parameters": { - "resource": "group", - "name": "=Group{{Date.now()}}" - }, - "name": "Discourse3", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 500, - 410 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "a7c4475b-bf7c-4660-a402-0d8f28237caf" - }, - { - "parameters": { - "resource": "group", - "operation": "update", - "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}", - "name": "=Up{{$node[\"Discourse3\"].json[\"name\"]}}" - }, - "name": "Discourse4", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 650, - 410 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "c0f711d4-45e0-4f3e-add9-982e643294c9" - }, - { - "parameters": { - "resource": "group", - "operation": "get", - "name": "=Up{{$node[\"Discourse3\"].json[\"name\"]}}" - }, - "name": "Discourse5", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 800, - 410 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "4c795130-79c3-4f7d-982d-25b7c70b9e0e" - }, - { - "parameters": { - "resource": "group", - "operation": "getAll", - "limit": 1 - }, - "name": "Discourse6", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 950, - 410 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "f25ab7e3-e2fb-45e5-871f-d3770301b03f" - }, - { - "parameters": { - "title": "=Post {{Date.now()}}", - "content": "=Content {{(new Date()).toString()}}", - "additionalFields": {} - }, - "name": "Discourse7", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 500, - 710 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "854b71d1-dd7c-4d89-b9cf-4a583803907f" - }, - { - "parameters": { - "operation": "update", - "postId": "={{$node[\"Discourse7\"].json[\"id\"]}}", - "content": "=updated{{$node[\"Discourse7\"].json[\"cooked\"]}}", - "updateFields": {} - }, - "name": "Discourse8", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 650, - 710 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "747331c5-f73a-4ae4-888f-559d83aa03ca" - }, - { - "parameters": { - "operation": "get", - "postId": "={{$node[\"Discourse7\"].json[\"id\"]}}" - }, - "name": "Discourse9", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 800, - 710 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "3f9bb0d0-7a38-452c-a717-080fc9e75404" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Discourse10", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 950, - 710 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "29df1627-7bc8-4968-8df3-5cfb7566e626" - }, - { - "parameters": { - "resource": "user", - "name": "=User{{Math.round(Math.random()*1000)}}", - "email": "=fake{{Date.now()}}@test.com", - "username": "={{$node[\"Set\"].json[\"username\"]}}", - "password": "=A{{Date.now()}}Z", - "additionalFields": { - "active": true, - "approved": true - } - }, - "name": "Discourse11", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 500, - 100 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "notes": "IGNORED_PROPERTIES=errors,values,is_developer,active,user_id", - "id": "731fa606-fcdd-4920-ac0c-ba357877b20f" - }, - { - "parameters": { - "resource": "user", - "operation": "get", - "username": "={{$node[\"Set\"].json[\"username\"]}}" - }, - "name": "Discourse12", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 650, - 100 - ], - "alwaysOutputData": true, - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "continueOnFail": true, - "id": "33d82113-445b-4a03-ac01-c921318a1d6c" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "flag": "active", - "limit": 1 - }, - "name": "Discourse13", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 800, - 100 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "38e8bf81-979b-4b0d-bf78-c8347366e008" - }, - { - "parameters": { - "resource": "userGroup", - "usernames": "nodeqa,", - "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}" - }, - "name": "Discourse14", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 650, - 560 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "620970bb-377a-4ae5-9ad9-be380be5fbbd" - }, - { - "parameters": { - "resource": "userGroup", - "operation": "remove", - "usernames": "nodeqa,", - "groupId": "={{$node[\"Discourse3\"].json[\"id\"]}}" - }, - "name": "Discourse15", - "type": "n8n-nodes-base.discourse", - "typeVersion": 1, - "position": [ - 800, - 560 - ], - "credentials": { - "discourseApi": { - "id": "153", - "name": "Discourse API" - } - }, - "id": "54683239-ffe0-4360-a276-36cdd22aa272" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "username", - "value": "=Username{{Math.round(Math.random()*1000)}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 360, - 100 - ], - "id": "9be1116c-5e9e-491d-8ab1-038416cf9560" - } - ], - "connections": { - "Discourse": { - "main": [ - [ - { - "node": "Discourse1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse1": { - "main": [ - [ - { - "node": "Discourse2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Discourse", - "type": "main", - "index": 0 - }, - { - "node": "Discourse3", - "type": "main", - "index": 0 - }, - { - "node": "Discourse7", - "type": "main", - "index": 0 - }, - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse3": { - "main": [ - [ - { - "node": "Discourse4", - "type": "main", - "index": 0 - }, - { - "node": "Discourse14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse4": { - "main": [ - [ - { - "node": "Discourse5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse5": { - "main": [ - [ - { - "node": "Discourse6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse7": { - "main": [ - [ - { - "node": "Discourse8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse8": { - "main": [ - [ - { - "node": "Discourse9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse9": { - "main": [ - [ - { - "node": "Discourse10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse14": { - "main": [ - [ - { - "node": "Discourse15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse11": { - "main": [ - [ - { - "node": "Discourse12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Discourse12": { - "main": [ - [ - { - "node": "Discourse13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Discourse11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/191.json b/test-workflows/workflows/191.json deleted file mode 100644 index 0bebb1ffa2..0000000000 --- a/test-workflows/workflows/191.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "createdAt": "2021-04-30T07:16:09.288Z", - "updatedAt": "2021-04-30T07:16:09.288Z", - "id": "191", - "name": "Mailerlite:Subscriber:create get update getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c998f9cf-a589-4a12-8f24-c5ad324ba4ad" - }, - { - "parameters": { - "email": "=fake{{Date.now()}}@test.com", - "additionalFields": {} - }, - "name": "MailerLite", - "type": "n8n-nodes-base.mailerLite", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "mailerLiteApi": { - "id": "154", - "name": "Mailer Lite API creds" - } - }, - "id": "4de4bbd8-1214-4d0d-81fa-879332f6bca5" - }, - { - "parameters": { - "operation": "get", - "subscriberId": "={{$node[\"MailerLite\"].json[\"email\"]}}" - }, - "name": "MailerLite1", - "type": "n8n-nodes-base.mailerLite", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "mailerLiteApi": { - "id": "154", - "name": "Mailer Lite API creds" - } - }, - "id": "d539fbfb-0228-4101-9e31-493abab14049" - }, - { - "parameters": { - "operation": "update", - "subscriberId": "={{$node[\"MailerLite\"].json[\"email\"]}}", - "updateFields": { - "name": "=UpdatedName{{Date.now()}}" - } - }, - "name": "MailerLite2", - "type": "n8n-nodes-base.mailerLite", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "mailerLiteApi": { - "id": "154", - "name": "Mailer Lite API creds" - } - }, - "id": "a56e6d61-cab2-4556-8d6d-e2f1f549c9d0" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "MailerLite3", - "type": "n8n-nodes-base.mailerLite", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "mailerLiteApi": { - "id": "154", - "name": "Mailer Lite API creds" - } - }, - "id": "6083faa2-8837-49df-8eac-3515986418b2" - } - ], - "connections": { - "MailerLite": { - "main": [ - [ - { - "node": "MailerLite1", - "type": "main", - "index": 0 - } - ] - ] - }, - "MailerLite1": { - "main": [ - [ - { - "node": "MailerLite2", - "type": "main", - "index": 0 - } - ] - ] - }, - "MailerLite2": { - "main": [ - [ - { - "node": "MailerLite3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "MailerLite", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/192.json b/test-workflows/workflows/192.json deleted file mode 100644 index 9803e2c818..0000000000 --- a/test-workflows/workflows/192.json +++ /dev/null @@ -1,650 +0,0 @@ -{ - "createdAt": "2021-04-30T08:31:10.410Z", - "updatedAt": "2021-04-30T08:46:44.441Z", - "id": "192", - "name": "Mattermost:Channel:create addUser members statistics delete restore:Message:post postEphemeral delete:Reaction:create getAll delete:User:create getById getByEmail getAll invite deactive", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "f0a6807e-f707-401a-a50c-7ef643be9447" - }, - { - "parameters": { - "resource": "channel", - "teamId": "y1p853gfspdrxre5oextbii7wh", - "displayName": "=TestChannel{{Date.now()}}", - "channel": "=testchannel{{Date.now()}}" - }, - "name": "Mattermost", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 430, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "adeecdf6-f6ea-4065-b1ec-6273ed507467" - }, - { - "parameters": { - "resource": "channel", - "operation": "addUser", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", - "userId": "4yp7tpa3sbgk9qrf38egttbioo" - }, - "name": "Mattermost1", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 580, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "85887926-1b04-4ed2-a6d5-0627fb9e408f" - }, - { - "parameters": { - "resource": "channel", - "operation": "members", - "teamId": "y1p853gfspdrxre5oextbii7wh", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", - "returnAll": false, - "limit": 1 - }, - "name": "Mattermost2", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1650, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "ad9c7a0c-ff3c-4538-a243-81316472e888" - }, - { - "parameters": { - "resource": "channel", - "operation": "statistics", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" - }, - "name": "Mattermost3", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1800, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "724755bb-157b-43cf-8153-d0ff0a00bb26" - }, - { - "parameters": { - "resource": "channel", - "operation": "delete", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" - }, - "name": "Mattermost4", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1950, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "474eb599-04f2-4e43-a472-b6fd4e94d97e" - }, - { - "parameters": { - "resource": "channel", - "operation": "restore", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" - }, - "name": "Mattermost5", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 2100, - 300 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "46fb131b-3338-4e49-a9f8-85130fe56e17" - }, - { - "parameters": { - "resource": "channel", - "operation": "delete", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}" - }, - "name": "Mattermost6", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 2240, - 190 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "10595228-5484-4c14-bbb2-429a52a5d2c9" - }, - { - "parameters": { - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", - "message": "=Message{{Date.now()}}", - "attachments": [], - "otherOptions": {} - }, - "name": "Mattermost7", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 730, - 450 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "a48c3b43-1402-40cd-ad28-dfa306c1e17c" - }, - { - "parameters": { - "operation": "postEphemeral", - "userId": "4yp7tpa3sbgk9qrf38egttbioo", - "channelId": "={{$node[\"Mattermost\"].json[\"id\"]}}", - "message": "=EpheMessage{{Date.now()}}" - }, - "name": "Mattermost8", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 900, - 450 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "84efb0d3-0dd2-4942-b188-3e4bf1e258b3" - }, - { - "parameters": { - "operation": "delete", - "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}" - }, - "name": "Mattermost9", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1500, - 450 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "d1a5ed6b-2eaf-434c-9bac-de823f6112c6" - }, - { - "parameters": { - "resource": "reaction", - "userId": "fo4frgcntiy6jfc63wor76kxpy", - "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", - "emojiName": "rocket" - }, - "name": "Mattermost10", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1050, - 550 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "5b0cedd2-5bfd-4a46-ae99-7eecfb3ab70b" - }, - { - "parameters": { - "resource": "reaction", - "operation": "getAll", - "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", - "returnAll": false, - "limit": 1 - }, - "name": "Mattermost11", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1200, - 550 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "345bbd7e-f443-45be-bec2-016b0aa64758" - }, - { - "parameters": { - "resource": "reaction", - "operation": "delete", - "userId": "fo4frgcntiy6jfc63wor76kxpy", - "postId": "={{$node[\"Mattermost7\"].json[\"id\"]}}", - "emojiName": "rocket" - }, - "name": "Mattermost12", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1350, - 550 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "e3e339f3-5aae-4b43-b227-aa1ee65700fb" - }, - { - "parameters": { - "resource": "user", - "operation": "create", - "username": "=Username{{Date.now()}}", - "authService": "email", - "email": "=fake{{Date.now()}}@test.com", - "password": "=a{{Math.round(Math.random()*1000000)}}z", - "additionalFields": {} - }, - "name": "Mattermost13", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 440, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "bd6fa681-3999-4bee-ab30-29ab39bc0a67" - }, - { - "parameters": { - "resource": "user", - "operation": "getById", - "userIds": "={{$node[\"Mattermost13\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Mattermost14", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "5cd54641-5d32-48a7-97c8-8bd5f7cdd22e" - }, - { - "parameters": { - "resource": "user", - "operation": "getByEmail", - "email": "={{$node[\"Mattermost13\"].json[\"email\"]}}" - }, - "name": "Mattermost15", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "239a7d42-4b04-401a-a4f2-8818d904e223" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "returnAll": false, - "limit": 1, - "additionalFields": {} - }, - "name": "Mattermost16", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "438a00e9-77fb-4d53-903f-3e67c5a3e8d8" - }, - { - "parameters": { - "resource": "user", - "operation": "invite", - "teamId": "y1p853gfspdrxre5oextbii7wh", - "emails": "={{$node[\"Mattermost13\"].json[\"email\"]}}" - }, - "name": "Mattermost17", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "59055891-8e15-4c74-8832-5a3a8db69b58" - }, - { - "parameters": { - "resource": "user", - "operation": "deactive", - "userId": "={{$node[\"Mattermost13\"].json[\"id\"]}}" - }, - "name": "Mattermost18", - "type": "n8n-nodes-base.mattermost", - "typeVersion": 1, - "position": [ - 1200, - 150 - ], - "credentials": { - "mattermostApi": { - "id": "155", - "name": "Mattermost API creds" - } - }, - "id": "0a74598f-31d7-4011-a447-72d092178f02" - } - ], - "connections": { - "Mattermost": { - "main": [ - [ - { - "node": "Mattermost1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost1": { - "main": [ - [ - { - "node": "Mattermost7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost2": { - "main": [ - [ - { - "node": "Mattermost3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost3": { - "main": [ - [ - { - "node": "Mattermost4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost4": { - "main": [ - [ - { - "node": "Mattermost5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost5": { - "main": [ - [ - { - "node": "Mattermost6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Mattermost", - "type": "main", - "index": 0 - }, - { - "node": "Mattermost13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost7": { - "main": [ - [ - { - "node": "Mattermost8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost9": { - "main": [ - [ - { - "node": "Mattermost2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost8": { - "main": [ - [ - { - "node": "Mattermost10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost10": { - "main": [ - [ - { - "node": "Mattermost11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost11": { - "main": [ - [ - { - "node": "Mattermost12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost12": { - "main": [ - [ - { - "node": "Mattermost9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost13": { - "main": [ - [ - { - "node": "Mattermost14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost14": { - "main": [ - [ - { - "node": "Mattermost15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost15": { - "main": [ - [ - { - "node": "Mattermost16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost16": { - "main": [ - [ - { - "node": "Mattermost17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Mattermost17": { - "main": [ - [ - { - "node": "Mattermost18", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/193.json b/test-workflows/workflows/193.json deleted file mode 100644 index dd812330a8..0000000000 --- a/test-workflows/workflows/193.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "createdAt": "2021-04-30T10:29:23.378Z", - "updatedAt": "2021-04-30T10:29:23.378Z", - "id": "193", - "name": "ChargeBee:Customer:create:Invoice:list pdfUrl", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0bd35ca2-b8f6-4357-9315-f2f1d91289ae" - }, - { - "parameters": { - "resource": "customer", - "properties": { - "id": "=Customer{{Date.now()}}", - "first_name": "=FirstName{{Date.now()}}" - } - }, - "name": "Chargebee", - "type": "n8n-nodes-base.chargebee", - "typeVersion": 1, - "position": [ - 510, - 270 - ], - "credentials": { - "chargebeeApi": { - "id": "156", - "name": "Chargebee API creds" - } - }, - "id": "5fe5d283-a430-4963-8fb1-1954889f2682" - }, - { - "parameters": { - "maxResults": 1 - }, - "name": "Chargebee1", - "type": "n8n-nodes-base.chargebee", - "typeVersion": 1, - "position": [ - 510, - 420 - ], - "credentials": { - "chargebeeApi": { - "id": "156", - "name": "Chargebee API creds" - } - }, - "id": "7a957a3b-449c-4b38-b9aa-ecc8f67dc431" - }, - { - "parameters": { - "operation": "pdfUrl", - "invoiceId": "={{$node[\"Chargebee1\"].json[\"id\"]}}" - }, - "name": "Chargebee2", - "type": "n8n-nodes-base.chargebee", - "typeVersion": 1, - "position": [ - 640, - 420 - ], - "credentials": { - "chargebeeApi": { - "id": "156", - "name": "Chargebee API creds" - } - }, - "id": "484868c1-c294-4998-83cc-7b698d7f77ab" - }, - { - "parameters": { - "resource": "subscription", - "operation": "cancel" - }, - "name": "Chargebee3", - "type": "n8n-nodes-base.chargebee", - "typeVersion": 1, - "position": [ - 520, - 120 - ], - "credentials": { - "chargebeeApi": { - "id": "156", - "name": "Chargebee API creds" - } - }, - "disabled": true, - "id": "1dd03d89-9883-46d6-923b-bff5c8f40af9" - }, - { - "parameters": { - "resource": "subscription" - }, - "name": "Chargebee4", - "type": "n8n-nodes-base.chargebee", - "typeVersion": 1, - "position": [ - 670, - 120 - ], - "credentials": { - "chargebeeApi": { - "id": "156", - "name": "Chargebee API creds" - } - }, - "disabled": true, - "id": "08be587e-e655-400a-b1d1-e0f637f7c415" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Chargebee", - "type": "main", - "index": 0 - }, - { - "node": "Chargebee1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Chargebee1": { - "main": [ - [ - { - "node": "Chargebee2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/194.json b/test-workflows/workflows/194.json deleted file mode 100644 index 2b65e7a573..0000000000 --- a/test-workflows/workflows/194.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "createdAt": "2021-04-30T10:58:10.188Z", - "updatedAt": "2021-04-30T10:58:10.188Z", - "id": "194", - "name": "Mailjet:Email:send sendTemplate", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0a7bd7bf-38ad-4d4f-9e74-390a5a008663" - }, - { - "parameters": { - "operation": "sendTemplate", - "subject": "test", - "fromEmail": "node8qa@gmail.com", - "toEmail": "node8qa@gmail.com", - "templateId": "2850185", - "additionalFields": {} - }, - "name": "Mailjet", - "type": "n8n-nodes-base.mailjet", - "typeVersion": 1, - "position": [ - 480, - 240 - ], - "credentials": { - "mailjetEmailApi": { - "id": "157", - "name": "Mailjet Email API creds" - } - }, - "id": "ad66d136-3fcc-4173-871e-545e451c3fdb" - }, - { - "parameters": { - "fromEmail": "node8qa@gmail.com", - "toEmail": "node8qa@gmail.com", - "subject": "test", - "text": "test", - "additionalFields": {} - }, - "name": "Mailjet1", - "type": "n8n-nodes-base.mailjet", - "typeVersion": 1, - "position": [ - 620, - 240 - ], - "credentials": { - "mailjetEmailApi": { - "id": "157", - "name": "Mailjet Email API creds" - } - }, - "id": "9a786724-7be7-4cc8-bac6-f168b1afa8b7" - }, - { - "parameters": { - "resource": "sms", - "subject": "test", - "text": "test" - }, - "name": "Mailjet2", - "type": "n8n-nodes-base.mailjet", - "typeVersion": 1, - "position": [ - 480, - 390 - ], - "credentials": { - "mailjetSmsApi": { - "id": "158", - "name": "Mailjet SMS API creds" - } - }, - "disabled": true, - "id": "20d1d0dd-e801-41c9-a1b1-1aae62a2a1bf" - } - ], - "connections": { - "Mailjet": { - "main": [ - [ - { - "node": "Mailjet1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Mailjet", - "type": "main", - "index": 0 - }, - { - "node": "Mailjet2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/195.json b/test-workflows/workflows/195.json deleted file mode 100644 index 8c5fcf1364..0000000000 --- a/test-workflows/workflows/195.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "createdAt": "2021-05-03T07:34:19.371Z", - "updatedAt": "2021-05-03T07:34:19.371Z", - "id": "195", - "name": "Kitemaker:Organization:get:Space:getAll:User:getAll:WorkItem:create get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "ad2433c4-6d81-4195-a812-f036e3f63181" - }, - { - "parameters": { - "resource": "organization" - }, - "name": "Kitemaker", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "3714c961-e9eb-4c84-b712-8e30572a0b71" - }, - { - "parameters": { - "resource": "space", - "limit": 1 - }, - "name": "Kitemaker1", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "1e1fb5db-906c-4b93-a411-dfe137207a51" - }, - { - "parameters": { - "resource": "user", - "limit": 1 - }, - "name": "Kitemaker2", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "ab77571b-c9e8-478a-bb3d-e3cda0e7efee" - }, - { - "parameters": { - "operation": "create", - "title": "=WorkItem{{Date.now()}}", - "statusId": "0f42cd20f9617405", - "additionalFields": {} - }, - "name": "Kitemaker3", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 450, - 600 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "67de6dc9-c5c6-464e-b92d-64e839f7ae57" - }, - { - "parameters": { - "workItemId": "={{$node[\"Kitemaker3\"].json[\"id\"]}}" - }, - "name": "Kitemaker4", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 600, - 600 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "623c86bc-c0e6-4974-aede-669fd25b3e49" - }, - { - "parameters": { - "operation": "getAll", - "spaceId": "0f42cd20b0617400", - "limit": 1 - }, - "name": "Kitemaker5", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 750, - 600 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "0282eaab-cfe7-46ab-b0b1-958789c39eb6" - }, - { - "parameters": { - "operation": "update", - "workItemId": "={{$node[\"Kitemaker3\"].json[\"id\"]}}", - "updateFields": { - "statusId": "0f42cd20f9617401", - "title": "=Updated{{$node[\"Kitemaker3\"].json[\"title\"]}}" - } - }, - "name": "Kitemaker6", - "type": "n8n-nodes-base.kitemaker", - "typeVersion": 1, - "position": [ - 900, - 600 - ], - "credentials": { - "kitemakerApi": { - "id": "159", - "name": "Kitemaker API creds" - } - }, - "id": "af8e0085-242b-4d5c-9efd-ded439b41aba" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Kitemaker1", - "type": "main", - "index": 0 - }, - { - "node": "Kitemaker", - "type": "main", - "index": 0 - }, - { - "node": "Kitemaker2", - "type": "main", - "index": 0 - }, - { - "node": "Kitemaker3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Kitemaker3": { - "main": [ - [ - { - "node": "Kitemaker4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Kitemaker4": { - "main": [ - [ - { - "node": "Kitemaker5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Kitemaker5": { - "main": [ - [ - { - "node": "Kitemaker6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/196.json b/test-workflows/workflows/196.json deleted file mode 100644 index 256ddedda6..0000000000 --- a/test-workflows/workflows/196.json +++ /dev/null @@ -1,1222 +0,0 @@ -{ - "createdAt": "2021-05-04T09:29:11.382Z", - "updatedAt": "2021-05-04T10:32:51.938Z", - "id": "196", - "name": "QuickBooks:Bill:create get update getAll delete:Item:getAll:get:Vendor:create get getAll update:Employee:create get update getAll:Customer:create get update getAll:Estimate:create get update getAll send delete:Invoice:create get update getAll send delete:Payment:create get update getAll send delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e0188874-3b1d-4dfb-881d-74e79e543722" - }, - { - "parameters": { - "operation": "create", - "displayName": "=Customer{{Date.now()}}", - "additionalFields": {} - }, - "name": "QuickBooks", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 390 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "689e8fe0-7b26-4a93-926e-221bd869ed8c" - }, - { - "parameters": { - "customerId": "={{$node[\"QuickBooks\"].json[\"Id\"]}}" - }, - "name": "QuickBooks1", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 390 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "39187a1b-c5f9-4a8e-a60c-ae87771be5eb" - }, - { - "parameters": { - "operation": "update", - "customerId": "={{$node[\"QuickBooks\"].json[\"Id\"]}}", - "updateFields": { - "Active": false - } - }, - "name": "QuickBooks2", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 390 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "4b0c15be-a7fa-440f-918a-3d197305640e" - }, - { - "parameters": { - "operation": "getAll", - "filters": {} - }, - "name": "QuickBooks3", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 390 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "9219c2cd-e3df-4afd-9a49-ca83c2b7b1ce" - }, - { - "parameters": { - "resource": "employee", - "operation": "create", - "FamilyName": "=Fname{{Date.now()}}", - "GivenName": "=Name{{Date.now()}}", - "additionalFields": {} - }, - "name": "QuickBooks4", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 240 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "e66647c5-fdd7-4d10-b029-033cd7a71076" - }, - { - "parameters": { - "resource": "employee", - "employeeId": "={{$node[\"QuickBooks4\"].json[\"Id\"]}}" - }, - "name": "QuickBooks5", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 240 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "6d100355-e163-43ab-affa-850a3e547f0e" - }, - { - "parameters": { - "resource": "employee", - "operation": "update", - "employeeId": "={{$node[\"QuickBooks4\"].json[\"Id\"]}}", - "updateFields": { - "Active": false - } - }, - "name": "QuickBooks6", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 240 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "f53f7640-f512-4beb-beb1-61edbf24e164" - }, - { - "parameters": { - "resource": "employee", - "operation": "getAll", - "filters": {} - }, - "name": "QuickBooks7", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 240 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "489b4d87-a2b1-4111-a165-b36762dc6de2" - }, - { - "parameters": { - "resource": "estimate", - "operation": "create", - "CustomerRef": "1", - "Line": [ - { - "itemId": "3", - "DetailType": "SalesItemLineDetail", - "Amount": 3, - "Description": "test" - } - ], - "additionalFields": {} - }, - "name": "QuickBooks8", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "f47dca6a-81eb-41ab-bf6f-34993f8333bc" - }, - { - "parameters": { - "resource": "estimate", - "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}" - }, - "name": "QuickBooks9", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "dc22140e-affa-4da1-9636-c0bd04987c39" - }, - { - "parameters": { - "resource": "estimate", - "operation": "update", - "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}", - "updateFields": { - "BillEmail": "fake@test.com" - } - }, - "name": "QuickBooks10", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "bf4a83d1-dfbb-4a38-8140-fefe9ee06195" - }, - { - "parameters": { - "resource": "estimate", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks11", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "8403016a-222f-4f05-80cf-2982bdeac426" - }, - { - "parameters": { - "resource": "estimate", - "operation": "send", - "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}", - "email": "fake@test.com" - }, - "name": "QuickBooks12", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1050, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "c00d2656-596b-4a09-ae82-09d5c71dcaab" - }, - { - "parameters": { - "resource": "estimate", - "operation": "delete", - "estimateId": "={{$node[\"QuickBooks8\"].json[\"Id\"]}}" - }, - "name": "QuickBooks13", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1200, - 540 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "0b7f754f-a7d9-49fe-b629-3c0cf1b1b7f5" - }, - { - "parameters": { - "resource": "invoice", - "operation": "create", - "CustomerRef": "5", - "Line": [ - { - "DetailType": "SalesItemLineDetail", - "itemId": "7", - "Amount": 0, - "Description": "test" - } - ], - "additionalFields": {} - }, - "name": "QuickBooks14", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "c5d80817-5c5a-4a78-bc72-4ca29b4757f4" - }, - { - "parameters": { - "resource": "invoice", - "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}" - }, - "name": "QuickBooks15", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "6ad6231c-b645-4e00-b61f-ab4031b9f4f2" - }, - { - "parameters": { - "resource": "invoice", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks16", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "88333b7b-f905-4c83-960e-3eb650f17d00" - }, - { - "parameters": { - "resource": "invoice", - "operation": "update", - "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}", - "updateFields": { - "CustomerMemo": "test" - } - }, - "name": "QuickBooks17", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "e625f0d1-a0bb-4f8d-83b2-9dc62d3a526d" - }, - { - "parameters": { - "resource": "invoice", - "operation": "send", - "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}", - "email": "fake@test.com" - }, - "name": "QuickBooks18", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1050, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "59851dc6-1aee-4c49-9cb1-3447df019be1" - }, - { - "parameters": { - "resource": "invoice", - "operation": "delete", - "invoiceId": "={{$node[\"QuickBooks14\"].json[\"Id\"]}}" - }, - "name": "QuickBooks19", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1190, - 690 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "68dda52d-9455-491e-b7b9-8dc10d6e8460" - }, - { - "parameters": { - "resource": "item", - "itemId": "={{$node[\"QuickBooks21\"].json[\"Id\"]}}" - }, - "name": "QuickBooks22", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - -60 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "98c8ad9c-5053-4376-9dc0-95545e6f3d23" - }, - { - "parameters": { - "resource": "item", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks21", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - -60 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "e1b294da-dea1-4318-a487-390aa95c9287" - }, - { - "parameters": { - "resource": "payment", - "operation": "create", - "CustomerRef": "1", - "TotalAmt": 50, - "additionalFields": {} - }, - "name": "QuickBooks20", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "aa58f15e-a22b-402c-8af3-39aeea6de874" - }, - { - "parameters": { - "resource": "payment", - "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}" - }, - "name": "QuickBooks23", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "f0226998-0489-4b64-ba0e-c06e13e75a9d" - }, - { - "parameters": { - "resource": "payment", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks24", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "49554443-c484-4f7b-ad8f-8694e3163150" - }, - { - "parameters": { - "resource": "payment", - "operation": "update", - "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}", - "updateFields": { - "TxnDate": "2021-04-30T22:00:00.000Z" - } - }, - "name": "QuickBooks25", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "65fb3536-c40a-48a4-9e6a-ce4d4f24628a" - }, - { - "parameters": { - "resource": "payment", - "operation": "send", - "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}", - "email": "fake@test.com" - }, - "name": "QuickBooks26", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1050, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "33f3a73e-799e-4dc0-a8fc-5c9aa492a953" - }, - { - "parameters": { - "resource": "payment", - "operation": "delete", - "paymentId": "={{$node[\"QuickBooks20\"].json[\"Id\"]}}" - }, - "name": "QuickBooks27", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1200, - 840 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "fb87ee2d-7fad-4cbe-82a4-aede0b3462c1" - }, - { - "parameters": { - "resource": "vendor", - "operation": "create", - "displayName": "=Vendor{{Date.now()}}", - "additionalFields": {} - }, - "name": "QuickBooks28", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - 90 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "09a16143-613f-4812-926a-acacbefb63d1" - }, - { - "parameters": { - "resource": "vendor", - "vendorId": "={{$node[\"QuickBooks28\"].json[\"Id\"]}}" - }, - "name": "QuickBooks29", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - 90 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "ec53abeb-83ad-4cdb-b419-56eff8ed7de7" - }, - { - "parameters": { - "resource": "vendor", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks30", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - 90 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "f3c16a5c-83c6-410c-b382-1b22dd7404e1" - }, - { - "parameters": { - "resource": "vendor", - "operation": "update", - "vendorId": "={{$node[\"QuickBooks28\"].json[\"Id\"]}}", - "updateFields": { - "Active": false - } - }, - "name": "QuickBooks31", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - 90 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "0bf8d78c-d02e-4b3c-a1fc-98a7afe4f7b9" - }, - { - "parameters": { - "resource": "bill", - "operation": "create", - "VendorRef": "46", - "Line": [ - { - "DetailType": "AccountBasedExpenseLineDetail", - "Amount": 152, - "Description": "test", - "accountId": "78" - } - ], - "additionalFields": {} - }, - "name": "QuickBooks37", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 450, - -210 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "2f7af95b-cbb8-4272-bdaf-64cd9906ae47" - }, - { - "parameters": { - "resource": "bill", - "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}" - }, - "name": "QuickBooks38", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 600, - -210 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "28dbf9b4-288b-4726-8796-718e9b586cca" - }, - { - "parameters": { - "resource": "bill", - "operation": "update", - "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}", - "updateFields": { - "DueDate": "2021-04-30T22:00:00.000Z" - } - }, - "name": "QuickBooks39", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 750, - -210 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "2843f656-3ee4-4e51-a376-315d92f8d9fd" - }, - { - "parameters": { - "resource": "bill", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "QuickBooks40", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 900, - -210 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "624d0f96-d465-448b-b9a1-50483479e032" - }, - { - "parameters": { - "resource": "bill", - "operation": "delete", - "billId": "={{$node[\"QuickBooks37\"].json[\"Id\"]}}" - }, - "name": "QuickBooks41", - "type": "n8n-nodes-base.quickbooks", - "typeVersion": 1, - "position": [ - 1050, - -210 - ], - "credentials": { - "quickBooksOAuth2Api": { - "id": "160", - "name": "QuickBooks OAuth2 API creds" - } - }, - "id": "0c89671b-1312-46b7-92af-4b879dbd5ff0" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "QuickBooks28", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks21", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks4", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks37", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks8", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks14", - "type": "main", - "index": 0 - }, - { - "node": "QuickBooks20", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks": { - "main": [ - [ - { - "node": "QuickBooks1", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks1": { - "main": [ - [ - { - "node": "QuickBooks2", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks2": { - "main": [ - [ - { - "node": "QuickBooks3", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks4": { - "main": [ - [ - { - "node": "QuickBooks5", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks5": { - "main": [ - [ - { - "node": "QuickBooks6", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks6": { - "main": [ - [ - { - "node": "QuickBooks7", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks8": { - "main": [ - [ - { - "node": "QuickBooks9", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks9": { - "main": [ - [ - { - "node": "QuickBooks10", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks10": { - "main": [ - [ - { - "node": "QuickBooks11", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks11": { - "main": [ - [ - { - "node": "QuickBooks12", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks12": { - "main": [ - [ - { - "node": "QuickBooks13", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks14": { - "main": [ - [ - { - "node": "QuickBooks15", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks15": { - "main": [ - [ - { - "node": "QuickBooks16", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks16": { - "main": [ - [ - { - "node": "QuickBooks17", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks17": { - "main": [ - [ - { - "node": "QuickBooks18", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks18": { - "main": [ - [ - { - "node": "QuickBooks19", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks21": { - "main": [ - [ - { - "node": "QuickBooks22", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks20": { - "main": [ - [ - { - "node": "QuickBooks23", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks23": { - "main": [ - [ - { - "node": "QuickBooks24", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks24": { - "main": [ - [ - { - "node": "QuickBooks25", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks25": { - "main": [ - [ - { - "node": "QuickBooks26", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks26": { - "main": [ - [ - { - "node": "QuickBooks27", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks28": { - "main": [ - [ - { - "node": "QuickBooks29", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks29": { - "main": [ - [ - { - "node": "QuickBooks30", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks30": { - "main": [ - [ - { - "node": "QuickBooks31", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks37": { - "main": [ - [ - { - "node": "QuickBooks38", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks38": { - "main": [ - [ - { - "node": "QuickBooks39", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks39": { - "main": [ - [ - { - "node": "QuickBooks40", - "type": "main", - "index": 0 - } - ] - ] - }, - "QuickBooks40": { - "main": [ - [ - { - "node": "QuickBooks41", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/197.json b/test-workflows/workflows/197.json deleted file mode 100644 index 235aa97142..0000000000 --- a/test-workflows/workflows/197.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "createdAt": "2021-05-06T09:34:45.652Z", - "updatedAt": "2021-05-06T09:39:48.494Z", - "id": "197", - "name": "MQTT:sendMessage", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "850eb506-8c40-4257-92f9-13b39588d01a" - }, - { - "parameters": { - "topic": "TestTopic", - "sendInputData": false, - "message": "=MQTT-message{{Date.now()}}", - "options": { - "qos": 0 - } - }, - "name": "MQTT qos:1", - "type": "n8n-nodes-base.mqtt", - "typeVersion": 1, - "position": [ - 450, - 160 - ], - "credentials": { - "mqtt": { - "id": "131", - "name": "MQTT creds" - } - }, - "id": "af2b9c5f-2b44-43d6-852f-436ebfc72c3c" - }, - { - "parameters": { - "topic": "TestTopic", - "sendInputData": false, - "message": "=MQTT-message{{Date.now()}}", - "options": { - "qos": 1 - } - }, - "name": "MQTT1 qos:0", - "type": "n8n-nodes-base.mqtt", - "typeVersion": 1, - "position": [ - 450, - 310 - ], - "credentials": { - "mqtt": { - "id": "131", - "name": "MQTT creds" - } - }, - "id": "37d6e4f3-b06b-4bb3-8f68-ca54de4e41a9" - }, - { - "parameters": { - "topic": "TestTopic", - "options": { - "qos": 2 - } - }, - "name": "MQTT2 qos:2", - "type": "n8n-nodes-base.mqtt", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "mqtt": { - "id": "131", - "name": "MQTT creds" - } - }, - "id": "6e4693bb-23e5-4622-aa4f-2e93ce916f86" - }, - { - "parameters": { - "functionCode": "items = [\n {\n json:{\n \"message\":`MQTT-item-message${Date.now()}`\n }\n }\n]\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "id": "37ef3107-c80c-4bad-a5d6-3d9a349ca76a" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "MQTT qos:1", - "type": "main", - "index": 0 - }, - { - "node": "MQTT1 qos:0", - "type": "main", - "index": 0 - }, - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "MQTT2 qos:2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/198.json b/test-workflows/workflows/198.json deleted file mode 100644 index a75b867785..0000000000 --- a/test-workflows/workflows/198.json +++ /dev/null @@ -1,329 +0,0 @@ -{ - "createdAt": "2021-05-07T14:37:14.511Z", - "updatedAt": "2021-05-12T17:39:44.046Z", - "id": "198", - "name": "GoogleCloudFirestore:Document:create get upset getAll query delete:Collection:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "68fcd431-1e94-4928-b19a-1749502c6ec5" - }, - { - "parameters": { - "operation": "create", - "projectId": "fixedtestproject", - "collection": "FixedCollection", - "columns": "number,boolean" - }, - "name": "Google Cloud Firestore", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 600, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "d5788046-8872-44f7-83c4-4d1b66480b22" - }, - { - "parameters": { - "values": { - "number": [ - { - "name": "number", - "value": 3 - } - ], - "boolean": [ - { - "name": "boolean", - "value": true - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 250 - ], - "id": "b4b9cc8e-7496-40ed-ad8a-eb02421546e0" - }, - { - "parameters": { - "projectId": "fixedtestproject", - "collection": "FixedCollection", - "documentId": "={{$node[\"Google Cloud Firestore\"].json[\"_id\"]}}" - }, - "name": "Google Cloud Firestore1", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 800, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "56bff4bf-504c-4dca-bcef-0dbd4f881303" - }, - { - "parameters": { - "operation": "upsert", - "projectId": "fixedtestproject", - "collection": "FixedCollection", - "updateKey": "={{$node[\"Google Cloud Firestore1\"].json[\"_id\"]}}", - "columns": "number" - }, - "name": "Google Cloud Firestore2", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 1100, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "fe3abd23-d891-4bcf-aa5e-64e9a0961332" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "number": [ - { - "name": "number", - "value": 100 - } - ], - "boolean": [ - { - "name": "boolean", - "value": true - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 950, - 250 - ], - "id": "3bbbae32-f56a-4252-8e4b-4f0f4854fe22" - }, - { - "parameters": { - "operation": "getAll", - "projectId": "fixedtestproject", - "collection": "FixedCollection", - "limit": 1 - }, - "name": "Google Cloud Firestore3", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 1250, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "77e69936-c4c5-4aee-918b-1246e25e0446" - }, - { - "parameters": { - "operation": "query", - "projectId": "fixedtestproject", - "query": "{\n \"structuredQuery\":{\n \"where\":{\n \"fieldFilter\":{\n \"field\":{\n \"fieldPath\": \"number\"\n },\n \"op\":\"EQUAL\",\n \"value\":{\n \"integerValue\": 100\n }\n }\n },\n \"from\":[\n {\n \"collectionId\":\"FixedCollection\"\n }\n ]\n }\n}" - }, - "name": "Google Cloud Firestore4", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 1450, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "0f0d74da-fbc7-4078-9462-d8c40322b9e7" - }, - { - "parameters": { - "resource": "collection", - "projectId": "fixedtestproject", - "limit": 1 - }, - "name": "Google Cloud Firestore5", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 450, - 400 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "bda9b450-d8d2-46a0-b3f2-d38fe8bfb6e8" - }, - { - "parameters": { - "operation": "delete", - "projectId": "fixedtestproject", - "collection": "FixedCollection", - "documentId": "={{$node[\"Google Cloud Firestore\"].json[\"_id\"]}}" - }, - "name": "Google Cloud Firestore6", - "type": "n8n-nodes-base.googleFirebaseCloudFirestore", - "typeVersion": 1, - "position": [ - 1650, - 250 - ], - "credentials": { - "googleFirebaseCloudFirestoreOAuth2Api": { - "id": "167", - "name": "Google Firebase Cloud Firestore OAuth2 API creds" - } - }, - "id": "62f8a14b-34de-48c6-87d9-6292203427e1" - } - ], - "connections": { - "Google Cloud Firestore": { - "main": [ - [ - { - "node": "Google Cloud Firestore1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Google Cloud Firestore", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Cloud Firestore1": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Google Cloud Firestore2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Cloud Firestore2": { - "main": [ - [ - { - "node": "Google Cloud Firestore3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Cloud Firestore3": { - "main": [ - [ - { - "node": "Google Cloud Firestore4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Google Cloud Firestore5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Cloud Firestore4": { - "main": [ - [ - { - "node": "Google Cloud Firestore6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/199.json b/test-workflows/workflows/199.json deleted file mode 100644 index d61c381d94..0000000000 --- a/test-workflows/workflows/199.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "createdAt": "2021-05-10T11:24:19.202Z", - "updatedAt": "2021-05-10T13:18:56.388Z", - "id": "199", - "name": "MailCheck:Email:check", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "77ccc40b-307c-479e-882d-6f2700b67b8d" - }, - { - "parameters": { - "email": "jan@n8n.io" - }, - "name": "Mailcheck", - "type": "n8n-nodes-base.mailcheck", - "typeVersion": 1, - "position": [ - 470, - 300 - ], - "credentials": { - "mailcheckApi": { - "id": "169", - "name": "Mailcheck API creds" - } - }, - "id": "01a36e75-0cbd-4536-896e-1fe4cf9a8179" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Mailcheck", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "timezone": "Europe/Berlin" - }, - "staticData": { - "node:Clockify Trigger": { - "userId": "60335ad2f24e660123d7fdeb", - "lastTimeChecked": "2021-05-10T14:49:24Z" - } - }, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/20.json b/test-workflows/workflows/20.json deleted file mode 100644 index 04bdb59e83..0000000000 --- a/test-workflows/workflows/20.json +++ /dev/null @@ -1,583 +0,0 @@ -{ - "createdAt": "2021-02-16T15:33:11.177Z", - "updatedAt": "2021-06-04T17:17:22.109Z", - "id": "20", - "name": "Hubspot:Contact:upsert getall search getRecentlyCreatedUpdated get delete:Company:getall searchByDomain getRecentlyCreated update getRecentlyModified delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d8cbfb90-51ba-45b9-a701-1d278992b7d5" - }, - { - "parameters": { - "resource": "contact", - "email": "nodeqa@n8n.io", - "additionalFields": {} - }, - "name": "Hubspot", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 410, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "notes": "IGNORED_PROPERTIES=associated-company", - "id": "6b417cab-bf37-4b57-8fdf-24f011106618" - }, - { - "parameters": { - "resource": "contact", - "operation": "getRecentlyCreatedUpdated", - "limit": 1, - "filters": {} - }, - "name": "Hubspot1", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1320, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "0be3e59d-9094-4422-a834-bcc945725a75" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Hubspot2", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 710, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "5180a058-b5ff-481b-90aa-421f8609b091" - }, - { - "parameters": { - "resource": "contact", - "operation": "search", - "limit": 1, - "filterGroupsUi": { - "filterGroupsValues": [] - }, - "additionalFields": {} - }, - "name": "Hubspot3", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1000, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "2e18e4b1-d379-4fa4-b9ad-2da493c43a22" - }, - { - "parameters": { - "resource": "contact", - "operation": "delete", - "contactId": "={{$json[\"vid\"]}}" - }, - "name": "Hubspot4", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1880, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "573f1fdf-4d4e-44e4-a086-b1389dab7ff8" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "contactId": "={{$json[\"vid\"]}}", - "additionalFields": {} - }, - "name": "Hubspot5", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1600, - 260 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "notes": "IGNORED_PROPERTIES=associated-company", - "id": "ae17da34-808d-4e19-81f1-42546ec64dbc" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1500);\n\nreturn [items[0]];" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1140, - 260 - ], - "notesInFlow": true, - "notes": "Limit Contacts to single one", - "id": "702edf3d-4e2e-4091-875f-b477c842802c" - }, - { - "parameters": { - "resource": "company", - "name": "n8n", - "additionalFields": { - "companyDomainName": "n8n.io" - } - }, - "name": "Hubspot6", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 410, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "30467fe0-8ba4-4b71-942e-0cfa7adde3c1" - }, - { - "parameters": { - "resource": "company", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Hubspot7", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 570, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "2d35a462-2a30-4297-a7df-1aca9be285c3" - }, - { - "parameters": { - "resource": "company", - "operation": "getRecentlyCreated", - "limit": 1 - }, - "name": "Hubspot8", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 910, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "98a71897-123f-4c6e-a0c7-ba79e5947823" - }, - { - "parameters": { - "resource": "company", - "operation": "searchByDomain", - "domain": "n8n.io", - "limit": 1, - "options": {} - }, - "name": "Hubspot9", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 740, - 430 - ], - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "46d6962d-f16a-4d89-92d6-bce6506f6e58" - }, - { - "parameters": { - "resource": "company", - "operation": "update", - "companyId": "={{$node[\"Hubspot6\"].json[\"companyId\"]}}", - "updateFields": { - "city": "berlin" - } - }, - "name": "Hubspot10", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1060, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "b69304b8-5093-4988-8304-89d3ee8e2c2e" - }, - { - "parameters": { - "resource": "company", - "operation": "getRecentlyModified", - "limit": 1, - "filters": {} - }, - "name": "Hubspot11", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1220, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "c0f52b10-af2e-41d2-a902-6892f14742e6" - }, - { - "parameters": { - "resource": "company", - "operation": "delete", - "companyId": "={{$node[\"Hubspot6\"].json[\"companyId\"]}}" - }, - "name": "Hubspot12", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1390, - 430 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "cc00b5ca-2611-472d-89da-4649e12afa89" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 550, - 260 - ], - "typeVersion": 1, - "notes": "IGNORED_PROPERTIES=associated-company", - "id": "d8a86813-0d02-4b5d-89f9-41818194c326" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 850, - 260 - ], - "typeVersion": 1, - "id": "9276f38e-185a-4844-8764-ef4e91b0bd68" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1480, - 260 - ], - "typeVersion": 1, - "id": "ea72ad5a-b5b1-40f3-8f5f-9ac4fb5c37c4" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1730, - 260 - ], - "typeVersion": 1, - "notes": "IGNORED_PROPERTIES=associated-company", - "id": "0a60605e-e573-4386-9fe5-2198a3c838d8" - } - ], - "connections": { - "Hubspot": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot1": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot2": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot3": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Hubspot6", - "type": "main", - "index": 0 - }, - { - "node": "Hubspot", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot5": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Hubspot1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot6": { - "main": [ - [ - { - "node": "Hubspot7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot7": { - "main": [ - [ - { - "node": "Hubspot9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot8": { - "main": [ - [ - { - "node": "Hubspot10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot9": { - "main": [ - [ - { - "node": "Hubspot8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot10": { - "main": [ - [ - { - "node": "Hubspot11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot11": { - "main": [ - [ - { - "node": "Hubspot12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Hubspot2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "Hubspot3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "Hubspot5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "Hubspot4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/200.json b/test-workflows/workflows/200.json deleted file mode 100644 index 7bbf7a85db..0000000000 --- a/test-workflows/workflows/200.json +++ /dev/null @@ -1,1121 +0,0 @@ -{ - "createdAt": "2021-05-11T07:41:09.199Z", - "updatedAt": "2021-05-11T08:09:44.364Z", - "id": "200", - "name": "Pipedrive:Activity:create get update getAll delete:Deal:create get update duplicate getAll delete:Person:create get update getAll search delete:File:create get download delete:Organization:create get update getAll delete:Note:create get update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "1424805b-9720-4fc3-99a3-96b39b1b2d4c" - }, - { - "parameters": { - "resource": "activity", - "subject": "=Activity{{(new Date).toISOString()}}", - "type": "meeting", - "additionalFields": {} - }, - "name": "Pipedrive", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 500, - 200 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "c137d42d-46da-4fea-aa3f-098b56e0828d" - }, - { - "parameters": { - "resource": "activity", - "operation": "get", - "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}" - }, - "name": "Pipedrive1", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 650, - 200 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "3f597274-830b-4dcb-b0c6-0f1df94e6e9b" - }, - { - "parameters": { - "resource": "activity", - "operation": "update", - "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}", - "updateFields": { - "done": "1", - "note": "Used for testing", - "subject": "=Updated{{$node[\"Pipedrive\"].json[\"subject\"]}}", - "type": "call" - } - }, - "name": "Pipedrive2", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 800, - 200 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "14248e74-036b-4817-92b9-c9f549cb9c4f" - }, - { - "parameters": { - "resource": "activity", - "operation": "getAll", - "limit": 1 - }, - "name": "Pipedrive3", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 950, - 200 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "a073500e-83c6-4d69-a205-b053396c213e" - }, - { - "parameters": { - "resource": "activity", - "operation": "delete", - "activityId": "={{$node[\"Pipedrive\"].json[\"id\"]}}" - }, - "name": "Pipedrive4", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1100, - 200 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "25501736-984e-47c8-890e-187307524392" - }, - { - "parameters": { - "title": "=Deal{{(new Date).toISOString()}}", - "additionalFields": { - "status": "open" - } - }, - "name": "Pipedrive5", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 500, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "dfa82f60-7728-4318-9125-229db86ce994" - }, - { - "parameters": { - "operation": "get", - "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" - }, - "name": "Pipedrive6", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 650, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "ddc83c7e-1434-4f19-963b-08e52484dbb6" - }, - { - "parameters": { - "operation": "update", - "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}", - "updateFields": { - "status": "won", - "title": "=Updated{{$node[\"Pipedrive5\"].json[\"title\"]}}" - } - }, - "name": "Pipedrive7", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "00491412-62f0-45b4-ad3b-27cbac938293" - }, - { - "parameters": { - "operation": "duplicate", - "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" - }, - "name": "Pipedrive8", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "b72444fe-3667-468a-89ef-9bbb6c05ff96" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Pipedrive9", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1100, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "4f5d8819-5573-4214-bdf4-711dd2426277" - }, - { - "parameters": { - "operation": "delete", - "dealId": "={{$node[\"Pipedrive5\"].json[\"id\"]}}" - }, - "name": "Pipedrive10", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1250, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "d9540101-e05b-4599-8e26-283e4da6a4bf" - }, - { - "parameters": { - "operation": "delete", - "dealId": "={{$node[\"Pipedrive8\"].json[\"id\"]}}" - }, - "name": "Pipedrive11", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1400, - 350 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "967d2d73-6ae2-46e5-9c9c-3325fd47a0f5" - }, - { - "parameters": { - "resource": "file", - "additionalFields": {} - }, - "name": "Pipedrive12", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 800, - 500 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "751fb956-96d4-4b31-92c7-34159e7c83d1" - }, - { - "parameters": { - "values": { - "number": [], - "string": [ - { - "name": "file", - "value": "=Testing file" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 500, - 500 - ], - "id": "aa58167e-6c9e-4be6-9049-f280204d8eba" - }, - { - "parameters": { - "mode": "jsonToBinary", - "convertAllData": false, - "sourceKey": "file", - "options": { - "fileName": "testFile", - "mimeType": "text" - } - }, - "name": "Move Binary Data", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 650, - 500 - ], - "id": "3ba06dd7-c49e-4b72-9785-2e5e3fc01f53" - }, - { - "parameters": { - "resource": "file", - "operation": "get", - "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" - }, - "name": "Pipedrive13", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 950, - 500 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "e769e423-dcff-4d51-8200-3c5a3fbe01e2" - }, - { - "parameters": { - "resource": "file", - "operation": "download", - "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" - }, - "name": "Pipedrive14", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1100, - 500 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "c973182a-5d43-4a12-92c2-1ece40b66f22" - }, - { - "parameters": { - "resource": "file", - "operation": "delete", - "fileId": "={{$node[\"Pipedrive12\"].json[\"id\"]}}" - }, - "name": "Pipedrive15", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1250, - 500 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "0d2cac69-6912-4156-8bb5-57c174a53e82" - }, - { - "parameters": { - "resource": "organization", - "name": "=Organization_{{(new Date).toISOString()}}", - "additionalFields": { - "label": 3 - } - }, - "name": "Pipedrive16", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 500, - 650 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "45b73830-24ac-486f-b1e1-cfa76d621624" - }, - { - "parameters": { - "resource": "organization", - "operation": "get", - "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" - }, - "name": "Pipedrive17", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 670, - 650 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "0fd8d1b6-4851-4c91-b3ea-cf7a2759286e" - }, - { - "parameters": { - "resource": "organization", - "operation": "update", - "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}", - "updateFields": { - "label": 2, - "name": "=Updated{{$node[\"Pipedrive16\"].json[\"name\"]}}", - "visible_to": "3" - } - }, - "name": "Pipedrive18", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 820, - 650 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "00c38f10-591e-43b4-8e1e-875383f0846b" - }, - { - "parameters": { - "resource": "organization", - "operation": "getAll", - "limit": 1 - }, - "name": "Pipedrive19", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 970, - 650 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "c528c1e6-aee8-46ae-a573-b770d61a5462" - }, - { - "parameters": { - "resource": "organization", - "operation": "delete", - "organizationId": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" - }, - "name": "Pipedrive20", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1120, - 650 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "95f50030-a435-470c-910d-990fd4bde80d" - }, - { - "parameters": { - "resource": "note", - "content": "=Note_{{(new Date).toISOString()}}", - "additionalFields": { - "org_id": "={{$node[\"Pipedrive16\"].json[\"id\"]}}" - } - }, - "name": "Pipedrive21", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 650, - 800 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "dcdc4d84-f8c2-4402-bfc9-1b38740bc70a" - }, - { - "parameters": { - "resource": "note", - "operation": "get", - "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}" - }, - "name": "Pipedrive22", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 800, - 800 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "4128895d-8656-49fb-a196-099f2ec336a3" - }, - { - "parameters": { - "resource": "note", - "operation": "update", - "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}", - "updateFields": { - "content": "=Updated{{$node[\"Pipedrive21\"].json[\"content\"]}}" - } - }, - "name": "Pipedrive23", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 950, - 800 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "d1900e79-4b29-4f56-9110-311ea321dc78" - }, - { - "parameters": { - "resource": "note", - "operation": "getAll", - "additionalFields": {}, - "limit": 1 - }, - "name": "Pipedrive24", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1100, - 800 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "64d156ea-828b-42da-88d5-170e48d1b11b" - }, - { - "parameters": { - "resource": "note", - "operation": "delete", - "noteId": "={{$node[\"Pipedrive21\"].json[\"id\"]}}" - }, - "name": "Pipedrive25", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1250, - 800 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "40e8dea1-279c-44d6-ae6a-cc79ab5e123b" - }, - { - "parameters": { - "resource": "person", - "name": "=Person_{{(new Date).toISOString()}}", - "additionalFields": { - "label": 1, - "visible_to": "3" - } - }, - "name": "Pipedrive26", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 500, - 50 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "c1b68ae7-37ac-42d5-9ff8-43c88223122a" - }, - { - "parameters": { - "resource": "person", - "operation": "get", - "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}" - }, - "name": "Pipedrive27", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 650, - 50 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "c9dcd61f-c456-40e8-ace3-05c9e5f961c7" - }, - { - "parameters": { - "resource": "person", - "operation": "update", - "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}", - "updateFields": { - "label": 2, - "name": "=Updated{{$node[\"Pipedrive31302926\"].json[\"first_name\"]}}" - } - }, - "name": "Pipedrive28", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 800, - 50 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "04f88fba-4196-400e-9147-760c9253b423" - }, - { - "parameters": { - "resource": "person", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Pipedrive29", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 950, - 50 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "2e72dc73-d6f5-4641-bb17-15def44c8481" - }, - { - "parameters": { - "resource": "person", - "operation": "search", - "limit": 1, - "term": "updated", - "additionalFields": {} - }, - "name": "Pipedrive30", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1100, - 50 - ], - "alwaysOutputData": true, - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "3b2617a2-e33d-40fa-8e1b-5a7c402a2898" - }, - { - "parameters": { - "resource": "person", - "operation": "delete", - "personId": "={{$node[\"Pipedrive26\"].json[\"id\"]}}" - }, - "name": "Pipedrive31", - "type": "n8n-nodes-base.pipedrive", - "typeVersion": 1, - "position": [ - 1250, - 50 - ], - "credentials": { - "pipedriveApi": { - "id": "171", - "name": "Pipedrive API creds" - } - }, - "id": "094f29de-6d5b-4433-a673-3a5127f8438d" - } - ], - "connections": { - "Pipedrive": { - "main": [ - [ - { - "node": "Pipedrive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive1": { - "main": [ - [ - { - "node": "Pipedrive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive2": { - "main": [ - [ - { - "node": "Pipedrive3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive3": { - "main": [ - [ - { - "node": "Pipedrive4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Pipedrive", - "type": "main", - "index": 0 - }, - { - "node": "Pipedrive5", - "type": "main", - "index": 0 - }, - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Pipedrive16", - "type": "main", - "index": 0 - }, - { - "node": "Pipedrive26", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive5": { - "main": [ - [ - { - "node": "Pipedrive6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive6": { - "main": [ - [ - { - "node": "Pipedrive7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive7": { - "main": [ - [ - { - "node": "Pipedrive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive8": { - "main": [ - [ - { - "node": "Pipedrive9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive9": { - "main": [ - [ - { - "node": "Pipedrive10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive10": { - "main": [ - [ - { - "node": "Pipedrive11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Move Binary Data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Move Binary Data": { - "main": [ - [ - { - "node": "Pipedrive12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive12": { - "main": [ - [ - { - "node": "Pipedrive13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive13": { - "main": [ - [ - { - "node": "Pipedrive14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive14": { - "main": [ - [ - { - "node": "Pipedrive15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive16": { - "main": [ - [ - { - "node": "Pipedrive21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive17": { - "main": [ - [ - { - "node": "Pipedrive18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive18": { - "main": [ - [ - { - "node": "Pipedrive19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive19": { - "main": [ - [ - { - "node": "Pipedrive20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive21": { - "main": [ - [ - { - "node": "Pipedrive22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive22": { - "main": [ - [ - { - "node": "Pipedrive23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive23": { - "main": [ - [ - { - "node": "Pipedrive24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive24": { - "main": [ - [ - { - "node": "Pipedrive25", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive25": { - "main": [ - [ - { - "node": "Pipedrive17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive26": { - "main": [ - [ - { - "node": "Pipedrive27", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive27": { - "main": [ - [ - { - "node": "Pipedrive28", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive28": { - "main": [ - [ - { - "node": "Pipedrive29", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive29": { - "main": [ - [ - { - "node": "Pipedrive30", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pipedrive30": { - "main": [ - [ - { - "node": "Pipedrive31", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/201.json b/test-workflows/workflows/201.json deleted file mode 100644 index 628f5511cd..0000000000 --- a/test-workflows/workflows/201.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "createdAt": "2021-05-12T07:38:44.391Z", - "updatedAt": "2021-06-04T17:24:19.887Z", - "id": "201", - "name": "Iterable:User:upsert get delete:UserList:add remove:Event:track", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "87df2205-aeb2-453f-920f-89f4d9da9608" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "userId", - "value": "=User_{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 220 - ], - "id": "5d51609e-46fa-4c57-b1ed-447eb36ff334" - }, - { - "parameters": { - "identifier": "userId", - "value": "={{$node[\"Set\"].json[\"userId\"]}}", - "additionalFields": { - "dataFieldsUi": { - "dataFieldValues": [] - } - } - }, - "name": "Iterable", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 590, - 220 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "id": "11659a29-db59-49ad-a74c-02702ce391d1" - }, - { - "parameters": { - "operation": "get", - "by": "userId", - "userId": "={{$node[\"Set\"].json[\"userId\"]}}" - }, - "name": "Iterable1", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 900, - 220 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "notes": "IGNORED_PROPERTIES=dataFields", - "id": "d8af6ed5-9797-4904-880d-d3a68abb7457" - }, - { - "parameters": { - "resource": "userList", - "listId": 798932, - "identifier": "userId", - "value": "={{$node[\"Set\"].json[\"userId\"]}}" - }, - "name": "Iterable2", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 1050, - 320 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "id": "d5799965-0693-4d2e-bfd7-450d0022e355" - }, - { - "parameters": { - "resource": "userList", - "operation": "remove", - "listId": 798932, - "identifier": "userId", - "value": "={{$node[\"Set\"].json[\"userId\"]}}", - "additionalFields": {} - }, - "name": "Iterable3", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 1200, - 320 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "id": "d66b3b48-e631-47e0-ade1-fe4b6137623b" - }, - { - "parameters": { - "resource": "event", - "name": "TestEvent", - "additionalFields": { - "id": "={{$node[\"Set\"].json[\"userId\"]}}", - "userId": "={{$node[\"Set\"].json[\"userId\"]}}" - } - }, - "name": "Iterable4", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 1350, - 390 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "id": "73e5dc94-d847-4ade-95ef-98ea69237245" - }, - { - "parameters": { - "operation": "delete", - "email": "={{$node[\"Iterable1\"].json[\"email\"]}}" - }, - "name": "Iterable5", - "type": "n8n-nodes-base.iterable", - "typeVersion": 1, - "position": [ - 1500, - 210 - ], - "credentials": { - "iterableApi": { - "id": "174", - "name": "Iterable API creds" - } - }, - "id": "650fa586-231c-4544-bb92-772ac561f0ee" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 740, - 220 - ], - "typeVersion": 1, - "id": "a4cdbbb5-a101-40f3-9f52-efe768d27e62" - } - ], - "connections": { - "Set": { - "main": [ - [ - { - "node": "Iterable", - "type": "main", - "index": 0 - } - ] - ] - }, - "Iterable": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Iterable1": { - "main": [ - [ - { - "node": "Iterable2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Iterable2": { - "main": [ - [ - { - "node": "Iterable3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Iterable3": { - "main": [ - [ - { - "node": "Iterable4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Iterable4": { - "main": [ - [ - { - "node": "Iterable5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Iterable1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "timezone": "Europe/Berlin", - "saveExecutionProgress": "DEFAULT" - }, - "staticData": { - "node:Clockify Trigger": { - "userId": "60335ad2f24e660123d7fdeb", - "lastTimeChecked": "2021-05-12T10:25:03Z" - } - }, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/202.json b/test-workflows/workflows/202.json deleted file mode 100644 index 36e65f24d6..0000000000 --- a/test-workflows/workflows/202.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "createdAt": "2021-05-12T08:49:01.587Z", - "updatedAt": "2021-05-12T08:49:01.587Z", - "id": "202", - "name": "Beeminder:Datapoint:create getAll update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b22f554d-032b-49a3-8d93-72bdf0e14c89" - }, - { - "parameters": { - "goalName": "testing", - "additionalFields": {} - }, - "name": "Beeminder", - "type": "n8n-nodes-base.beeminder", - "typeVersion": 1, - "position": [ - 490, - 300 - ], - "credentials": { - "beeminderApi": { - "id": "175", - "name": "Beeminder API creds" - } - }, - "id": "7a4b7543-ff45-418a-921c-ceec717d1350" - }, - { - "parameters": { - "operation": "getAll", - "goalName": "testing", - "limit": 1, - "options": {} - }, - "name": "Beeminder1", - "type": "n8n-nodes-base.beeminder", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "beeminderApi": { - "id": "175", - "name": "Beeminder API creds" - } - }, - "id": "625eea7d-b4cd-4f48-a939-379f20e92d88" - }, - { - "parameters": { - "operation": "update", - "goalName": "testing", - "datapointId": "={{$node[\"Beeminder\"].json[\"id\"]}}", - "updateFields": { - "value": 10 - } - }, - "name": "Beeminder2", - "type": "n8n-nodes-base.beeminder", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "beeminderApi": { - "id": "175", - "name": "Beeminder API creds" - } - }, - "id": "92817af4-a51b-49ee-a4d9-8839330b5f94" - }, - { - "parameters": { - "operation": "delete", - "goalName": "testing", - "datapointId": "={{$node[\"Beeminder4\"].json[\"id\"]}}" - }, - "name": "Beeminder3", - "type": "n8n-nodes-base.beeminder", - "typeVersion": 1, - "position": [ - 1100, - 350 - ], - "credentials": { - "beeminderApi": { - "id": "175", - "name": "Beeminder API creds" - } - }, - "id": "085ad031-f3d0-48d9-b1d0-f9bc3d5b9a1b" - }, - { - "parameters": { - "goalName": "testing", - "value": 3, - "additionalFields": {} - }, - "name": "Beeminder4", - "type": "n8n-nodes-base.beeminder", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "beeminderApi": { - "id": "175", - "name": "Beeminder API creds" - } - }, - "id": "fbd1b086-506b-42cd-8b1c-cad5a3401fe7" - } - ], - "connections": { - "Beeminder": { - "main": [ - [ - { - "node": "Beeminder1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Beeminder1": { - "main": [ - [ - { - "node": "Beeminder2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Beeminder2": { - "main": [ - [ - { - "node": "Beeminder4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Beeminder4": { - "main": [ - [ - { - "node": "Beeminder3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Beeminder", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/203.json b/test-workflows/workflows/203.json deleted file mode 100644 index 29f869269d..0000000000 --- a/test-workflows/workflows/203.json +++ /dev/null @@ -1,340 +0,0 @@ -{ - "createdAt": "2021-05-12T10:06:38.839Z", - "updatedAt": "2021-06-02T10:31:43.824Z", - "id": "203", - "name": "Paddle:Payment:getAll reschedule:Plan:getAll get:Product:getAll:Coupon:create update getAll:User:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "6dca848e-e78f-4e1e-b637-c5b7a9b6d4cd" - }, - { - "parameters": { - "resource": "plan", - "operation": "getAll", - "limit": 1 - }, - "name": "Paddle", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 450, - 230 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "552a93b0-4047-4ba5-8542-858e843045a5" - }, - { - "parameters": { - "resource": "plan", - "planId": "={{$node[\"Paddle\"].json[\"id\"]}}" - }, - "name": "Paddle1", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 600, - 230 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "330027d9-fb24-4cd1-98bd-07b388ed3d0c" - }, - { - "parameters": { - "resource": "product", - "limit": 1 - }, - "name": "Paddle2", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 450, - 380 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "a88765a6-f48f-428e-a13d-94e3c711e1eb" - }, - { - "parameters": { - "resource": "user", - "limit": 1, - "additionalFields": {} - }, - "name": "Paddle3", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 450, - 530 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "a6911282-01de-4125-9479-b7ec3111edee" - }, - { - "parameters": { - "resource": "payment", - "limit": 1, - "additionalFields": {} - }, - "name": "Paddle4", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 450, - 80 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "53405b18-8d3a-42b3-9c28-fa0416a1c240" - }, - { - "parameters": { - "couponType": "product", - "productIds": "={{$node[\"Paddle2\"].json[\"id\"]}}", - "discountAmount": 50, - "currency": "USD", - "additionalFields": {} - }, - "name": "Paddle5", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 600, - 430 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "b2d6f9c0-6134-4723-b9b1-67b68e0cfb6f" - }, - { - "parameters": { - "operation": "update", - "couponCode": "={{$node[\"Paddle5\"].json[\"coupon\"]}}", - "additionalFields": { - "discount": { - "discountProperties": { - "currency": "USD", - "discountAmount": 5 - } - } - } - }, - "name": "Paddle6", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 750, - 430 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "9f0c228c-f1c8-47ca-9702-2e373cc0b632" - }, - { - "parameters": { - "operation": "getAll", - "productId": "={{$node[\"Paddle2\"].json[\"id\"]}}", - "returnAll": true - }, - "name": "Paddle7", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 900, - 430 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "86d2cc5d-93f5-4aa5-803e-c5995c89be66" - }, - { - "parameters": { - "resource": "payment", - "operation": "reschedule", - "paymentId": "={{$node[\"Paddle4\"].json[\"id\"]}}", - "date": "={{$node[\"Date & Time\"].json[\"data\"]}}" - }, - "name": "Paddle8", - "type": "n8n-nodes-base.paddle", - "typeVersion": 1, - "position": [ - 760, - 80 - ], - "credentials": { - "paddleApi": { - "id": "173", - "name": "Paddle API sandbox creds" - } - }, - "id": "2b7076a8-2563-4808-970a-934e1389b517" - }, - { - "parameters": { - "action": "calculate", - "value": "={{Date.now()}}", - "duration": 5, - "options": {} - }, - "name": "Date & Time", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 600, - 80 - ], - "id": "8282ff84-da5e-4da6-97d7-84c4d08e9947" - } - ], - "connections": { - "Paddle": { - "main": [ - [ - { - "node": "Paddle1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Paddle2": { - "main": [ - [ - { - "node": "Paddle5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Paddle4": { - "main": [ - [ - { - "node": "Date & Time", - "type": "main", - "index": 0 - } - ] - ] - }, - "Paddle5": { - "main": [ - [ - { - "node": "Paddle6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Paddle6": { - "main": [ - [ - { - "node": "Paddle7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Paddle", - "type": "main", - "index": 0 - }, - { - "node": "Paddle2", - "type": "main", - "index": 0 - }, - { - "node": "Paddle3", - "type": "main", - "index": 0 - }, - { - "node": "Paddle4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time": { - "main": [ - [ - { - "node": "Paddle8", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": { - "node:Clockify Trigger": { - "userId": "60335ad2f24e660123d7fdeb", - "lastTimeChecked": "2021-05-12T08:09:47Z" - } - }, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/204.json b/test-workflows/workflows/204.json deleted file mode 100644 index 5295f97f5d..0000000000 --- a/test-workflows/workflows/204.json +++ /dev/null @@ -1,459 +0,0 @@ -{ - "createdAt": "2021-05-14T09:31:14.466Z", - "updatedAt": "2021-06-08T08:48:10.045Z", - "id": "204", - "name": "HelpScout:Mailbox:getAll get:Customer:create get update getAll properties:Conversation:create get getAll delete:Thread:create getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "134a1cd7-83e3-4237-b289-20302a26d111" - }, - { - "parameters": { - "resource": "customer", - "additionalFields": { - "firstName": "=Fname_{{(new Date).toISOString()}}" - } - }, - "name": "HelpScout", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "d338cf1d-360e-499d-8c97-f3256b62cde4" - }, - { - "parameters": { - "resource": "customer", - "operation": "get", - "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" - }, - "name": "HelpScout1", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "aec33ae5-41da-476a-80b6-052bb06e6d13" - }, - { - "parameters": { - "resource": "customer", - "operation": "update", - "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}", - "updateFields": { - "jobTitle": "=UpdatedJobTitle" - } - }, - "name": "HelpScout2", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "895e41cb-bd06-454f-8c1f-68f632829c18" - }, - { - "parameters": { - "resource": "customer", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "HelpScout3", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "5b52d840-a8bd-4cb7-b1f8-f451a5be3d76" - }, - { - "parameters": { - "resource": "customer", - "operation": "properties" - }, - "name": "HelpScout4", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "31ebb207-80e5-417d-89ca-a1aeef540218" - }, - { - "parameters": { - "mailboxId": 224189, - "status": "active", - "subject": "=Subject_{{(new Date).toISOString()}}", - "type": "chat", - "additionalFields": { - "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" - }, - "threadsUi": { - "threadsValues": [ - { - "type": "chat", - "text": "Initial Thread" - } - ] - } - }, - "name": "HelpScout5", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "notes": "IGNORED_PROPERTIES=preview", - "id": "dac34f58-aadc-4c27-bb53-797160518e38" - }, - { - "parameters": { - "operation": "get", - "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}" - }, - "name": "HelpScout6", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "notes": "IGNORED_PROPERTIES=preview", - "id": "54b304e7-e089-4b9e-ab0b-b8d768b2bb57" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "HelpScout7", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 900, - 450 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "fef75568-538b-4ce2-83c5-07d779e6393e" - }, - { - "parameters": { - "operation": "delete", - "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}" - }, - "name": "HelpScout8", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 1050, - 450 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "b082f9a9-352c-4624-a287-c167aa820875" - }, - { - "parameters": { - "resource": "mailbox", - "operation": "getAll", - "limit": 1 - }, - "name": "HelpScout9", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "4c07019c-6818-484d-8865-ef7bcef8ff39" - }, - { - "parameters": { - "resource": "mailbox", - "mailboxId": "={{$node[\"HelpScout9\"].json[\"id\"]}}" - }, - "name": "HelpScout10", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "89e6ba09-db18-444c-99da-91bf95d2353b" - }, - { - "parameters": { - "resource": "thread", - "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}", - "type": "chat", - "text": "=Thread_{{(new Date).toISOString()}}", - "additionalFields": { - "customerId": "={{$node[\"HelpScout\"].json[\"id\"]}}" - } - }, - "name": "HelpScout11", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 750, - 600 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "6bc6666d-dda1-485b-97de-a4b08407f22f" - }, - { - "parameters": { - "resource": "thread", - "operation": "getAll", - "conversationId": "={{$node[\"HelpScout5\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "HelpScout12", - "type": "n8n-nodes-base.helpScout", - "typeVersion": 1, - "position": [ - 900, - 600 - ], - "credentials": { - "helpScoutOAuth2Api": { - "id": "163", - "name": "HelpScout OAuth2 API creds" - } - }, - "id": "740d4be3-b1b7-4383-a2ce-716270774df7" - } - ], - "connections": { - "HelpScout": { - "main": [ - [ - { - "node": "HelpScout5", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout1": { - "main": [ - [ - { - "node": "HelpScout2", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout2": { - "main": [ - [ - { - "node": "HelpScout3", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout3": { - "main": [ - [ - { - "node": "HelpScout4", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout5": { - "main": [ - [ - { - "node": "HelpScout11", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout6": { - "main": [ - [ - { - "node": "HelpScout7", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout7": { - "main": [ - [ - { - "node": "HelpScout8", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout8": { - "main": [ - [ - { - "node": "HelpScout1", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout9": { - "main": [ - [ - { - "node": "HelpScout10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "HelpScout", - "type": "main", - "index": 0 - }, - { - "node": "HelpScout9", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout11": { - "main": [ - [ - { - "node": "HelpScout12", - "type": "main", - "index": 0 - } - ] - ] - }, - "HelpScout12": { - "main": [ - [ - { - "node": "HelpScout6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/205.json b/test-workflows/workflows/205.json deleted file mode 100644 index c041af3bd2..0000000000 --- a/test-workflows/workflows/205.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "createdAt": "2021-05-14T09:46:06.853Z", - "updatedAt": "2021-05-14T09:46:06.853Z", - "id": "205", - "name": "Pushover:Message:push", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "b67fccde-5dac-406f-98f4-d5c58ac8aa37" - }, - { - "parameters": { - "userKey": "uwwjqj8g3kbj4mbsmcwi8ov7ocofrx", - "message": "=Message_{{(new Date).toISOString()}}", - "additionalFields": { - "title": "=NodeQa Test_{{(new Date).toISOString()}}" - } - }, - "name": "Pushover", - "type": "n8n-nodes-base.pushover", - "typeVersion": 1, - "position": [ - 510, - 300 - ], - "credentials": { - "pushoverApi": { - "id": "177", - "name": "Pushover API creds" - } - }, - "id": "1036f288-8058-48b9-9d2e-3a915bfadb12" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Pushover", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/206.json b/test-workflows/workflows/206.json deleted file mode 100644 index a75bd3080a..0000000000 --- a/test-workflows/workflows/206.json +++ /dev/null @@ -1,490 +0,0 @@ -{ - "createdAt": "2021-05-17T15:09:40.220Z", - "updatedAt": "2021-05-18T07:57:05.962Z", - "id": "206", - "name": "Keap:Company:create getAll:Contact:upsert get getAll delete:ContactNote:create get update getAll delete:ContactTag:create getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9489a524-46de-44e4-b4f9-e5ff8202cc3e" - }, - { - "parameters": { - "companyName": "=Company_{{(new Date).toISOString()}}", - "additionalFields": {} - }, - "name": "Keap", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "690b0194-0a2a-41a3-a6bd-b67ce0345f42" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Keap1", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 750, - 200 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "07a5aca1-73a9-4812-9a35-0e62d814c540" - }, - { - "parameters": { - "resource": "contact", - "additionalFields": { - "companyId": "={{$node[\"Keap\"].json[\"id\"]}}" - }, - "addressesUi": { - "addressesValues": [] - }, - "emailsUi": { - "emailsValues": [ - { - "field": "EMAIL1", - "email": "=fakeemail{{Date.now()}}@test.com" - } - ] - } - }, - "name": "Keap2", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 750, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "44871399-7e52-4d49-9090-32a07fc55440" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", - "options": {} - }, - "name": "Keap3", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 900, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "17a7232c-8cc9-448c-a2c0-bd1084fdd771" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Keap4", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1040, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "7007df2b-c66a-4a7b-b690-9d0124e73357" - }, - { - "parameters": { - "resource": "contact", - "operation": "delete", - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}" - }, - "name": "Keap5", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1200, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "f61df6f5-ab1c-4344-8ab5-8f09ceddbe8b" - }, - { - "parameters": { - "resource": "contactNote", - "userId": 1, - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", - "additionalFields": { - "body": "", - "title": "=Note{Date.now()}}" - } - }, - "name": "Keap6", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 900, - 510 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "1af7e3bf-9135-4ffe-a875-b6ae453a44b1" - }, - { - "parameters": { - "resource": "contactNote", - "operation": "get", - "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}" - }, - "name": "Keap7", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1050, - 510 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "d8252291-bbf9-4ee1-a9d4-093ae967ef12" - }, - { - "parameters": { - "resource": "contactNote", - "operation": "update", - "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}", - "additionalFields": { - "title": "Updated Title" - } - }, - "name": "Keap8", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1200, - 510 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "54756d28-a79f-4427-8d5d-5c2d80ac5b17" - }, - { - "parameters": { - "resource": "contactNote", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Keap9", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1360, - 510 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "81bdce10-1de6-4d11-8624-1a0516931e49" - }, - { - "parameters": { - "resource": "contactNote", - "operation": "delete", - "noteId": "={{$node[\"Keap6\"].json[\"id\"]}}" - }, - "name": "Keap10", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1500, - 510 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "a8cb848a-36d8-4fb6-b845-37674c6c7733" - }, - { - "parameters": { - "resource": "contactTag", - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", - "tagIds": [ - 93 - ] - }, - "name": "Keap11", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 900, - 660 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "c81d1109-4fbb-4dde-afe4-386710f9f624" - }, - { - "parameters": { - "resource": "contactTag", - "operation": "getAll", - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Keap12", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1050, - 660 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "b0c03850-0004-4680-9da0-9ea9ded1a525" - }, - { - "parameters": { - "resource": "contactTag", - "operation": "delete", - "contactId": "={{$node[\"Keap2\"].json[\"id\"]}}", - "tagIds": "93," - }, - "name": "Keap13", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1190, - 660 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "311e758c-48f7-4738-862d-b34299ac6d08" - } - ], - "connections": { - "Keap": { - "main": [ - [ - { - "node": "Keap1", - "type": "main", - "index": 0 - }, - { - "node": "Keap2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap2": { - "main": [ - [ - { - "node": "Keap6", - "type": "main", - "index": 0 - }, - { - "node": "Keap11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap3": { - "main": [ - [ - { - "node": "Keap4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap4": { - "main": [ - [ - { - "node": "Keap5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap6": { - "main": [ - [ - { - "node": "Keap7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap7": { - "main": [ - [ - { - "node": "Keap8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap8": { - "main": [ - [ - { - "node": "Keap9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap9": { - "main": [ - [ - { - "node": "Keap10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap10": { - "main": [ - [ - { - "node": "Keap3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap11": { - "main": [ - [ - { - "node": "Keap12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap12": { - "main": [ - [ - { - "node": "Keap13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Keap", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/207.json b/test-workflows/workflows/207.json deleted file mode 100644 index 4182a0297b..0000000000 --- a/test-workflows/workflows/207.json +++ /dev/null @@ -1,531 +0,0 @@ -{ - "createdAt": "2021-05-17T22:14:56.419Z", - "updatedAt": "2021-05-18T07:56:45.273Z", - "id": "207", - "name": "Keap:EcommerceOrder:create get getAll delete:EcommerceProduct:create get getAll delete:Email:createRecord getAll:File:upload getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "71dbf38c-e75d-48af-b045-fa5e0e30d2a5" - }, - { - "parameters": { - "resource": "ecommerceProduct", - "productName": "=Producct_{{(new Date).toISOString()}}", - "additionalFields": {} - }, - "name": "Keap", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 650, - 180 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "e5a3ddc7-1681-4d8e-b841-9a4d052519e3" - }, - { - "parameters": { - "resource": "ecommerceProduct", - "operation": "get", - "productId": "={{$node[\"Keap\"].json[\"id\"]}}" - }, - "name": "Keap1", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 810, - 180 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "ac092a34-c9c2-49fe-af12-9ba28a1274f2" - }, - { - "parameters": { - "resource": "ecommerceProduct", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Keap2", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 970, - 180 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "a54a5785-8586-4df5-91e6-24877ea0f1c5" - }, - { - "parameters": { - "resource": "ecommerceProduct", - "operation": "delete", - "productId": "={{$node[\"Keap\"].json[\"id\"]}}" - }, - "name": "Keap3", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1120, - 180 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "1afec710-031b-4a72-9164-4bb166d06000" - }, - { - "parameters": { - "resource": "email", - "sentToAddress": "test@gmail.com", - "sentFromAddress": "fromtest@gmail.com", - "additionalFields": {} - }, - "name": "Keap4", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 650, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "d2463a1b-c677-4d81-a69f-f6db3a72a1dc" - }, - { - "parameters": { - "resource": "email", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Keap5", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "b1f2a62a-5479-4f5c-a569-1d6140dad42c" - }, - { - "parameters": { - "resource": "email", - "operation": "send", - "userId": 1, - "contactIds": "={{$node[\"Keap7\"].json[\"id\"]}},", - "subject": "Test", - "additionalFields": { - "addressField": "node8qa@gmail.com,", - "plainContent": "Text content" - } - }, - "name": "Keap6", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "disabled": true, - "id": "90739296-0d0d-44db-8a7e-904d0d39018d" - }, - { - "parameters": { - "resource": "contact", - "additionalFields": {}, - "emailsUi": { - "emailsValues": [ - { - "field": "EMAIL1", - "email": "node8qa@gmail.com" - } - ] - } - }, - "name": "Keap7", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 490, - 280 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "9fc45e7d-9070-4517-99a2-c22d9ce3e5dd" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "contactId": "={{$node[\"Keap7\"].json[\"id\"]}}", - "orderDate": "2021-05-18T07:35:03.000Z", - "orderTitle": "=Title{{Date.now()}}", - "orderType": "offline", - "additionalFields": {}, - "orderItemsUi": { - "orderItemsValues": [ - { - "description": "testing", - "price": 6, - "product ID": "={{$node[\"Keap\"].json[\"id\"]}}", - "quantity": 3 - } - ] - } - }, - "name": "Keap8", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 810, - 30 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "17058118-db69-4fab-baa7-19aa39562b94" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "get", - "orderId": "={{$node[\"Keap8\"].json[\"id\"]}}" - }, - "name": "Keap9", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 970, - 30 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "6d4cf1c3-e89c-4fb9-8868-718c23734cd9" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Keap10", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1130, - 30 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "fc63b45d-7b7c-4ac1-bddc-7061065d607e" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "delete", - "orderId": "={{$node[\"Keap8\"].json[\"id\"]}}" - }, - "name": "Keap11", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 1290, - 30 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "4b41db09-652f-4f92-8dba-72c48d9f5403" - }, - { - "parameters": { - "resource": "file", - "operation": "upload", - "fileAssociation": "contact", - "contactId": "={{$node[\"Keap7\"].json[\"id\"]}}", - "fileName": "test.csv", - "fileData": "IyB0aGlzIGlzIGEgdGVzdCBmaWxl" - }, - "name": "Keap12", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 650, - 520 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "267fe3f8-4cee-46f5-b430-e925e491a838" - }, - { - "parameters": { - "resource": "file", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Keap13", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 810, - 520 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "810f3780-5787-4642-ab29-ede18374d118" - }, - { - "parameters": { - "resource": "file", - "fileId": "={{$node[\"Keap12\"].json[\"file_descriptor\"][\"id\"]}}" - }, - "name": "Keap14", - "type": "n8n-nodes-base.keap", - "typeVersion": 1, - "position": [ - 970, - 520 - ], - "credentials": { - "keapOAuth2Api": { - "id": "178", - "name": "Keap OAuth2 API creds" - } - }, - "id": "35001fb2-12f4-4fcb-91a3-87057ba15d4c" - } - ], - "connections": { - "Keap": { - "main": [ - [ - { - "node": "Keap8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap1": { - "main": [ - [ - { - "node": "Keap2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap2": { - "main": [ - [ - { - "node": "Keap3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap4": { - "main": [ - [ - { - "node": "Keap5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap5": { - "main": [ - [ - { - "node": "Keap6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap7": { - "main": [ - [ - { - "node": "Keap", - "type": "main", - "index": 0 - }, - { - "node": "Keap4", - "type": "main", - "index": 0 - }, - { - "node": "Keap12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap8": { - "main": [ - [ - { - "node": "Keap9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap9": { - "main": [ - [ - { - "node": "Keap10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap10": { - "main": [ - [ - { - "node": "Keap11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap11": { - "main": [ - [ - { - "node": "Keap1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Keap7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap12": { - "main": [ - [ - { - "node": "Keap13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Keap13": { - "main": [ - [ - { - "node": "Keap14", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/208.json b/test-workflows/workflows/208.json deleted file mode 100644 index 34f42a9631..0000000000 --- a/test-workflows/workflows/208.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "createdAt": "2021-05-25T13:01:33.223Z", - "updatedAt": "2021-05-26T13:12:05.308Z", - "id": "208", - "name": "RocketChat:Chat:postMessage", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "57c39841-256a-4e6a-b301-af2c97c0a0a8" - }, - { - "parameters": { - "channel": "general", - "text": "=Message {{(new Date).toISOString()}}", - "options": { - "emoji": ":smile:" - }, - "attachments": [ - { - "color": "#ff6d5a", - "title": "Attachment title" - } - ] - }, - "name": "RocketChat", - "type": "n8n-nodes-base.rocketchat", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "rocketchatApi": { - "id": "184", - "name": "Rocket API creds" - } - }, - "id": "c6b5e0b7-4ead-44e3-8ae4-42de8159dd99" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "RocketChat", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/209.json b/test-workflows/workflows/209.json deleted file mode 100644 index 97f93349f7..0000000000 --- a/test-workflows/workflows/209.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "createdAt": "2021-05-31T08:24:33.353Z", - "updatedAt": "2021-05-31T08:38:47.411Z", - "id": "209", - "name": "AWS Transcribe:TranscriptionJob:create get getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "cb687f80-1046-40f3-bddb-78a67623b70e" - }, - { - "parameters": { - "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}", - "mediaFileUri": "s3://fixedtestbucket/nodemation.wav", - "options": {} - }, - "name": "AWS Transcribe", - "type": "n8n-nodes-base.awsTranscribe", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "ccdefb6d-7aac-4360-9285-135ddf34449b" - }, - { - "parameters": { - "operation": "get", - "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}", - "simple": false - }, - "name": "AWS Transcribe1", - "type": "n8n-nodes-base.awsTranscribe", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "3840763a-16d3-4073-a008-9b5dae451d48" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "AWS Transcribe2", - "type": "n8n-nodes-base.awsTranscribe", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "b477493b-0688-47f4-ad5c-4a1f509e672e" - }, - { - "parameters": { - "operation": "delete", - "transcriptionJobName": "={{$node[\"Set job name\"].json[\"job_name\"]}}" - }, - "name": "AWS Transcribe3", - "type": "n8n-nodes-base.awsTranscribe", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - }, - "id": "f7c49172-c16a-4881-951b-c35927fe9ea4" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "job_name", - "value": "=nodemation_job_{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set job name", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "e96a125a-10fb-4d1a-869e-3e31467b1bb6" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(30000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 30 seconds", - "type": "n8n-nodes-base.function", - "position": [ - 1000, - 300 - ], - "typeVersion": 1, - "id": "93a0b1db-6bda-4e6d-9797-6a3957cf05d0" - } - ], - "connections": { - "AWS Transcribe": { - "main": [ - [ - { - "node": "AWS Transcribe1", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS Transcribe1": { - "main": [ - [ - { - "node": "AWS Transcribe2", - "type": "main", - "index": 0 - } - ] - ] - }, - "AWS Transcribe2": { - "main": [ - [ - { - "node": "Sleep 30 seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set job name", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set job name": { - "main": [ - [ - { - "node": "AWS Transcribe", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 30 seconds": { - "main": [ - [ - { - "node": "AWS Transcribe3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/21.json b/test-workflows/workflows/21.json deleted file mode 100644 index 19e2290e86..0000000000 --- a/test-workflows/workflows/21.json +++ /dev/null @@ -1,469 +0,0 @@ -{ - "createdAt": "2021-02-16T16:12:15.992Z", - "updatedAt": "2021-11-12T12:09:08.000Z", - "id": "21", - "name": "Hubspot:Deal: create update getall search getRecentlyModified getRecentlyCreated get delete:Ticket: create update get All get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 180, - 300 - ], - "id": "50ba36ae-2d60-4030-8b52-19900aa73d75" - }, - { - "parameters": { - "stage": "appointmentscheduled", - "additionalFields": { - "dealName": "testDeal" - } - }, - "name": "Hubspot", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 370, - 230 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "45e9896b-745e-45ea-b1e9-56a18bb97280" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Hubspot1", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 650, - 230 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "635d61b8-0527-4800-baa6-1b17664fc2d4" - }, - { - "parameters": { - "operation": "get", - "dealId": "={{$json[\"dealId\"]}}", - "additionalFields": {} - }, - "name": "Hubspot2", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1250, - 230 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "d935d2bd-67be-4d9a-8acb-627cd9ef3523" - }, - { - "parameters": { - "operation": "search", - "limit": 1, - "filterGroupsUi": { - "filterGroupsValues": [] - }, - "additionalFields": {} - }, - "name": "Hubspot3", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 780, - 230 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "5d8cead1-67b6-45ad-96c1-99e8120b1073" - }, - { - "parameters": { - "operation": "update", - "dealId": "={{$json[\"dealId\"]}}", - "updateFields": { - "dealName": "dealTestUpdated" - } - }, - "name": "Hubspot4", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 500, - 230 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "52b97d30-6e05-44c6-a4bc-4cdbf14ed2e8" - }, - { - "parameters": { - "operation": "getRecentlyModified", - "limit": 1, - "filters": {} - }, - "name": "Hubspot5", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 930, - 230 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "d491514d-4b16-440a-ac45-b770499f9727" - }, - { - "parameters": { - "operation": "delete", - "dealId": "={{$json[\"dealId\"]}}" - }, - "name": "Hubspot6", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1380, - 230 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "ef41388b-da7e-4caf-8d28-fb23a8ec3b36" - }, - { - "parameters": { - "operation": "getRecentlyCreated", - "limit": 1, - "filters": {} - }, - "name": "Hubspot7", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1100, - 230 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "517e45f8-7554-4fa9-8cdb-77da84b51846" - }, - { - "parameters": { - "resource": "ticket", - "pipelineId": "0", - "stageId": "3", - "ticketName": "testTicket", - "additionalFields": {} - }, - "name": "Hubspot8", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 370, - 400 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "d6a94b35-974c-4683-8c46-41fbc28a96ff" - }, - { - "parameters": { - "resource": "ticket", - "operation": "update", - "ticketId": "={{$json[\"objectId\"]}}", - "updateFields": {} - }, - "name": "Hubspot9", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 530, - 400 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "d9f184a9-a4af-4657-963c-a6787997263d" - }, - { - "parameters": { - "resource": "ticket", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Hubspot10", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 680, - 400 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "f70f062d-d0ef-421f-9c42-36209102d837" - }, - { - "parameters": { - "resource": "ticket", - "operation": "get", - "ticketId": "={{$json[\"objectId\"]}}", - "additionalFields": {} - }, - "name": "Hubspot11", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 830, - 400 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "489a9719-6fd8-4c48-8fbe-9acd0c1508f9" - }, - { - "parameters": { - "resource": "ticket", - "operation": "delete", - "ticketId": "={{$json[\"objectId\"]}}" - }, - "name": "Hubspot12", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 990, - 400 - ], - "notesInFlow": false, - "alwaysOutputData": true, - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "fcdd8b16-ab62-4093-aa90-043bf3b22554" - } - ], - "connections": { - "Hubspot": { - "main": [ - [ - { - "node": "Hubspot4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot1": { - "main": [ - [ - { - "node": "Hubspot3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot2": { - "main": [ - [ - { - "node": "Hubspot6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot3": { - "main": [ - [ - { - "node": "Hubspot5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Hubspot8", - "type": "main", - "index": 0 - }, - { - "node": "Hubspot", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot4": { - "main": [ - [ - { - "node": "Hubspot1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot5": { - "main": [ - [ - { - "node": "Hubspot7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot7": { - "main": [ - [ - { - "node": "Hubspot2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot8": { - "main": [ - [ - { - "node": "Hubspot9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot9": { - "main": [ - [ - { - "node": "Hubspot10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot10": { - "main": [ - [ - { - "node": "Hubspot11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot11": { - "main": [ - [ - { - "node": "Hubspot12", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/212.json b/test-workflows/workflows/212.json deleted file mode 100644 index c023e68994..0000000000 --- a/test-workflows/workflows/212.json +++ /dev/null @@ -1,456 +0,0 @@ -{ - "createdAt": "2021-06-01T08:10:39.407Z", - "updatedAt": "2021-11-12T13:08:28.130Z", - "id": "212", - "name": "Git:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 260, - 300 - ], - "id": "f3928b9a-a76a-4b22-8c13-3eeb6ffc5dab" - }, - { - "parameters": { - "authentication": "gitPassword", - "operation": "clone", - "repositoryPath": "/tmp/nodeQA", - "sourceRepository": "https://github.com/nodemationqa/nodeQA" - }, - "name": "Git", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "gitPassword": { - "id": "193", - "name": "Git creds" - } - }, - "id": "73803968-9a2a-4408-9c35-cdb3fea58573" - }, - { - "parameters": { - "operation": "listConfig", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git1", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 700, - 250 - ], - "notes": "CAP_RESULTS_LENGTH=1\nKEEP_ONLY_PROPERTIES=_file", - "id": "c8635d48-0bbd-496a-8cd0-5cf43795707d" - }, - { - "parameters": { - "operation": "addConfig", - "repositoryPath": "/tmp/nodeQA", - "key": "user.email", - "value": "nodeqa@n8n.io", - "options": { - "mode": "set" - } - }, - "name": "Git2", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 850, - 250 - ], - "id": "815b5424-cbc3-4f29-9f12-81e7538bb925" - }, - { - "parameters": { - "operation": "add", - "repositoryPath": "/tmp/nodeQA", - "pathsToAdd": "/tmp/nodeQA/gitnode_added_file.md" - }, - "name": "Git3", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 550, - 450 - ], - "id": "d2110a10-424a-48ef-9bfa-5b6eb541f96c" - }, - { - "parameters": { - "operation": "status", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git4", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 700, - 450 - ], - "id": "317691ba-e08a-4fcb-bb2d-771d14a13eb4" - }, - { - "parameters": { - "operation": "commit", - "repositoryPath": "/tmp/nodeQA", - "message": "=GitNode commit {{(new Date).toUTCString()}}", - "options": {} - }, - "name": "Git5", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 850, - 450 - ], - "id": "4ab79985-9685-4c47-b4c4-2f859ce036c0" - }, - { - "parameters": { - "repositoryPath": "/tmp/nodeQA", - "limit": 1, - "options": {} - }, - "name": "Git6", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 1000, - 450 - ], - "id": "7ed13447-be70-41e3-b054-4107b175d5a8" - }, - { - "parameters": { - "operation": "addConfig", - "repositoryPath": "/tmp/nodeQA", - "key": "user.name", - "value": "nodemationqa", - "options": { - "mode": "set" - } - }, - "name": "Git7", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 1000, - 250 - ], - "id": "8dabf47e-ba7c-460d-a2de-a4f54f5211e1" - }, - { - "parameters": { - "operation": "tag", - "repositoryPath": "/tmp/nodeQA", - "name": "=GitNode-tag-{{Date.now()}}" - }, - "name": "Git8", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 1150, - 450 - ], - "id": "f4317e1d-694d-4d62-9b60-de9ef0e94418" - }, - { - "parameters": { - "operation": "pushTags", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git9", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 550, - 650 - ], - "disabled": true, - "id": "8ac866c6-9938-4d0f-9f54-6e3d5b1dbf11" - }, - { - "parameters": { - "operation": "push", - "repositoryPath": "/tmp/nodeQA", - "options": {} - }, - "name": "Git10", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 700, - 650 - ], - "disabled": true, - "id": "880d7f5f-744a-496a-9064-0a09a1dfe5ce" - }, - { - "parameters": { - "operation": "pull", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git11", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 850, - 650 - ], - "disabled": true, - "id": "5a5c9cd0-0e77-4ed9-960f-54f12d449683" - }, - { - "parameters": { - "operation": "fetch", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git12", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 1000, - 650 - ], - "id": "e042e225-b5b6-4882-b879-d11d103c7004" - }, - { - "parameters": { - "operation": "userSetup", - "repositoryPath": "/tmp/nodeQA" - }, - "name": "Git13", - "type": "n8n-nodes-base.git", - "typeVersion": 1, - "position": [ - 1150, - 650 - ], - "disabled": true, - "id": "7b5a93b5-08bc-4449-a7ef-23232d6440a2" - }, - { - "parameters": { - "command": "if [ -d \"/tmp/nodeQA\" ]; then rm -Rf /tmp/nodeQA; fi" - }, - "name": "Delete existing dir", - "type": "n8n-nodes-base.executeCommand", - "typeVersion": 1, - "position": [ - 400, - 250 - ], - "id": "312b664a-f6b4-4419-aae4-455930d7ca05" - }, - { - "parameters": { - "command": "=echo \"File added to repo at {{(new Date).toUTCString()}} using Git node\" > /tmp/nodeQA/gitnode_added_file.md" - }, - "name": "Add file to dir", - "type": "n8n-nodes-base.executeCommand", - "typeVersion": 1, - "position": [ - 1150, - 250 - ], - "id": "a5ad152a-056e-4d4e-81f8-626209e7cfb8" - } - ], - "connections": { - "Git": { - "main": [ - [ - { - "node": "Git1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Delete existing dir", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git1": { - "main": [ - [ - { - "node": "Git2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git2": { - "main": [ - [ - { - "node": "Git7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git3": { - "main": [ - [ - { - "node": "Git4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git4": { - "main": [ - [ - { - "node": "Git5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git5": { - "main": [ - [ - { - "node": "Git6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git7": { - "main": [ - [ - { - "node": "Add file to dir", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git6": { - "main": [ - [ - { - "node": "Git8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git8": { - "main": [ - [ - { - "node": "Git9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git9": { - "main": [ - [ - { - "node": "Git10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git10": { - "main": [ - [ - { - "node": "Git11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git11": { - "main": [ - [ - { - "node": "Git12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Git12": { - "main": [ - [ - { - "node": "Git13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Delete existing dir": { - "main": [ - [ - { - "node": "Git", - "type": "main", - "index": 0 - } - ] - ] - }, - "Add file to dir": { - "main": [ - [ - { - "node": "Git3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/214.json b/test-workflows/workflows/214.json deleted file mode 100644 index 19a6a1bd04..0000000000 --- a/test-workflows/workflows/214.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "createdAt": "2021-06-03T11:22:25.194Z", - "updatedAt": "2021-07-15T14:18:39.385Z", - "id": "214", - "name": "Discord:sendMessage", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "51494395-ea61-4b02-9a5d-e9f3f97bddbe" - }, - { - "parameters": { - "webhookUri": "https://discord.com/api/webhooks/853902674536955924/2gqWRIwqBexuMwlQmTNLYFizoX6JMjz5acCKN-6NwaVxfw30qZfy0nguukpLPk0zvnaK", - "text": "=Posted At {{(new Date).toUTCString()}}" - }, - "name": "Discord", - "type": "n8n-nodes-base.discord", - "typeVersion": 1, - "position": [ - 490, - 300 - ], - "id": "ffb4c420-0c18-4cc9-a2fe-5898b93815aa" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Discord", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/215.json b/test-workflows/workflows/215.json deleted file mode 100644 index 4d0b0a715b..0000000000 --- a/test-workflows/workflows/215.json +++ /dev/null @@ -1,392 +0,0 @@ -{ - "createdAt": "2021-06-04T11:16:11.926Z", - "updatedAt": "2021-07-16T09:34:37.952Z", - "id": "215", - "name": "EditImage:ALL", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "42877422-da89-4a28-a056-65fae3293498" - }, - { - "parameters": { - "operation": "blur", - "blur": 4, - "options": {} - }, - "name": "Edit Image", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "afe688e3-fa5c-4a6f-a998-06ac9feb4713" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "94cee769-2dd7-4066-a489-79d3efc8b699" - }, - { - "parameters": { - "options": {} - }, - "name": "Edit Image1", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "73af2807-4dbb-4653-9421-d43e18d6b3dd" - }, - { - "parameters": { - "operation": "composite", - "dataPropertyNameComposite": "data", - "positionX": 100, - "positionY": 50, - "options": {} - }, - "name": "Edit Image2", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 2400, - 280 - ], - "id": "9119f721-2eb0-4972-8c7d-d5b32022a340" - }, - { - "parameters": { - "operation": "create", - "width": 1000, - "height": 1000, - "options": {} - }, - "name": "Edit Image3", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 1050, - 450 - ], - "id": "db874150-8b35-4db7-9f04-8fd6a0da0edc" - }, - { - "parameters": { - "operation": "draw", - "options": {} - }, - "name": "Edit Image4", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 1250, - 450 - ], - "id": "ec763bc5-8acf-4a6c-8377-180f9d67337d" - }, - { - "parameters": { - "operation": "resize", - "options": {} - }, - "name": "Edit Image5", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 1450, - 450 - ], - "id": "b59007d8-29c5-4a08-a04f-76837cb041ba" - }, - { - "parameters": { - "operation": "information" - }, - "name": "Edit Image6", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 850, - 450 - ], - "notes": "CAP_RESULTS_LENGTH=1\nIGNORED_PROPERTIES=User Time", - "id": "b5e4bfc7-16e9-4793-a309-190df1e57444" - }, - { - "parameters": { - "operation": "rotate", - "rotate": 45, - "options": {} - }, - "name": "Edit Image7", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 1650, - 450 - ], - "id": "4e3d7eb5-33ae-4867-8130-ef928b61ecee" - }, - { - "parameters": { - "operation": "shear", - "degreesX": 15, - "degreesY": 30, - "options": {} - }, - "name": "Edit Image8", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 1850, - 450 - ], - "id": "a45b3d3f-95f0-4bbc-b1df-a5c42f8102c9" - }, - { - "parameters": { - "operation": "text", - "text": "Testing", - "options": {} - }, - "name": "Edit Image9", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 2050, - 450 - ], - "id": "d12a6f88-9b7a-4359-ae24-5f098cb438be" - }, - { - "parameters": { - "operation": "crop", - "options": {} - }, - "name": "Edit Image10", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 2250, - 450 - ], - "id": "0be43f04-569f-40f2-8f1c-c4cbfbb228d0" - }, - { - "parameters": { - "operation": "multiStep", - "operations": { - "operations": [ - { - "operation": "blur", - "blur": 3 - }, - { - "operation": "border", - "borderWidth": 3, - "borderHeight": 3, - "borderColor": "#FF7410" - }, - { - "operation": "draw", - "color": "#4b4b4b00", - "cornerRadius": 50 - }, - { - "operation": "rotate", - "rotate": 180 - }, - { - "operation": "text", - "text": "Reversed" - }, - { - "operation": "resize" - }, - { - "operation": "shear", - "degreesX": 5, - "degreesY": 10 - } - ] - }, - "options": {} - }, - "name": "Edit Image11", - "type": "n8n-nodes-base.editImage", - "typeVersion": 1, - "position": [ - 650, - 450 - ], - "notes": "IGNORED_PROPERTIES=User Time", - "id": "620d342b-8f65-492e-9caf-a77b9b037fa5" - } - ], - "connections": { - "Edit Image": { - "main": [ - [ - { - "node": "Edit Image1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Edit Image", - "type": "main", - "index": 0 - }, - { - "node": "Edit Image11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image1": { - "main": [ - [ - { - "node": "Edit Image3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image3": { - "main": [ - [ - { - "node": "Edit Image4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image4": { - "main": [ - [ - { - "node": "Edit Image5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image5": { - "main": [ - [ - { - "node": "Edit Image7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image7": { - "main": [ - [ - { - "node": "Edit Image8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image8": { - "main": [ - [ - { - "node": "Edit Image9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image9": { - "main": [ - [ - { - "node": "Edit Image10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image10": { - "main": [ - [ - { - "node": "Edit Image2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Edit Image11": { - "main": [ - [ - { - "node": "Edit Image6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/216.json b/test-workflows/workflows/216.json deleted file mode 100644 index fb1cfe0610..0000000000 --- a/test-workflows/workflows/216.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "createdAt": "2021-06-15T18:29:42.709Z", - "updatedAt": "2021-06-15T18:38:55.872Z", - "id": "216", - "name": "FunctionItem:JSON,Binary and Static data", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "83a507fd-bf96-45fd-8513-1c0ef484ec76" - }, - { - "parameters": { - "functionCode": "// interact with item JSON attributes\n\n// array\nitem.arr = [1,2,3,4,5,6,7,8,9,10]\n// string\nitem.str= \"Testing Function Item node\"\n// number\nitem.num = 1337 \n// object\nitem.obj = {\n attr1: \"Testing\",\n attr2: [1,2,3,4,5],\n attr3: 7331,\n attr4: {\n subattr1: \"Test\",\n subattr2: [1,2,3],\n subattr3: 8,\n subattr4: {\n }\n }\n};\n\nreturn item;" - }, - "name": "Handle JSON data", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "2f7fca94-f885-4f41-90e0-5455afe8266d" - }, - { - "parameters": { - "functionCode": "// interact with item Binary data\n\nitem.binaryData = getBinaryData() ?? 'NIL' ;\n\nbinaryData = {\n data: {\n\t\t\t\tdata: 'SGVsbG8gZnJvbSBuOG4gRnVuY3Rpb24gaXRlbSB0ZXN0aW5nIHdvcmtmbG93', // Base64 encoded binary data (required)\n\t\t\t\tmimeType: 'text', // Optional but should be set if possible (optional)\n\t\t\t\tfileExtension: 'text', // Optional but should be set if possible (optional)\n\t\t\t\tfileName: 'testfile', // Optional but should be set if possible (optional)\n\t\t\t}\n}\nsetBinaryData(binaryData);\n\n\nreturn item;" - }, - "name": "Handle Binary data", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "28f7d4f0-a2d7-46d5-8683-4f624588fc32" - }, - { - "parameters": { - "functionCode": "// interact with static data\n\n\n// Global\n\nconst GSD = getWorkflowStaticData('global');\n\nif ( GSD && GSD.message ){\n console.log(GSD);\n} else {\n GSD.message = \"Hello, Global Static Data\";\n}\n\n// Local (node)\n\nconst LSD = getWorkflowStaticData('node');\n\nif ( LSD && LSD.message ){\n console.log(LSD);\n} else {\n LSD.message = \"Hello, Node Static Data\";\n}\n\nitem.globalStaticMessage = GSD.message;\nitem.nodeStaticMessage = LSD.message;\n\n\nreturn item;" - }, - "name": "Handle Static data", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "8794c6b1-1149-4b6d-96cb-0e3d5fd0ffbd" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Handle JSON data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Handle JSON data": { - "main": [ - [ - { - "node": "Handle Binary data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Handle Binary data": { - "main": [ - [ - { - "node": "Handle Static data", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/217.json b/test-workflows/workflows/217.json deleted file mode 100644 index 32ce289bce..0000000000 --- a/test-workflows/workflows/217.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "createdAt": "2021-06-15T18:44:19.942Z", - "updatedAt": "2021-06-15T19:09:29.328Z", - "id": "217", - "name": "ExecuteWorkflow: Database, URL, Local File, Parameter", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "f98e5ef3-5e54-4296-83c0-15abef56962d" - }, - { - "parameters": { - "source": "parameter", - "workflowJson": "{\n \"nodes\": [\n {\n \"parameters\": {},\n \"name\": \"Start\",\n \"type\": \"n8n-nodes-base.start\",\n \"typeVersion\": 1,\n \"position\": [\n 250,\n 300\n ]\n },\n {\n \"parameters\": {\n \"functionCode\": \"\\nitems = [\\n{\\n json:{\\n message: \\\"Hello from a sub workflow, passed as parameter\\\"\\n }\\n}\\n\\n]\\nreturn items;\"\n },\n \"name\": \"Generate items data\",\n \"type\": \"n8n-nodes-base.function\",\n \"typeVersion\": 1,\n \"position\": [\n 500,\n 300\n ]\n }\n ],\n \"connections\": {\n \"Start\": {\n \"main\": [\n [\n {\n \"node\": \"Generate items data\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n }\n}" - }, - "name": "Execute parameter - workflow", - "type": "n8n-nodes-base.executeWorkflow", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "id": "2c2df62e-bed9-4633-aa3a-c1a80f643540" - }, - { - "parameters": { - "source": "url", - "workflowUrl": "https://raw.githubusercontent.com/n8n-io/test-workflows/main/workflows/95.json" - }, - "name": "Execute URL workflow", - "type": "n8n-nodes-base.executeWorkflow", - "typeVersion": 1, - "position": [ - 500, - 90 - ], - "id": "e5232923-8233-42c7-98bf-ba473a56a788" - }, - { - "parameters": { - "url": "https://raw.githubusercontent.com/n8n-io/test-workflows/main/workflows/93.json", - "responseFormat": "file", - "options": {} - }, - "name": "HTTP Request", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 1, - "position": [ - 500, - 550 - ], - "id": "d1e66066-2d60-48d5-bde2-003715d38e1b" - }, - { - "parameters": { - "fileName": "/tmp/testworkflowfile.json" - }, - "name": "Write Binary File", - "type": "n8n-nodes-base.writeBinaryFile", - "typeVersion": 1, - "position": [ - 700, - 550 - ], - "id": "f82165ff-9ce4-4f80-8b9d-043bb98252bb" - }, - { - "parameters": { - "source": "localFile", - "workflowPath": "/tmp/testworkflowfile.json" - }, - "name": "Execute local file workflow", - "type": "n8n-nodes-base.executeWorkflow", - "typeVersion": 1, - "position": [ - 900, - 550 - ], - "id": "af481068-77a8-4c83-8473-3f20d2fba53e" - }, - { - "parameters": { - "workflowId": "94" - }, - "name": "Execute Workflow ID 94", - "type": "n8n-nodes-base.executeWorkflow", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "id": "c65ee4ea-afc8-4674-90d1-12d6c1685209" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Execute Workflow ID 94", - "type": "main", - "index": 0 - }, - { - "node": "Execute parameter - workflow", - "type": "main", - "index": 0 - }, - { - "node": "Execute URL workflow", - "type": "main", - "index": 0 - }, - { - "node": "HTTP Request", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "main": [ - [ - { - "node": "Write Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Write Binary File": { - "main": [ - [ - { - "node": "Execute local file workflow", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/218.json b/test-workflows/workflows/218.json deleted file mode 100644 index 621d47f28a..0000000000 --- a/test-workflows/workflows/218.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "createdAt": "2021-07-08T14:10:14.879Z", - "updatedAt": "2021-07-08T14:14:36.514Z", - "id": "218", - "name": "Bannerbear:Image:create get:Template:get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "f26a5bfe-df4f-4716-aa45-f2fe142d5845" - }, - { - "parameters": { - "templateId": "0MkzgpZ46zEDyVrmlP", - "additionalFields": { - "waitForImage": true - }, - "modificationsUi": { - "modificationsValues": [ - { - "name": "message", - "text": "Testing n8n qa", - "color": "#0911A0", - "background": "#EEEEEE" - } - ] - } - }, - "name": "Bannerbear", - "type": "n8n-nodes-base.bannerbear", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "bannerbearApi": { - "id": "211", - "name": "Bannerbear API creds" - } - }, - "id": "3f8c4976-b1c4-44b7-83ac-fcd90a1fea72" - }, - { - "parameters": { - "operation": "get", - "imageId": "={{$node[\"Bannerbear\"].json[\"uid\"]}}" - }, - "name": "Bannerbear1", - "type": "n8n-nodes-base.bannerbear", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "bannerbearApi": { - "id": "211", - "name": "Bannerbear API creds" - } - }, - "id": "cc376054-599f-42f9-8d13-aca26f93043f" - }, - { - "parameters": { - "resource": "template", - "operation": "getAll" - }, - "name": "Bannerbear2", - "type": "n8n-nodes-base.bannerbear", - "typeVersion": 1, - "position": [ - 900, - 400 - ], - "credentials": { - "bannerbearApi": { - "id": "211", - "name": "Bannerbear API creds" - } - }, - "id": "a76b8466-0c76-4eba-bd95-db664ee77b00" - }, - { - "parameters": { - "resource": "template", - "templateId": "0MkzgpZ46zEDyVrmlP" - }, - "name": "Bannerbear3", - "type": "n8n-nodes-base.bannerbear", - "typeVersion": 1, - "position": [ - 900, - 250 - ], - "credentials": { - "bannerbearApi": { - "id": "211", - "name": "Bannerbear API creds" - } - }, - "id": "cb9a1de6-9dd7-41c9-aa8b-d71e605ee8b9" - } - ], - "connections": { - "Bannerbear": { - "main": [ - [ - { - "node": "Bannerbear1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Bannerbear1": { - "main": [ - [ - { - "node": "Bannerbear2", - "type": "main", - "index": 0 - }, - { - "node": "Bannerbear3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Bannerbear", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/219.json b/test-workflows/workflows/219.json deleted file mode 100644 index 25e580edb8..0000000000 --- a/test-workflows/workflows/219.json +++ /dev/null @@ -1,393 +0,0 @@ -{ - "createdAt": "2021-06-25T06:08:38.364Z", - "updatedAt": "2021-07-08T15:34:23.744Z", - "id": "219", - "name": "Automizy:List:create get update getAll delete:Contact:create get update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 270, - 380 - ], - "id": "b4a081a6-9a54-4e52-8e77-18d8d3df627c" - }, - { - "parameters": { - "resource": "list", - "name": "=List{{Date.now()}}" - }, - "name": "Automizy", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 440, - 380 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "b1dceb9d-e1b8-4b55-9e64-158a2b8729cb" - }, - { - "parameters": { - "resource": "list", - "operation": "get", - "listId": "={{$node[\"Automizy\"].json[\"id\"]}}" - }, - "name": "Automizy1", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 640, - 380 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "2c8e8668-1982-443f-8047-4291009cb7a9" - }, - { - "parameters": { - "resource": "list", - "operation": "update", - "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", - "name": "=UpdatedList{{Date.now()}}" - }, - "name": "Automizy2", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 790, - 380 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "3fd15d30-4310-4556-86d8-d065af81e1f8" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "limit": 1, - "additionalFields": { - "direction": "desc", - "fields": "id,name", - "sortBy": "name" - } - }, - "name": "Automizy3", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 940, - 380 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "c1fbd84b-5857-4309-948e-514684bdeb9a" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "listId": "={{$node[\"Automizy\"].json[\"id\"]}}" - }, - "name": "Automizy4", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 1090, - 380 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "35dd2b7a-d40d-4714-a689-b0c8983538df" - }, - { - "parameters": { - "email": "=fakeemail{{Date.now()}}@gmail.com", - "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", - "additionalFields": { - "customFieldsUi": { - "customFieldsValues": [ - { - "key": 3, - "value": "=Company{{Date.now()}}" - }, - { - "key": 1, - "value": "=Firstname{{Date.now()}}" - }, - { - "key": 2, - "value": "=Second{{Date.now()}}" - }, - { - "key": 4, - "value": "=Position{{Date.now()}}" - } - ] - }, - "status": "ACTIVE", - "tags": [ - "test" - ] - } - }, - "name": "Automizy5", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 590, - 530 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "f5681b6a-76c6-464c-bdfe-778fc2ebdec3" - }, - { - "parameters": { - "operation": "get", - "contactId": "={{$node[\"Automizy5\"].json[\"id\"]}}" - }, - "name": "Automizy6", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 740, - 530 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "23c3ebef-deab-48bf-a0f6-bdbb172d3634" - }, - { - "parameters": { - "operation": "update", - "email": "={{$node[\"Automizy5\"].json[\"email\"]}}", - "updateFields": { - "customFieldsUi": { - "customFieldsValues": [ - { - "key": 3, - "value": "UpdatedCompany" - } - ] - }, - "removeTags": [ - "test" - ], - "status": "BANNED" - } - }, - "name": "Automizy7", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 890, - 530 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "2c376196-e422-411f-b84d-9a6e86898061" - }, - { - "parameters": { - "operation": "getAll", - "listId": "={{$node[\"Automizy\"].json[\"id\"]}}", - "limit": 1, - "additionalFields": { - "fields": "id,status" - } - }, - "name": "Automizy8", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 1040, - 530 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "dcef5e3c-3ae9-49c9-81cf-70197ae5cf9f" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"Automizy5\"].json[\"id\"]}}" - }, - "name": "Automizy9", - "type": "n8n-nodes-base.automizy", - "typeVersion": 1, - "position": [ - 1190, - 530 - ], - "credentials": { - "automizyApi": { - "id": "212", - "name": "Automizy API creds" - } - }, - "id": "9e848425-9b56-497d-bc56-a934e80ec686" - } - ], - "connections": { - "Automizy": { - "main": [ - [ - { - "node": "Automizy5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy1": { - "main": [ - [ - { - "node": "Automizy2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy2": { - "main": [ - [ - { - "node": "Automizy3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy3": { - "main": [ - [ - { - "node": "Automizy4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy5": { - "main": [ - [ - { - "node": "Automizy6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy6": { - "main": [ - [ - { - "node": "Automizy7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy7": { - "main": [ - [ - { - "node": "Automizy8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy8": { - "main": [ - [ - { - "node": "Automizy9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Automizy9": { - "main": [ - [ - { - "node": "Automizy1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Automizy", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/22.json b/test-workflows/workflows/22.json deleted file mode 100644 index ed51062e28..0000000000 --- a/test-workflows/workflows/22.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "createdAt": "2021-02-16T16:30:25.114Z", - "updatedAt": "2021-02-16T19:02:02.611Z", - "id": "22", - "name": "Hubspot:ContactList:add remove:Form:getFields submit", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "89975e09-da30-4c6d-8d61-9650d57b9c3d" - }, - { - "parameters": { - "resource": "form", - "formId": "a3c94446-bea8-49be-80a7-c862efe7ceb6" - }, - "name": "Hubspot", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 490, - 210 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "3211fe29-82cf-4b3e-95a8-9a35f9daab8a" - }, - { - "parameters": { - "resource": "form", - "operation": "submit", - "formId": "a3c94446-bea8-49be-80a7-c862efe7ceb6", - "additionalFields": {}, - "lengalConsentUi": { - "lengalConsentValues": { - "consentToProcess": true, - "text": "test", - "communicationsUi": { - "communicationValues": [] - } - } - } - }, - "name": "Hubspot1", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 890, - 210 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "dfae8bbd-deb9-4584-b5d0-c054d7c68d45" - }, - { - "parameters": { - "resource": "contactList" - }, - "name": "Hubspot2", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 1220, - 290 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "disabled": true, - "id": "c05ef08b-1a37-4e96-a4ed-79d07375d395" - }, - { - "parameters": { - "resource": "contactList", - "email": "nodeqa@n8n.io", - "listId": "2" - }, - "name": "Hubspot3", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 500, - 410 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "d442252a-bb6c-455d-91c0-7e84b2acd2d0" - }, - { - "parameters": { - "resource": "contactList", - "operation": "remove", - "id": "={{$json[\"updated\"][0]}}", - "listId": "2" - }, - "name": "Hubspot4", - "type": "n8n-nodes-base.hubspot", - "typeVersion": 1, - "position": [ - 700, - 410 - ], - "credentials": { - "hubspotApi": { - "id": "11", - "name": "hubsport api key" - } - }, - "id": "80251cfe-7af7-4f16-a8c9-7d9a07ecf296" - }, - { - "parameters": { - "functionCode": "return [{json:{\n email:`test${Date.now().toString().substr(5)}@gmail.com`,\n firstname:'Test first',\n lastname:'Test last',\n message:'Message'\n}}];" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 690, - 210 - ], - "notesInFlow": true, - "notes": "Turn field into single json", - "id": "957f2262-d3e3-4f6f-894d-834aa2e12e31" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Hubspot", - "type": "main", - "index": 0 - }, - { - "node": "Hubspot3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hubspot3": { - "main": [ - [ - { - "node": "Hubspot4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Hubspot1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/220.json b/test-workflows/workflows/220.json deleted file mode 100644 index 3f28a5963e..0000000000 --- a/test-workflows/workflows/220.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "createdAt": "2021-06-25T06:40:20.761Z", - "updatedAt": "2021-07-16T09:01:07.467Z", - "id": "220", - "name": "Autopilot:List:create getAll:Contact:upsert get getAll delete:ContactList:add exist getAll remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0615b7a0-0786-4868-b269-2a2b0cb2a2fc" - }, - { - "parameters": { - "email": "=Fakeemail{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "Autopilot", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "1b66282f-b944-486c-ac84-e0947f8253db" - }, - { - "parameters": { - "operation": "get", - "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" - }, - "name": "Autopilot1", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "1575e003-c7f1-40af-831b-90fe1eaf7fba" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Autopilot2", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "09f19a0d-0839-4cbe-9c73-5a90ff409606" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" - }, - "name": "Autopilot3", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "9a3fa0ff-117b-4515-bd5f-a573ee304885" - }, - { - "parameters": { - "resource": "list", - "name": "=List{{Date.now()}}" - }, - "name": "Autopilot4", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 500, - 100 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "notes": "IGNORED_PROPERTIES=list_id,name,message", - "id": "6b2022b3-cc2e-41a0-9420-83859ad48e64" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "limit": 1 - }, - "name": "Autopilot5", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 650, - 100 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "ed2a8101-9083-469f-81d1-5c92a530bb2d" - }, - { - "parameters": { - "resource": "contactList", - "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", - "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" - }, - "name": "Autopilot6", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 950, - 450 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "018aaf92-3c41-4a82-92a6-d67c7681a9de" - }, - { - "parameters": { - "resource": "contactList", - "operation": "exist", - "listId": "={{$node[\"Autopilot4\"].json[\"list_id\"]}}", - "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" - }, - "name": "Autopilot7", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 1100, - 450 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "9942b084-4991-4d0c-bb43-4a1417c5353c" - }, - { - "parameters": { - "resource": "contactList", - "operation": "getAll", - "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", - "limit": 1 - }, - "name": "Autopilot8", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 1250, - 450 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "a130470d-1b45-4077-b7a1-3814443d93a8" - }, - { - "parameters": { - "resource": "contactList", - "operation": "remove", - "listId": "={{$node[\"Autopilot5\"].json[\"list_id\"]}}", - "contactId": "={{$node[\"Autopilot\"].json[\"contact_id\"]}}" - }, - "name": "Autopilot9", - "type": "n8n-nodes-base.autopilot", - "typeVersion": 1, - "position": [ - 1400, - 450 - ], - "credentials": { - "autopilotApi": { - "id": "213", - "name": "Autopilot API creds" - } - }, - "id": "76538b0d-f96e-4bbf-83dd-fafb0f1e3edf" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Autopilot4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot": { - "main": [ - [ - { - "node": "Autopilot1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot1": { - "main": [ - [ - { - "node": "Autopilot2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot2": { - "main": [ - [ - { - "node": "Autopilot6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot4": { - "main": [ - [ - { - "node": "Autopilot5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot5": { - "main": [ - [ - { - "node": "Autopilot", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot6": { - "main": [ - [ - { - "node": "Autopilot7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot7": { - "main": [ - [ - { - "node": "Autopilot8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot8": { - "main": [ - [ - { - "node": "Autopilot9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Autopilot9": { - "main": [ - [ - { - "node": "Autopilot3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/221.json b/test-workflows/workflows/221.json deleted file mode 100644 index 63c049d397..0000000000 --- a/test-workflows/workflows/221.json +++ /dev/null @@ -1,930 +0,0 @@ -{ - "createdAt": "2021-06-25T10:58:54.559Z", - "updatedAt": "2021-07-09T10:01:28.338Z", - "id": "221", - "name": "Copper:Company:*:Person:*:Opportunity:*:Project:*:Task:*:CustomerSource:getAll:User:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "3524ea35-2975-49aa-8a25-0980af2d16ff" - }, - { - "parameters": { - "name": "=Company{{Date.now()}}", - "additionalFields": { - "address": { - "addressFields": { - "street": "street", - "city": "city", - "state": "state", - "postal_code": "1001", - "country": "country" - } - }, - "details": "Description ", - "email_domain": "=Test{{Date.now()}}", - "phone_numbers": { - "phoneFields": [ - { - "number": "42424242", - "category": "mobile" - } - ] - } - } - }, - "name": "Copper", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 500, - 130 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "c7d44454-2d3f-446a-a21f-ba97dee874c2" - }, - { - "parameters": { - "operation": "get", - "companyId": "={{$node[\"Copper\"].json[\"id\"]}}" - }, - "name": "Copper1", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 650, - 130 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "80a08b49-e665-4b05-93b3-f4354d107800" - }, - { - "parameters": { - "operation": "update", - "companyId": "={{$node[\"Copper\"].json[\"id\"]}}", - "updateFields": { - "address": { - "addressFields": { - "street": "UpdateStreet", - "city": "UpdatedCity", - "state": "UpdateState", - "postal_code": "1002", - "country": "UpdateCountry" - } - }, - "name": "=Updated{{$node[\"Copper1\"].json[\"name\"]}}" - } - }, - "name": "Copper2", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 800, - 130 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "c3ada9b0-26af-4531-b932-e2f0a4c672d9" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filterFields": { - "name": "={{$node[\"Copper2\"].json[\"name\"]}}" - } - }, - "name": "Copper3", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 950, - 130 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "ee32ed20-d5f4-40e3-8288-a678df7c9c98" - }, - { - "parameters": { - "operation": "delete", - "companyId": "={{$node[\"Copper\"].json[\"id\"]}}" - }, - "name": "Copper4", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1100, - 130 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "b4c3643c-e8d5-41ce-87fd-9edd54201956" - }, - { - "parameters": { - "resource": "customerSource", - "limit": 1 - }, - "name": "Copper5", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 650, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "ec0a392e-77a5-4c30-a1f1-31554e924160" - }, - { - "parameters": { - "resource": "person", - "name": "=Person{{Date.now()}}", - "additionalFields": { - "details": "Person description - Test" - } - }, - "name": "Copper6", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 500, - 290 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "de249aff-db75-4937-a878-25ad37c5b160" - }, - { - "parameters": { - "resource": "person", - "operation": "get", - "personId": "={{$node[\"Copper6\"].json[\"id\"]}}" - }, - "name": "Copper7", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 750, - 290 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "2ab13b8a-2012-4b79-8b66-c01e2e539168" - }, - { - "parameters": { - "resource": "person", - "operation": "update", - "personId": "={{$node[\"Copper6\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Copper7\"].json[\"name\"]}}" - } - }, - "name": "Copper8", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 900, - 290 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "036bce7e-3450-4dc5-a8d9-09031be7b283" - }, - { - "parameters": { - "resource": "person", - "operation": "getAll", - "limit": 1, - "filterFields": {} - }, - "name": "Copper9", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1050, - 290 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "0ee23c1e-c3fc-44d2-ab7f-962fcb519d5f" - }, - { - "parameters": { - "resource": "person", - "operation": "delete", - "personId": "={{$node[\"Copper6\"].json[\"id\"]}}" - }, - "name": "Copper10", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1200, - 290 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "23ceb77e-bc3d-4e38-8d9c-339149e82555" - }, - { - "parameters": { - "resource": "project", - "name": "=Project{{Date.now()}}", - "additionalFields": { - "details": "Detail projects - Test", - "status": "Open" - } - }, - "name": "Copper11", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 500, - 590 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "987fcbb0-1be5-49b7-88cc-706e091200c4" - }, - { - "parameters": { - "resource": "project", - "operation": "get", - "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}" - }, - "name": "Copper12", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 650, - 590 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "8c6eab76-1955-46f8-99c0-f6e7cba6d089" - }, - { - "parameters": { - "resource": "project", - "operation": "update", - "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}", - "updateFields": { - "details": "Completed Update", - "name": "=Upated{{$node[\"Copper12\"].json[\"name\"]}}", - "status": "Completed" - } - }, - "name": "Copper13", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 800, - 590 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "bb59c271-79e0-48f1-8f7c-2495fa913b16" - }, - { - "parameters": { - "resource": "project", - "operation": "getAll", - "limit": 1, - "filterFields": {} - }, - "name": "Copper14", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 950, - 590 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "322d58e4-799a-43f4-893a-93ef541e1250" - }, - { - "parameters": { - "resource": "project", - "operation": "delete", - "projectId": "={{$node[\"Copper11\"].json[\"id\"]}}" - }, - "name": "Copper15", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1100, - 590 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "3319110f-6cee-48da-a712-02e462c6eb63" - }, - { - "parameters": { - "resource": "task", - "name": "=Task{{Date.now()}}", - "additionalFields": { - "details": "Task description", - "priority": "High", - "status": "Open" - } - }, - "name": "Copper16", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 500, - 740 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "cf53821f-74de-44c4-9e18-da30dbebba9e" - }, - { - "parameters": { - "resource": "task", - "operation": "get", - "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}" - }, - "name": "Copper17", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 650, - 740 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "564d21cd-fc4c-4b55-8068-bd4c559aa73d" - }, - { - "parameters": { - "resource": "task", - "operation": "update", - "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}", - "updateFields": { - "details": "Update task description", - "name": "=Updated{{$node[\"Copper17\"].json[\"name\"]}}", - "priority": "None", - "status": "Completed" - } - }, - "name": "Copper18", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 800, - 740 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "1e015bc3-f684-42da-80ff-d523ba36fa5d" - }, - { - "parameters": { - "resource": "task", - "operation": "getAll", - "limit": 1, - "filterFields": { - "project_ids": "={{$node[\"Copper18\"].json[\"id\"]}}," - } - }, - "name": "Copper19", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 950, - 740 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "e8986a4b-02b9-4596-9512-078f88be2431" - }, - { - "parameters": { - "resource": "task", - "operation": "delete", - "taskId": "={{$node[\"Copper16\"].json[\"id\"]}}" - }, - "name": "Copper20", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1100, - 740 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "b5cd7438-3115-4146-8607-34b67476f5b3" - }, - { - "parameters": { - "resource": "user", - "limit": 1 - }, - "name": "Copper21", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 500, - -10 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "94cdc07a-0c7e-4f25-a1c0-e1385358a455" - }, - { - "parameters": { - "resource": "opportunity", - "name": "=Opportunity{{Date.now()}}", - "customerSourceId": "={{$node[\"Copper5\"].json[\"id\"]}}", - "primaryContactId": "={{$node[\"Copper6\"].json[\"id\"]}}" - }, - "name": "Copper22", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 800, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "c8d1ed81-1892-4687-9506-4df121ba7b53" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "get", - "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}" - }, - "name": "Copper23", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 950, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "8aa793b5-49d9-4329-9f59-95d265d9df92" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "update", - "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Copper23\"].json[\"name\"]}}" - } - }, - "name": "Copper24", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1100, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "64ded247-0c6f-4256-9689-dbc4738df63a" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "getAll", - "limit": 1, - "filterFields": {} - }, - "name": "Copper25", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1250, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "3834c3ed-308c-46c7-9aa6-3bc441d11897" - }, - { - "parameters": { - "resource": "opportunity", - "operation": "delete", - "opportunityId": "={{$node[\"Copper22\"].json[\"id\"]}}" - }, - "name": "Copper26", - "type": "n8n-nodes-base.copper", - "typeVersion": 1, - "position": [ - 1400, - 440 - ], - "credentials": { - "copperApi": { - "id": "214", - "name": "Copper API creds" - } - }, - "id": "6c2b484c-d78f-412a-ac33-eb5637fd30fa" - } - ], - "connections": { - "Copper": { - "main": [ - [ - { - "node": "Copper1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper1": { - "main": [ - [ - { - "node": "Copper2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper2": { - "main": [ - [ - { - "node": "Copper3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper3": { - "main": [ - [ - { - "node": "Copper4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper6": { - "main": [ - [ - { - "node": "Copper5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper7": { - "main": [ - [ - { - "node": "Copper8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper8": { - "main": [ - [ - { - "node": "Copper9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper9": { - "main": [ - [ - { - "node": "Copper10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper11": { - "main": [ - [ - { - "node": "Copper12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper12": { - "main": [ - [ - { - "node": "Copper13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper13": { - "main": [ - [ - { - "node": "Copper14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper14": { - "main": [ - [ - { - "node": "Copper15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper16": { - "main": [ - [ - { - "node": "Copper17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper17": { - "main": [ - [ - { - "node": "Copper18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper18": { - "main": [ - [ - { - "node": "Copper19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper19": { - "main": [ - [ - { - "node": "Copper20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Copper", - "type": "main", - "index": 0 - }, - { - "node": "Copper6", - "type": "main", - "index": 0 - }, - { - "node": "Copper11", - "type": "main", - "index": 0 - }, - { - "node": "Copper16", - "type": "main", - "index": 0 - }, - { - "node": "Copper21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper5": { - "main": [ - [ - { - "node": "Copper22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper22": { - "main": [ - [ - { - "node": "Copper23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper23": { - "main": [ - [ - { - "node": "Copper24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper24": { - "main": [ - [ - { - "node": "Copper25", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper25": { - "main": [ - [ - { - "node": "Copper26", - "type": "main", - "index": 0 - } - ] - ] - }, - "Copper26": { - "main": [ - [ - { - "node": "Copper7", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/222.json b/test-workflows/workflows/222.json deleted file mode 100644 index 35b31e505b..0000000000 --- a/test-workflows/workflows/222.json +++ /dev/null @@ -1,336 +0,0 @@ -{ - "createdAt": "2021-07-02T07:59:24.159Z", - "updatedAt": "2021-07-09T10:56:03.728Z", - "id": "222", - "name": "Lemlist:Lead:create get unsubscribe delete:Campaign:getAll:Activity:getAll:Team:get:Unsubscribe:add getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "3fd92007-e246-4af4-a0bd-af520944645a" - }, - { - "parameters": { - "limit": 1, - "filters": { - "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}" - } - }, - "name": "Lemlist", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 590, - 300 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "487b4ba3-99b4-468f-b462-d0c7afb9c13f" - }, - { - "parameters": { - "resource": "campaign", - "limit": 1 - }, - "name": "Lemlist1", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "7d261b8d-cff1-4d87-b356-7a4f3be78428" - }, - { - "parameters": { - "resource": "team" - }, - "name": "Lemlist2", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "df32604f-1d9a-4a7f-9add-1b154962f7ac" - }, - { - "parameters": { - "resource": "lead", - "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "Lemlist3", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "1432df44-c5b6-4637-a3f2-379e34f75fae" - }, - { - "parameters": { - "resource": "lead", - "operation": "get", - "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" - }, - "name": "Lemlist4", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "ded2cabd-92e8-4881-ab92-a469efccaef1" - }, - { - "parameters": { - "resource": "lead", - "operation": "unsubscribe", - "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", - "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" - }, - "name": "Lemlist5", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "de9bdf0c-0f64-4d90-bd11-4f11fb1e7184" - }, - { - "parameters": { - "resource": "lead", - "operation": "delete", - "campaignId": "={{$node[\"Lemlist1\"].json[\"_id\"]}}", - "email": "={{$node[\"Lemlist3\"].json[\"email\"]}}" - }, - "name": "Lemlist6", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "364bf6ff-2417-46b0-a0ee-5a4727cf7228" - }, - { - "parameters": { - "resource": "unsubscribe", - "email": "=fakeemail{{Date.now()}}@mail.test" - }, - "name": "Lemlist7", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "2d0091c7-b0d9-43ff-b523-7e31bd14c872" - }, - { - "parameters": { - "resource": "unsubscribe", - "operation": "getAll", - "limit": 1 - }, - "name": "Lemlist9", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "a9b87222-01ce-42d8-9d58-21c82f3fd2eb" - }, - { - "parameters": { - "resource": "unsubscribe", - "operation": "delete", - "email": "={{$node[\"Lemlist7\"].json[\"email\"]}}" - }, - "name": "Lemlist10", - "type": "n8n-nodes-base.lemlist", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "credentials": { - "lemlistApi": { - "id": "215", - "name": "Lemlist API creds" - } - }, - "id": "d967d1a8-66ac-46f7-9930-10509859fe1c" - } - ], - "connections": { - "Lemlist": { - "main": [ - [] - ] - }, - "Lemlist1": { - "main": [ - [ - { - "node": "Lemlist", - "type": "main", - "index": 0 - }, - { - "node": "Lemlist3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Lemlist3": { - "main": [ - [ - { - "node": "Lemlist4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Lemlist4": { - "main": [ - [ - { - "node": "Lemlist5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Lemlist5": { - "main": [ - [ - { - "node": "Lemlist6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Lemlist1", - "type": "main", - "index": 0 - }, - { - "node": "Lemlist2", - "type": "main", - "index": 0 - }, - { - "node": "Lemlist7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Lemlist7": { - "main": [ - [ - { - "node": "Lemlist9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Lemlist9": { - "main": [ - [ - { - "node": "Lemlist10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/223.json b/test-workflows/workflows/223.json deleted file mode 100644 index f5dd403bb6..0000000000 --- a/test-workflows/workflows/223.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "createdAt": "2021-07-02T10:27:33.975Z", - "updatedAt": "2021-07-09T11:10:22.318Z", - "id": "223", - "name": "LingvaNex:Translate", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "61781654-9992-4dd9-8224-943ecf740806" - }, - { - "parameters": { - "text": "automation", - "translateTo": "de_DE", - "options": { - "from": "en_US" - } - }, - "name": "LingvaNex", - "type": "n8n-nodes-base.lingvaNex", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "lingvaNexApi": { - "id": "216", - "name": "LingvaNex API creds" - } - }, - "id": "68e11f02-34e0-47d6-a175-81abf5002b28" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "LingvaNex", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/224.json b/test-workflows/workflows/224.json deleted file mode 100644 index 55f9eb0066..0000000000 --- a/test-workflows/workflows/224.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "createdAt": "2021-07-05T14:32:19.990Z", - "updatedAt": "2021-07-09T12:39:46.228Z", - "id": "224", - "name": "QuickBase:Record:create update getAll upsert:Report:run get:Field:getAll:File:download", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 250 - ], - "id": "bf5f914e-83a9-4ad6-a539-d2eda48cf8ea" - }, - { - "parameters": { - "resource": "field", - "tableId": "brkf6p68v", - "limit": 1, - "options": {} - }, - "name": "Quick Base", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 450, - 90 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "f5a894fe-fd72-43d9-8d19-a3913ad04c56" - }, - { - "parameters": { - "tableId": "brkf6p68v", - "columns": "name", - "simple": false, - "options": { - "fields": [ - 2, - 1, - 6, - 3 - ] - } - }, - "name": "Quick Base1", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 590, - 240 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "873001c3-3c1f-4311-9b5a-a04d3bdf5321" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=TestRecordName{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 450, - 240 - ], - "id": "c4613406-ddd6-4f8e-bef9-cf65f1250840" - }, - { - "parameters": { - "operation": "update", - "tableId": "brkf6p68v", - "columns": "name", - "updateKey": "=name", - "simple": false, - "options": { - "fields": [ - 2, - 1, - 6, - 3 - ] - } - }, - "name": "Quick Base2", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 890, - 240 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "0a93b666-c58c-4b85-950b-1abb94fe66d8" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=UpdatedTestRecordName{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 740, - 240 - ], - "id": "72a5922b-dbb9-4e44-85d1-6bb89eef35b0" - }, - { - "parameters": { - "operation": "getAll", - "tableId": "brkf6p68v", - "limit": 1, - "options": { - "select": [ - 6, - 3 - ] - } - }, - "name": "Quick Base3", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 1040, - 240 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "8529e62b-8274-46d2-be2f-bdba8dae2765" - }, - { - "parameters": { - "operation": "upsert", - "tableId": "brkf6p68v", - "columns": "name", - "updateKey": "name", - "options": { - "fields": [ - 6, - 3 - ] - } - }, - "name": "Quick Base4", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 1340, - 240 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "ff322a95-9fe6-4432-98fe-e655c69c212a" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "=TestUpsertRecordName{{Date.now()}}" - } - ] - }, - "options": {} - }, - "name": "Set2", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1190, - 240 - ], - "id": "7df37b96-5357-4f1b-ae79-deaa537b7a79" - }, - { - "parameters": { - "resource": "report", - "operation": "run", - "tableId": "brkf6p68v", - "reportId": "1", - "returnAll": false, - "limit": 1 - }, - "name": "Quick Base5", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 450, - 390 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "2b8bbaa2-0983-4074-932e-4ba02d74448b" - }, - { - "parameters": { - "resource": "report", - "tableId": "brkf6p68v", - "reportId": "1" - }, - "name": "Quick Base6", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 600, - 390 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "4b2c54e4-17c3-4648-aa4a-6bd9052a8364" - }, - { - "parameters": { - "resource": "file", - "tableId": "brkf6p68v", - "recordId": "1", - "fieldId": "9" - }, - "name": "Quick Base7", - "type": "n8n-nodes-base.quickbase", - "typeVersion": 1, - "position": [ - 450, - 540 - ], - "credentials": { - "quickbaseApi": { - "id": "217", - "name": "Quick Base API creds" - } - }, - "id": "70bd2916-790b-4791-8bd3-964ecca4d109" - } - ], - "connections": { - "Set": { - "main": [ - [ - { - "node": "Quick Base1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Quick Base1": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Quick Base2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Quick Base2": { - "main": [ - [ - { - "node": "Quick Base3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Quick Base3": { - "main": [ - [ - { - "node": "Set2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set2": { - "main": [ - [ - { - "node": "Quick Base4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - }, - { - "node": "Quick Base", - "type": "main", - "index": 0 - }, - { - "node": "Quick Base5", - "type": "main", - "index": 0 - }, - { - "node": "Quick Base7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Quick Base5": { - "main": [ - [ - { - "node": "Quick Base6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Quick Base7": { - "main": [ - [] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/225.json b/test-workflows/workflows/225.json deleted file mode 100644 index e3eadfe61a..0000000000 --- a/test-workflows/workflows/225.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "createdAt": "2021-07-06T12:49:19.325Z", - "updatedAt": "2021-07-09T13:11:16.807Z", - "id": "225", - "name": "Salesmate:Company:*:Deal:*:Activity:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d47537bc-67a1-47ac-9410-957dda70e3f4" - }, - { - "parameters": { - "resource": "company", - "name": "=Company{{Date.now()}}", - "owner": 1, - "additionalFields": { - "description": "descrip company" - } - }, - "name": "Salesmate", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 450, - 150 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "9e381841-e89b-4231-a1ca-b58c2b894dfc" - }, - { - "parameters": { - "resource": "company", - "operation": "get", - "id": "={{$node[\"Salesmate\"].json[\"id\"]}}" - }, - "name": "Salesmate1", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "da6626ca-4b9e-4cec-bf60-103a042ac6f3" - }, - { - "parameters": { - "resource": "company", - "operation": "update", - "id": "={{$node[\"Salesmate\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Salesmate\"].json[\"name\"]}}", - "description": "=Updated - {{$node[\"Salesmate\"].json[\"description\"]}}" - } - }, - "name": "Salesmate2", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "9aed3a7e-ec9c-4ff0-81b7-feec1f0ecb19" - }, - { - "parameters": { - "resource": "company", - "operation": "getAll", - "limit": 1, - "options": { - "fields": "id,name,description", - "sortBy": "" - }, - "filters": { - "filtersUi": { - "conditions": { - "conditionsUi": [ - { - "condition": "STARTS_WITH", - "value": "Updated" - } - ] - } - } - } - }, - "name": "Salesmate3", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "1473e087-a4e1-42da-8ef9-a3bbd86727ce" - }, - { - "parameters": { - "resource": "company", - "operation": "delete", - "id": "={{$node[\"Salesmate\"].json[\"id\"]}}" - }, - "name": "Salesmate4", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "85405bf3-34f5-495b-9f56-3cc5c6825b89" - }, - { - "parameters": { - "resource": "deal", - "title": "=Deal{{Date.now()}}", - "owner": 1, - "primaryContact": 2, - "pipeline": "Sales", - "stage": "New (Untouched)", - "currency": "USD", - "additionalFields": { - "description": "description", - "dealValue": 100 - } - }, - "name": "Salesmate5", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "30c81868-cea1-44bd-bacf-a08b131e4a42" - }, - { - "parameters": { - "resource": "deal", - "operation": "get", - "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}" - }, - "name": "Salesmate6", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "4959dbb6-bc71-4b26-87f6-9bb86829dc53" - }, - { - "parameters": { - "resource": "deal", - "operation": "update", - "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Salesmate6\"].json[\"title\"]}}", - "status": "Lost", - "stage": "Contacted" - } - }, - "name": "Salesmate7", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "0af25087-9407-4327-bb19-85a7c468ae19" - }, - { - "parameters": { - "resource": "deal", - "operation": "getAll", - "limit": 1, - "options": { - "sortBy": "createdAt", - "sortOrder": "desc" - } - }, - "name": "Salesmate8", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "9ec365f7-9638-42dd-9aa6-9342a4dacd46" - }, - { - "parameters": { - "resource": "deal", - "operation": "delete", - "id": "={{$node[\"Salesmate5\"].json[\"id\"]}}" - }, - "name": "Salesmate9", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "97f624b7-65f4-4192-8e9d-3801ea3ca34c" - }, - { - "parameters": { - "title": "=Activity{{Date.now()}}", - "owner": 1, - "type": "meeting", - "additionalFields": { - "description": "act descrp", - "duration": 30 - } - }, - "name": "Salesmate10", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "766fead2-c755-41cc-b43d-394a57791d74" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}" - }, - "name": "Salesmate11", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "7df4f89c-f88d-49d4-b22c-9c5caf9bef69" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}", - "updateFields": { - "title": "=Updated{{$node[\"Salesmate11\"].json[\"title\"]}}", - "description": "Updated description", - "isCompleted": true - } - }, - "name": "Salesmate12", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "f4498a03-3082-4bba-9531-ff896042b330" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": { - "sortBy": "createdAt", - "sortOrder": "desc" - } - }, - "name": "Salesmate13", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 900, - 450 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "c2f0236f-1e0f-47bd-b53a-daf3f468e3ba" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Salesmate10\"].json[\"id\"]}}" - }, - "name": "Salesmate14", - "type": "n8n-nodes-base.salesmate", - "typeVersion": 1, - "position": [ - 1050, - 450 - ], - "credentials": { - "salesmateApi": { - "id": "218", - "name": "Salesmate API creds" - } - }, - "id": "d602aba4-2d19-42cd-9e1c-735f2ffae4c4" - } - ], - "connections": { - "Salesmate": { - "main": [ - [ - { - "node": "Salesmate1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate1": { - "main": [ - [ - { - "node": "Salesmate2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate2": { - "main": [ - [ - { - "node": "Salesmate3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate3": { - "main": [ - [ - { - "node": "Salesmate4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate5": { - "main": [ - [ - { - "node": "Salesmate6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate6": { - "main": [ - [ - { - "node": "Salesmate7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate7": { - "main": [ - [ - { - "node": "Salesmate8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate8": { - "main": [ - [ - { - "node": "Salesmate9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate10": { - "main": [ - [ - { - "node": "Salesmate11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate11": { - "main": [ - [ - { - "node": "Salesmate12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate12": { - "main": [ - [ - { - "node": "Salesmate13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Salesmate13": { - "main": [ - [ - { - "node": "Salesmate14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Salesmate", - "type": "main", - "index": 0 - }, - { - "node": "Salesmate5", - "type": "main", - "index": 0 - }, - { - "node": "Salesmate10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/226.json b/test-workflows/workflows/226.json deleted file mode 100644 index 9fae96f322..0000000000 --- a/test-workflows/workflows/226.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "createdAt": "2021-07-07T14:29:45.509Z", - "updatedAt": "2021-07-09T13:40:17.209Z", - "id": "226", - "name": "UnleashedSoftware:SakesOrder:getAll:StockOnHand:getAll get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e60708c7-7fc5-4b69-9181-7dd94ce4c511" - }, - { - "parameters": { - "limit": 1, - "filters": {} - }, - "name": "Unleashed Software", - "type": "n8n-nodes-base.unleashedSoftware", - "typeVersion": 1, - "position": [ - 500, - 230 - ], - "credentials": { - "unleashedSoftwareApi": { - "id": "219", - "name": "Unleashed API creds" - } - }, - "id": "76856236-9d00-497b-a162-71621943085d" - }, - { - "parameters": { - "resource": "stockOnHand", - "limit": 1, - "filters": {} - }, - "name": "Unleashed Software1", - "type": "n8n-nodes-base.unleashedSoftware", - "typeVersion": 1, - "position": [ - 500, - 380 - ], - "credentials": { - "unleashedSoftwareApi": { - "id": "219", - "name": "Unleashed API creds" - } - }, - "id": "f5f1e555-171a-4a6c-a2c0-52c2cd763a9a" - }, - { - "parameters": { - "resource": "stockOnHand", - "operation": "get", - "productId": "={{$node[\"Unleashed Software1\"].json[\"Guid\"]}}" - }, - "name": "Unleashed Software2", - "type": "n8n-nodes-base.unleashedSoftware", - "typeVersion": 1, - "position": [ - 650, - 380 - ], - "credentials": { - "unleashedSoftwareApi": { - "id": "219", - "name": "Unleashed API creds" - } - }, - "id": "f0e49947-de25-46b8-8e00-0cc1967832a1" - } - ], - "connections": { - "Unleashed Software1": { - "main": [ - [ - { - "node": "Unleashed Software2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Unleashed Software", - "type": "main", - "index": 0 - }, - { - "node": "Unleashed Software1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/227.json b/test-workflows/workflows/227.json deleted file mode 100644 index 103556acd5..0000000000 --- a/test-workflows/workflows/227.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "createdAt": "2021-07-08T14:10:14.879Z", - "updatedAt": "2021-07-09T14:05:22.996Z", - "id": "227", - "name": "Flow:Task:create get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "077a12f0-e2c8-4990-bf0c-3705208c8ada" - }, - { - "parameters": { - "workspaceId": "473181", - "name": "=Task{{Date.now()}}", - "additionalFields": { - "noteContent": "Task content", - "noteMimeType": "text/plain", - "position": 1 - } - }, - "name": "Flow", - "type": "n8n-nodes-base.flow", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "flowApi": { - "id": "220", - "name": "Flow API creds" - } - }, - "id": "2a76f52f-0b77-4c76-bbca-c54e6581d13e" - }, - { - "parameters": { - "operation": "get", - "taskId": "={{$node[\"Flow\"].json[\"id\"]}}", - "filters": {} - }, - "name": "Flow1", - "type": "n8n-nodes-base.flow", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "flowApi": { - "id": "220", - "name": "Flow API creds" - } - }, - "id": "c1f80e78-bad4-457f-8b00-a239a070ca09" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Flow2", - "type": "n8n-nodes-base.flow", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "flowApi": { - "id": "220", - "name": "Flow API creds" - } - }, - "id": "5ea201ba-164f-4ed0-be1d-d893930d6568" - }, - { - "parameters": { - "operation": "update", - "workspaceId": "473181", - "taskId": "={{$node[\"Flow\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated{{$node[\"Flow1\"].json[\"task\"][\"name\"]}}", - "completed": true - } - }, - "name": "Flow3", - "type": "n8n-nodes-base.flow", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "flowApi": { - "id": "220", - "name": "Flow API creds" - } - }, - "id": "df48712d-b64d-43b8-8493-f053d5b52804" - } - ], - "connections": { - "Flow": { - "main": [ - [ - { - "node": "Flow1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Flow1": { - "main": [ - [ - { - "node": "Flow2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Flow2": { - "main": [ - [ - { - "node": "Flow3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Flow", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/229.json b/test-workflows/workflows/229.json deleted file mode 100644 index a5697ea2ab..0000000000 --- a/test-workflows/workflows/229.json +++ /dev/null @@ -1,731 +0,0 @@ -{ - "createdAt": "2022-09-23T13:17:35.393Z", - "updatedAt": "2022-09-23T13:17:42.056Z", - "id": "229", - "name": "GoogleDrive:Folder:create share delete:File:upload share list download copy delete copy (RL)", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 450 - ], - "id": "af503bcd-fa8c-4eaa-9c50-632c7692c6e8" - }, - { - "parameters": { - "resource": "folder", - "name": "testFolder", - "options": {} - }, - "name": "Google Drive", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 500, - 290 - ], - "id": "8b134518-c868-4ea9-8811-0a687f2485af", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "share", - "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}", - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive1", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 670, - 290 - ], - "id": "b31303e6-a55d-4844-b829-35ec7b5ecfef", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}" - }, - "name": "Google Drive2", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 830, - 290 - ], - "id": "6868f66e-f772-4219-b633-774b1c2b621f", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "fileContent": "Test File Content", - "name": "testFile", - "options": {} - }, - "name": "Google Drive3", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 500, - 460 - ], - "id": "5a748249-c5e0-4d69-93dc-175b9f8d6416", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "share", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive4", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 660, - 460 - ], - "id": "de39ddca-a217-4c46-b4d9-52a7eba74223", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "list", - "limit": 1, - "options": {} - }, - "name": "Google Drive5", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 820, - 460 - ], - "id": "46ef5f25-0096-4ee9-9930-ad476fcd0cb3", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "download", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", - "options": {} - }, - "name": "Google Drive6", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 960, - 460 - ], - "id": "a169ecfe-389b-41a3-8e27-e1f8e85afbc9", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "copy", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", - "options": {} - }, - "name": "Google Drive7", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1100, - 460 - ], - "id": "f4a9acb4-c943-4e96-b830-6081a55ef14b", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "delete", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" - }, - "name": "Google Drive8", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1240, - 460 - ], - "id": "b8dcbf39-f49f-4a58-8101-8effab64eb3e", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "delete", - "fileId": "={{$node[\"Google Drive7\"].json[\"id\"]}}" - }, - "name": "Google Drive9", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1380, - 460 - ], - "id": "bea4ea40-6bd8-4378-a0b0-ad17b9bd237f", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "content": "## Legacy mode", - "height": 494.0510948905113, - "width": 1240.9160583941607 - }, - "id": "4a46fffc-779d-4d3e-865c-dd165caf1b0e", - "name": "Note", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 340, - 160 - ] - }, - { - "parameters": { - "operation": "delete", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive18\"].json[\"id\"]}}", - "mode": "id" - } - }, - "name": "Google Drive10", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1400, - 980 - ], - "id": "b93f0486-16e4-4d59-9894-7e57cabb3a29", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "name": "testFolder", - "options": {} - }, - "name": "Google Drive11", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 520, - 820 - ], - "id": "9785352c-2a2d-4ca1-baa7-0a310fd04413", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "share", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive11\"].json[\"id\"]}}", - "mode": "id" - }, - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive12", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 680, - 820 - ], - "id": "a3fba084-d9c2-4311-a893-f2280313a784", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive11\"].json[\"id\"]}}", - "mode": "id" - } - }, - "name": "Google Drive13", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 840, - 820 - ], - "id": "2f78286f-efd2-4284-b5d4-7f58abebf896", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "fileContent": "Test File Content", - "name": "testFile", - "options": {} - }, - "name": "Google Drive14", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 520, - 980 - ], - "id": "c85b7694-685b-4fb3-bd63-46c2d5099c2e", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "share", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", - "mode": "id" - }, - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive15", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 680, - 980 - ], - "id": "be2a8cd4-1e04-47cf-8073-109b7f7af275", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "list", - "limit": 1, - "options": {} - }, - "name": "Google Drive16", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 840, - 980 - ], - "id": "47d4441f-8694-46fa-8100-8b9119782ec1", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "download", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", - "mode": "id" - }, - "options": {} - }, - "name": "Google Drive17", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 980, - 980 - ], - "id": "e4717e9d-3336-4654-9a1c-9839d6e52f92", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "copy", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", - "mode": "id" - }, - "options": {} - }, - "name": "Google Drive18", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1120, - 980 - ], - "id": "91da5b53-a560-49dd-aac0-fe16f6c5fc09", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "operation": "delete", - "fileId": { - "__rl": true, - "value": "={{$node[\"Google Drive14\"].json[\"id\"]}}", - "mode": "id" - } - }, - "name": "Google Drive19", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1260, - 980 - ], - "id": "560163a2-ece9-48c4-a3c2-bdc8387626c1", - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - } - }, - { - "parameters": { - "content": "## With new RL mode", - "height": 494.0510948905113, - "width": 1240.9160583941607 - }, - "id": "3c49a1f7-7b5a-42fd-9b27-0b80f853e879", - "name": "Note1", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 340, - 680 - ] - } - ], - "connections": { - "Google Drive": { - "main": [ - [ - { - "node": "Google Drive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive1": { - "main": [ - [ - { - "node": "Google Drive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Drive11", - "type": "main", - "index": 0 - }, - { - "node": "Google Drive14", - "type": "main", - "index": 0 - }, - { - "node": "Google Drive3", - "type": "main", - "index": 0 - }, - { - "node": "Google Drive", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive3": { - "main": [ - [ - { - "node": "Google Drive4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive4": { - "main": [ - [ - { - "node": "Google Drive5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive5": { - "main": [ - [ - { - "node": "Google Drive6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive6": { - "main": [ - [ - { - "node": "Google Drive7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive7": { - "main": [ - [ - { - "node": "Google Drive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive8": { - "main": [ - [ - { - "node": "Google Drive9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive11": { - "main": [ - [ - { - "node": "Google Drive12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive12": { - "main": [ - [ - { - "node": "Google Drive13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive14": { - "main": [ - [ - { - "node": "Google Drive15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive15": { - "main": [ - [ - { - "node": "Google Drive16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive16": { - "main": [ - [ - { - "node": "Google Drive17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive17": { - "main": [ - [ - { - "node": "Google Drive18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive18": { - "main": [ - [ - { - "node": "Google Drive19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive19": { - "main": [ - [ - { - "node": "Google Drive10", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": {}, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/230.json b/test-workflows/workflows/230.json deleted file mode 100644 index 47baf59937..0000000000 --- a/test-workflows/workflows/230.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "createdAt": "2023-11-14T13:58:21.079Z", - "updatedAt": "2023-11-14T14:13:25.000Z", - "id": "230", - "name": "CredentialOnlyNodes", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "d4c2fa93-d956-4b90-86ab-e8d7e1f89057", - "name": "When clicking \"Execute Workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 1360, - 720 - ] - }, - { - "parameters": { - "curlImport": "", - "httpVariantWarning": "", - "method": "GET", - "url": "https://www.virustotal.com/api/v3/popular_threat_categories", - "": "", - "authentication": "predefinedCredentialType", - "nodeCredentialType": "virusTotalApi", - "sendQuery": false, - "sendHeaders": false, - "sendBody": false, - "options": {}, - "infoMessage": "" - }, - "id": "11ba670f-87d9-4d4a-ae47-da3fe5bb7715", - "name": "VirusTotal HTTP Request", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 4.1, - "position": [ - 1580, - 720 - ], - "extendsCredential": "virusTotalApi", - "credentials": { - "virusTotalApi": { - "id": "q80wx3kiggmjWdY9", - "name": "VirusTotal account" - } - } - } - ], - "connections": { - "When clicking \"Execute Workflow\"": { - "main": [ - [ - { - "node": "VirusTotal HTTP Request", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": null, - "pinData": {}, - "versionId": "0a529bae-c8b3-416a-95fe-933383d51e59", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/231.json b/test-workflows/workflows/231.json deleted file mode 100644 index 6ab26a1fb8..0000000000 --- a/test-workflows/workflows/231.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "createdAt": "2024-02-14T09:47:52.177Z", - "updatedAt": "2024-02-14T09:47:52.177Z", - "id": "231", - "name": "HTTP:InvalidHostHeader HTTP:CrossDomainRedirect", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "3d7ec041-6d7c-4516-b7a0-b89dd41aca5a", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [-180, 660] - }, - { - "parameters": {}, - "id": "15c4faaf-6241-4215-8919-b66cc80f90aa", - "name": "Success", - "type": "n8n-nodes-base.noOp", - "typeVersion": 1, - "position": [720, 680] - }, - { - "parameters": { - "errorMessage": "Request was not sent, internal SSL error!" - }, - "id": "a98994f5-ad55-4a43-8121-78286e7a85b3", - "name": "Stop and Error", - "type": "n8n-nodes-base.stopAndError", - "typeVersion": 1, - "position": [680, 460] - }, - { - "parameters": { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "id": "e4bed74d-e103-4029-ab3c-77d5ff464b36", - "leftValue": "={{ $json.error.status }}", - "rightValue": 403, - "operator": { - "type": "number", - "operation": "notExists", - "singleValue": true - } - }, - { - "id": "be1eb71b-cccc-4433-95d2-4d4e7c19a2e8", - "leftValue": "={{ $json.error.message }}", - "rightValue": "ssl", - "operator": { - "type": "string", - "operation": "contains" - } - } - ], - "combinator": "and" - }, - "options": {} - }, - "id": "acea7bc3-c611-432e-aa30-74b3a550db5f", - "name": "Internal SSL Error?", - "type": "n8n-nodes-base.if", - "typeVersion": 2, - "position": [480, 660] - }, - { - "parameters": { - "url": "https://n8n.io", - "sendHeaders": true, - "headerParameters": { - "parameters": [ - { - "name": "Host", - "value": "internal.domain" - } - ] - }, - "options": {} - }, - "id": "e3c40b1d-1d18-4dd9-9168-35a801057836", - "name": "Invalid Host header", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 4.1, - "position": [260, 660], - "onError": "continueRegularOutput" - }, - { - "parameters": { - "url": "https://httpbin.org/redirect-to", - "sendQuery": true, - "queryParameters": { - "parameters": [ - { - "name": "url", - "value": "https://n8n.io" - } - ] - }, - "options": {} - }, - "id": "69d69a4d-2786-4f74-bb92-6109814eb56e", - "name": "Cross Domain Redirect", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 4.1, - "position": [260, 860] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Invalid Host header", - "type": "main", - "index": 0 - }, - { - "node": "Cross Domain Redirect", - "type": "main", - "index": 0 - } - ] - ] - }, - "Internal SSL Error?": { - "main": [ - [ - { - "node": "Stop and Error", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Success", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invalid Host header": { - "main": [ - [ - { - "node": "Internal SSL Error?", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": null, - "pinData": {}, - "versionId": "0a529bae-c8b3-416a-95fe-933383d51e59", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/233.json b/test-workflows/workflows/233.json deleted file mode 100644 index 6a19eb7a96..0000000000 --- a/test-workflows/workflows/233.json +++ /dev/null @@ -1,586 +0,0 @@ -{ - "createdAt": "2024-03-04T16:50:04.477Z", - "updatedAt": "2024-03-04T17:07:18.000Z", - "id": "233", - "name": "QdrantVectorStore:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "ec7323e1-1c71-4115-8791-dd8c572756da", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - -300, - 1080 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" - }, - "id": "8d9f25e2-7e5a-48bb-88a9-094b3b6c4496", - "name": "Code", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - -80, - 1080 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "83756a50-a3cc-4cf7-ba40-7aa1d7636280", - "name": "Embeddings OpenAI4", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 300, - 1260 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "some-meta", - "value": "test" - }, - { - "name": "other-meta", - "value": "test2" - } - ] - } - } - }, - "id": "f6f7ddd4-5c9c-43dc-934d-960cb7f7b9bf", - "name": "Default Data Loader1", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 280, - 1460 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "408bcff8-96bb-4801-bed1-9fcee602f6ba", - "name": "Token Splitter1", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 280, - 1620 - ] - }, - { - "parameters": { - "method": "DELETE", - "url": "=https://568ce518-4756-4bdf-92f8-4a35b1113346.us-east4-0.gcp.cloud.qdrant.io:6333/collections/bitcoin_wf_test_{{ $execution.id }}", - "authentication": "predefinedCredentialType", - "nodeCredentialType": "qdrantApi", - "options": {} - }, - "id": "57467b4f-9dc5-4d58-8e0d-d336b39c554b", - "name": "Delete Collection", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 4.1, - "position": [ - 2200, - 1080 - ], - "credentials": { - "qdrantApi": { - "id": "Ohl5AdteUC94gDYj", - "name": "QdrantApi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 12 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "f4e0bc37-c969-4df0-8e03-954143c4198f", - "name": "Check Vector Store Populated1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 680, - 1080 - ], - "executeOnce": true - }, - { - "parameters": { - "amount": 20, - "unit": "seconds" - }, - "id": "076664b6-978a-4ac9-bb9d-46a9edbf5f1a", - "name": "Wait1", - "type": "n8n-nodes-base.wait", - "typeVersion": 1, - "position": [ - 920, - 1080 - ], - "webhookId": "c3d05369-6071-4592-87eb-36d57c60851b" - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 4 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.document.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "bf2e6350-6d64-41cc-bcc4-8b07d6f02d63", - "name": "Check Vector Store Retrieval1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1500, - 1080 - ], - "executeOnce": true - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes." - }, - "id": "5dbcc385-e3e9-4208-9bef-72fdfee4eb3e", - "name": "Question and Answer Chain1", - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.5, - "position": [ - 1700, - 1080 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "2ff4fe0e-e9f5-4250-a36f-5290dd5c7940", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1700, - 1280 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "b192d5f4-0d57-4dac-99c8-bef2b3b4d20a", - "name": "Vector Store Retriever1", - "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", - "typeVersion": 1, - "position": [ - 1780, - 1280 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "a97eac02-2008-46a4-a21c-3f4ddb473f21", - "name": "Embeddings OpenAI3", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1720, - 1580 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", - "name": "output_matches", - "value": "={{ $json.response.includes('80') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "969f8ee8-b3be-4a66-8088-8d9629867c22", - "name": "Edit Fields1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 2040, - 1080 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "a8fce256-50b2-4d70-b3a3-ee5aa9fa2c9b", - "name": "Embeddings OpenAI5", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1140, - 1300 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "mode": "insert", - "qdrantCollection": { - "__rl": true, - "value": "=bitcoin_wf_test_{{ $execution.id }}", - "mode": "id" - }, - "options": {} - }, - "id": "69a471a7-969f-47ef-9e52-4667c943a69f", - "name": "Qdrant Vector Store", - "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", - "typeVersion": 1, - "position": [ - 280, - 1080 - ], - "credentials": { - "qdrantApi": { - "id": "Ohl5AdteUC94gDYj", - "name": "QdrantApi account" - } - } - }, - { - "parameters": { - "qdrantCollection": { - "__rl": true, - "value": "=bitcoin_wf_test_{{ $execution.id }}", - "mode": "id" - } - }, - "id": "43ac7a37-abd1-4b7c-bfdc-e096bda87de6", - "name": "Qdrant Vector Store2", - "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", - "typeVersion": 1, - "position": [ - 1720, - 1440 - ], - "credentials": { - "qdrantApi": { - "id": "Ohl5AdteUC94gDYj", - "name": "QdrantApi account" - } - } - }, - { - "parameters": { - "mode": "load", - "qdrantCollection": { - "__rl": true, - "value": "=bitcoin_wf_test_{{ $execution.id }}", - "mode": "id" - }, - "prompt": "Security risks" - }, - "id": "f1a6871e-cc9f-4f36-93f8-15dba0d4687f", - "name": "Qdrant Vector Store1", - "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant", - "typeVersion": 1, - "position": [ - 1140, - 1080 - ], - "credentials": { - "qdrantApi": { - "id": "Ohl5AdteUC94gDYj", - "name": "QdrantApi account" - } - } - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Code", - "type": "main", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI4": { - "ai_embedding": [ - [ - { - "node": "Qdrant Vector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader1": { - "ai_document": [ - [ - { - "node": "Qdrant Vector Store", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter1": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader1", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Check Vector Store Populated1": { - "main": [ - [ - { - "node": "Wait1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wait1": { - "main": [ - [ - { - "node": "Qdrant Vector Store1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Check Vector Store Retrieval1": { - "main": [ - [ - { - "node": "Question and Answer Chain1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain1": { - "main": [ - [ - { - "node": "Edit Fields1", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Question and Answer Chain1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Retriever1": { - "ai_retriever": [ - [ - { - "node": "Question and Answer Chain1", - "type": "ai_retriever", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI3": { - "ai_embedding": [ - [ - { - "node": "Qdrant Vector Store2", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Edit Fields1": { - "main": [ - [ - { - "node": "Delete Collection", - "type": "main", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI5": { - "ai_embedding": [ - [ - { - "node": "Qdrant Vector Store1", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Qdrant Vector Store": { - "main": [ - [ - { - "node": "Check Vector Store Populated1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Qdrant Vector Store2": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Retriever1", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "Qdrant Vector Store1": { - "main": [ - [ - { - "node": "Check Vector Store Retrieval1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code": { - "main": [ - [ - { - "node": "Qdrant Vector Store", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "163d5463-a0ba-476b-bdf1-75ff7d306534", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/234.json b/test-workflows/workflows/234.json deleted file mode 100644 index cc59cf691c..0000000000 --- a/test-workflows/workflows/234.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "createdAt": "2024-03-04T20:43:54.193Z", - "updatedAt": "2024-03-04T20:43:57.000Z", - "id": "234", - "name": "BasicLLMChain:MistralChat", - "active": false, - "nodes": [ - { - "parameters": { - "model": "mistral-tiny", - "options": { - "temperature": 0 - } - }, - "id": "e825ced6-f1d5-47ab-8aa7-b6c6959732f9", - "name": "Mistral Cloud Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud", - "typeVersion": 1, - "position": [ - 1180, - 720 - ], - "credentials": { - "mistralCloudApi": { - "id": "Rl7R5orXMm9FvxZS", - "name": "Mistral Cloud account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" - }, - "id": "32c781c6-ce33-4ab5-bbd8-14651968daab", - "name": "Mistral Cloud Chat", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 1160, - 560 - ] - }, - { - "parameters": {}, - "id": "72dd7380-7254-4934-9562-f278a776dedd", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 980, - 560 - ] - } - ], - "connections": { - "Mistral Cloud Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Mistral Cloud Chat", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Mistral Cloud Chat", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "4bd59e87-bd2e-42ad-976d-6bf03535cf86", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/235.json b/test-workflows/workflows/235.json deleted file mode 100644 index 0da017bd99..0000000000 --- a/test-workflows/workflows/235.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "createdAt": "2024-03-04T20:39:24.374Z", - "updatedAt": "2024-03-04T20:39:59.000Z", - "id": "235", - "name": "SummarizationChain:Simple:Map", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "7040b003-e694-4251-9dad-f4245966cfdf", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 1120, - 600 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" - }, - "id": "97eb5104-6741-4330-ac11-4c5776aedd79", - "name": "Set Article", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 1540, - 600 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "42de18cf-1320-4f45-bb11-d28523c88a43", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1760, - 760 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", - "name": "baseline_summary", - "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "b7f4e65c-2f5b-41eb-bffd-aeb1ec9919b4", - "name": "Set Baseline", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1340, - 600 - ] - }, - { - "parameters": { - "chunkSize": 4000, - "options": {} - }, - "id": "584d9374-ce54-42df-9c88-b996754e8967", - "name": "Summary - Simple - Map", - "type": "@n8n/n8n-nodes-langchain.chainSummarization", - "typeVersion": 2, - "position": [ - 1740, - 600 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "beaf320b-b14d-44a9-b7f3-1d4379875531", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 2080, - 760 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_languageModel", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "b3f8e974-8f56-4cfe-ae9d-dd0906bb87c4", - "name": "Evaluate to Baseline", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 2060, - 600 - ] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Set Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Article": { - "main": [ - [ - { - "node": "Summary - Simple - Map", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Summary - Simple - Map", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Set Baseline": { - "main": [ - [ - { - "node": "Set Article", - "type": "main", - "index": 0 - } - ] - ] - }, - "Summary - Simple - Map": { - "main": [ - [ - { - "node": "Evaluate to Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Evaluate to Baseline", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "1a8926d6-06a6-4c15-8384-bd74ae4bd8df", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/236.json b/test-workflows/workflows/236.json deleted file mode 100644 index 3099e44a9e..0000000000 --- a/test-workflows/workflows/236.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "createdAt": "2024-03-04T20:41:16.554Z", - "updatedAt": "2024-03-04T20:41:34.000Z", - "id": "236", - "name": "SummarizationChain:Simple:Map:Binary", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "a7c6c0bc-acbc-49bd-8ec8-5075e638d0b9", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 280, - 880 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" - }, - "id": "6b758d00-fd86-465e-abc6-9a4d97a611a9", - "name": "Set Article", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 700, - 880 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "d3f2e53d-c5dd-42b8-b10f-2b2fa2f37ef6", - "name": "OpenAI Chat Model4", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1140, - 1020 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "418a75ed-c4aa-46a1-96d9-f2a3f9c55ab9", - "name": "OpenAI Chat Model5", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1500, - 1020 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "operation": "toJson", - "options": {} - }, - "id": "99c931ba-5d76-443a-bd26-1115b4e59474", - "name": "Convert to File", - "type": "n8n-nodes-base.convertToFile", - "typeVersion": 1.1, - "position": [ - 900, - 880 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", - "name": "baseline_summary", - "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "1c363506-92cd-40d2-b7bd-8245a532cd27", - "name": "Set Baseline", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 500, - 880 - ] - }, - { - "parameters": { - "operationMode": "nodeInputBinary", - "chunkSize": 4000, - "chunkOverlap": 100, - "options": {} - }, - "id": "9d6d0cac-034e-42ed-90fb-d9c2cfe0166f", - "name": "Summary - Simple - Map - Binary", - "type": "@n8n/n8n-nodes-langchain.chainSummarization", - "typeVersion": 2, - "position": [ - 1120, - 880 - ] - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_languageModel", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "f7e12c5f-6445-4924-8fc7-c426d21549ed", - "name": "Evaluate to Baseline", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 1480, - 880 - ] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Set Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Article": { - "main": [ - [ - { - "node": "Convert to File", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model4": { - "ai_languageModel": [ - [ - { - "node": "Summary - Simple - Map - Binary", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model5": { - "ai_languageModel": [ - [ - { - "node": "Evaluate to Baseline", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Convert to File": { - "main": [ - [ - { - "node": "Summary - Simple - Map - Binary", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Baseline": { - "main": [ - [ - { - "node": "Set Article", - "type": "main", - "index": 0 - } - ] - ] - }, - "Summary - Simple - Map - Binary": { - "main": [ - [ - { - "node": "Evaluate to Baseline", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "240bf55b-10e5-451c-9b81-3567130e2ef1", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/237.json b/test-workflows/workflows/237.json deleted file mode 100644 index 5471aac0d6..0000000000 --- a/test-workflows/workflows/237.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "createdAt": "2024-03-04T20:43:01.452Z", - "updatedAt": "2024-03-04T20:43:03.000Z", - "id": "237", - "name": "BasicLLMChain:AzureChat", - "active": false, - "nodes": [ - { - "parameters": { - "model": "gpt4", - "options": { - "temperature": 0 - } - }, - "id": "982999e9-1191-4c74-8292-9f43d19a602b", - "name": "Azure OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi", - "typeVersion": 1, - "position": [ - 700, - 600 - ], - "credentials": { - "azureOpenAiApi": { - "id": "RNAgogiex4JxTr44", - "name": "Azure Open AI account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" - }, - "id": "6684c985-3943-4099-a7b1-c8cc51f3d9f8", - "name": "Azure OpenAI Chat", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 680, - 460 - ] - }, - { - "parameters": {}, - "id": "fa8334bf-da22-4d69-b3f4-97b62c278158", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 460, - 460 - ] - } - ], - "connections": { - "Azure OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Azure OpenAI Chat", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Azure OpenAI Chat", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "3272c26f-5a33-4f48-99ac-bfef95f28dcf", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/238.json b/test-workflows/workflows/238.json deleted file mode 100644 index 836849eb10..0000000000 --- a/test-workflows/workflows/238.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "createdAt": "2024-03-04T20:44:21.362Z", - "updatedAt": "2024-03-04T20:44:21.362Z", - "id": "238", - "name": "BasicLLMChain:OpenAIInstruct", - "active": false, - "nodes": [ - { - "parameters": { - "model": { - "__rl": true, - "mode": "list", - "value": "gpt-3.5-turbo-instruct" - }, - "options": { - "temperature": 0 - } - }, - "id": "086e03aa-f941-4dbc-9794-d418893efd48", - "name": "OpenAI Model", - "type": "@n8n/n8n-nodes-langchain.lmOpenAi", - "typeVersion": 1, - "position": [ - 660, - 600 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "How much is 1+1? Only provide the numerical answer without any other text.\n\n" - }, - "id": "3d36ca4b-ca52-4c76-8729-2d1416b97254", - "name": "Open AI Instruct", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 640, - 460 - ] - }, - { - "parameters": {}, - "id": "6b6a91f3-cb8a-474b-8db8-e4309bd25d92", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 460, - 460 - ] - } - ], - "connections": { - "OpenAI Model": { - "ai_languageModel": [ - [ - { - "node": "Open AI Instruct", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Open AI Instruct", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "c923851b-a7a2-4c7f-895c-d90f994d3e3a", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/239.json b/test-workflows/workflows/239.json deleted file mode 100644 index 0b976e1741..0000000000 --- a/test-workflows/workflows/239.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "createdAt": "2024-03-04T20:32:15.867Z", - "updatedAt": "2024-03-13T13:43:09.000Z", - "id": "239", - "name": "Agent:PlanAndExecute", - "active": false, - "nodes": [ - { - "parameters": { - "model": "gpt-4-turbo-preview", - "options": { - "temperature": 0 - } - }, - "id": "9ecb9fc6-c634-4915-ae30-f4a40679200c", - "name": "OpenAI Chat Model3", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1020, - 760 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": {}, - "id": "28f13be4-fc17-4e04-8518-bf98272ea7b7", - "name": "Calculator3", - "type": "@n8n/n8n-nodes-langchain.toolCalculator", - "typeVersion": 1, - "position": [ - 1180, - 780 - ] - }, - { - "parameters": {}, - "id": "ebd19bad-5412-4e5b-9cbc-92d85e98f517", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 760, - 620 - ] - }, - { - "parameters": { - "agent": "planAndExecuteAgent", - "promptType": "define", - "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", - "options": {} - }, - "id": "1b397e30-5061-44dd-b6fc-c7100c8c791d", - "name": "AI Agent3", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.4, - "position": [ - 1000, - 620 - ] - } - ], - "connections": { - "OpenAI Chat Model3": { - "ai_languageModel": [ - [ - { - "node": "AI Agent3", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Calculator3": { - "ai_tool": [ - [ - { - "node": "AI Agent3", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "d420104e-1ac2-45a5-b173-e97a7726178f", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/240.json b/test-workflows/workflows/240.json deleted file mode 100644 index e9b6a22352..0000000000 --- a/test-workflows/workflows/240.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "createdAt": "2024-03-04T20:38:02.224Z", - "updatedAt": "2024-03-04T20:38:20.000Z", - "id": "240", - "name": "SummarizationChain:Simpe:Refine", - "active": false, - "nodes": [ - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "45a1f508-8bdc-4a59-8245-b910beddac70", - "name": "OpenAI Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1440, - 640 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "b1cb6eaf-16f0-4f57-b09d-6893e5c52570", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 620, - 500 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" - }, - "id": "33936a84-0d38-4fee-9811-7dc020970e73", - "name": "Set Article", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 1040, - 500 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", - "name": "baseline_summary", - "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "0b869175-1a99-4a50-a29b-79aefb30159f", - "name": "Set Baseline", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 840, - 500 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "57d75d06-da61-4a0a-a917-b076cd1e291e", - "name": "OpenAI Chat Model9", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1760, - 660 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "chunkSize": 4000, - "options": { - "summarizationMethodAndPrompts": { - "values": { - "summarizationMethod": "refine" - } - } - } - }, - "id": "eec9288f-1e8e-4331-9ee6-e57fa207be5b", - "name": "Summary - Simple - Refine", - "type": "@n8n/n8n-nodes-langchain.chainSummarization", - "typeVersion": 2, - "position": [ - 1420, - 500 - ] - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary;\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_languageModel", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "2102e067-5b8a-44aa-9362-4db63fac06c2", - "name": "Evaluate to Baseline4", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 1740, - 500 - ] - } - ], - "connections": { - "OpenAI Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "Summary - Simple - Refine", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Set Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Article": { - "main": [ - [ - { - "node": "Summary - Simple - Refine", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Baseline": { - "main": [ - [ - { - "node": "Set Article", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model9": { - "ai_languageModel": [ - [ - { - "node": "Evaluate to Baseline4", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Summary - Simple - Refine": { - "main": [ - [ - { - "node": "Evaluate to Baseline4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "f5380d94-5641-4fce-857c-f5903700382c", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/241.json b/test-workflows/workflows/241.json deleted file mode 100644 index 141ceef3f1..0000000000 --- a/test-workflows/workflows/241.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "createdAt": "2024-03-04T20:33:51.500Z", - "updatedAt": "2024-03-13T13:41:47.000Z", - "id": "241", - "name": "Agent:OpenAiFunctions", - "active": false, - "nodes": [ - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "a2807ad9-7402-47a8-baf8-3ba8feea2494", - "name": "calculator_called", - "value": "={{ $json.intermediateSteps.filter(a => a.action.tool === 'calculator').length >= 1 }}", - "type": "boolean" - }, - { - "id": "29ca8b14-ce95-4497-85eb-687db33ecd06", - "name": "has_correct_output", - "value": "={{ $json.output.includes('100052') }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "19c7f30c-1234-4dac-8635-59f3101a9dd5", - "name": "Edit Fields", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1240, - 760 - ] - }, - { - "parameters": { - "options": { - "temperature": 0 - } - }, - "id": "704163e9-dee9-4d4f-97b8-9681b050af21", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 920, - 900 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": {}, - "id": "44f670cc-c4e9-44fc-8870-18955f727be1", - "name": "Calculator", - "type": "@n8n/n8n-nodes-langchain.toolCalculator", - "typeVersion": 1, - "position": [ - 1080, - 920 - ] - }, - { - "parameters": {}, - "id": "f036de64-49fa-4854-89b7-2679f6e3cf59", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 700, - 760 - ] - }, - { - "parameters": { - "agent": "openAiFunctionsAgent", - "promptType": "define", - "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "f0129970-11c7-45c6-9665-28498c9c87dd", - "name": "AI Agent", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.7, - "position": [ - 900, - 760 - ] - } - ], - "connections": { - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Calculator": { - "ai_tool": [ - [ - { - "node": "AI Agent", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent": { - "main": [ - [ - { - "node": "Edit Fields", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "92205881-151a-4e66-acd1-31f2d4e3a58c", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/242.json b/test-workflows/workflows/242.json deleted file mode 100644 index 11254c5ce4..0000000000 --- a/test-workflows/workflows/242.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "createdAt": "2024-03-04T20:50:20.300Z", - "updatedAt": "2024-03-04T20:55:07.000Z", - "id": "242", - "name": "BasicLLMChain:OutputParser", - "active": false, - "nodes": [ - { - "parameters": { - "options": { - "temperature": 0 - } - }, - "id": "e130434b-6283-473c-a61d-fbbe26b63acb", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1380, - 720 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "b712a9c6-575e-4026-a6a0-83590c959267", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 1180, - 560 - ] - }, - { - "parameters": { - "jsonSchema": "{\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"state_name\": \"string\",\n \"capital\": \"string\",\n \"electoral_college_votes\": \"number\"\n }\n }\n}" - }, - "id": "6db310a2-11ca-4097-92cb-ec9a6a6da51e", - "name": "Structured Output Parser1", - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 1540, - 720 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What are the top 5 states of US by population?", - "hasOutputParser": true - }, - "id": "2a8ca922-5da0-4065-b999-640fd678b0d3", - "name": "Open AI Chat - Output Parsing", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 1360, - 560 - ] - } - ], - "connections": { - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Open AI Chat - Output Parsing", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Open AI Chat - Output Parsing", - "type": "main", - "index": 0 - } - ] - ] - }, - "Structured Output Parser1": { - "ai_outputParser": [ - [ - { - "node": "Open AI Chat - Output Parsing", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "e3bbc2b0-e9cd-431d-89b4-c39db2989e8f", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/243.json b/test-workflows/workflows/243.json deleted file mode 100644 index 193f871ac7..0000000000 --- a/test-workflows/workflows/243.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "createdAt": "2024-03-04T20:32:40.367Z", - "updatedAt": "2024-03-13T13:41:09.000Z", - "id": "243", - "name": "Agent:ReAct", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "35b58a63-6835-4724-807f-47e24215f4c2", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 840, - 900 - ] - }, - { - "parameters": { - "options": { - "temperature": 0 - } - }, - "id": "9dd9723f-2e8f-463b-b88e-20ba4298f538", - "name": "OpenAI Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1060, - 1040 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": {}, - "id": "223ed022-94bd-4b31-bf12-5c79d9b635a9", - "name": "Calculator2", - "type": "@n8n/n8n-nodes-langchain.toolCalculator", - "typeVersion": 1, - "position": [ - 1220, - 1060 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "a2807ad9-7402-47a8-baf8-3ba8feea2494", - "name": "calculator_called", - "value": "={{ $json.intermediateSteps.filter(a => a.action.tool === 'calculator').length >= 1 }}", - "type": "boolean" - }, - { - "id": "29ca8b14-ce95-4497-85eb-687db33ecd06", - "name": "has_correct_output", - "value": "={{ $json.output.includes('100052') }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "473e1db4-8d90-49e3-99ae-444d7c5d8cf0", - "name": "Edit Fields2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1380, - 900 - ] - }, - { - "parameters": { - "agent": "reActAgent", - "promptType": "define", - "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "3fa65db7-000e-427f-aab9-14af134d0d78", - "name": "AI Agent2", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.4, - "position": [ - 1040, - 900 - ] - } - ], - "connections": { - "OpenAI Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "AI Agent2", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Calculator2": { - "ai_tool": [ - [ - { - "node": "AI Agent2", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent2", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent2": { - "main": [ - [ - { - "node": "Edit Fields2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "aeb32e87-d821-4885-ab26-58321ad2d0a4", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/244.json b/test-workflows/workflows/244.json deleted file mode 100644 index d1d44e1f05..0000000000 --- a/test-workflows/workflows/244.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "createdAt": "2024-03-04T20:35:31.373Z", - "updatedAt": "2024-03-04T20:36:25.000Z", - "id": "244", - "name": "Agent:WorkflowTool", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "e01e31b1-1114-4384-b88d-522337a0010b", - "name": "Execute Workflow Trigger", - "type": "n8n-nodes-base.executeWorkflowTrigger", - "typeVersion": 1, - "position": [ - 200, - 800 - ] - }, - { - "parameters": { - "rules": { - "values": [ - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "leftValue": "={{ $json.tool }}", - "rightValue": "get_weather", - "operator": { - "type": "string", - "operation": "equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Weather" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", - "leftValue": "={{ $json.tool }}", - "rightValue": "get_events", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Events" - } - ] - }, - "options": {} - }, - "id": "a8741e96-bff4-463c-9dd0-ffba5b9877b3", - "name": "Switch", - "type": "n8n-nodes-base.switch", - "typeVersion": 3, - "position": [ - 420, - 800 - ] - }, - { - "parameters": { - "name": "get_weather_data", - "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_weather" - } - ] - } - }, - "id": "d35195a4-f609-467d-9cca-b659e5f76c2b", - "name": "Get Weather", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 620, - 620 - ] - }, - { - "parameters": { - "name": "get_evens", - "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_events" - } - ] - } - }, - "id": "8214ad91-530b-49a1-874b-42d31d1d9e87", - "name": "Get Events", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 720, - 620 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", - "name": "response", - "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "cdb19b9d-9665-4b66-bda7-1b4f8191dad0", - "name": "Edit Fields4", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 700, - 760 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "0434695d-b245-4947-8b6e-7676a5c92904", - "name": "response", - "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "44e58855-7ff7-4f80-9092-f6ed72274874", - "name": "Edit Fields5", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 700, - 920 - ] - }, - { - "parameters": { - "model": "gpt-4-turbo-preview", - "options": { - "temperature": 0 - } - }, - "id": "2fecb46d-8bff-4884-9e73-bd787a6b1ece", - "name": "OpenAI Chat Model4", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 480, - 620 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "has_weather", - "value": "={{ $json.output.includes('5.1') }}", - "type": "boolean" - }, - { - "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", - "name": "has_movie", - "value": "={{ $json.output.includes('Dune') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "32628916-d991-459a-8ad6-07396f0c629e", - "name": "Edit Fields6", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 840, - 460 - ] - }, - { - "parameters": { - "agent": "reActAgent", - "promptType": "define", - "text": "Help me plan my day in Berlin, Germany\n1. Check current the weather \n2. Get the upcoming events\n3. Respond with weather and details about the upcoming events\n\nEach tool should only be called once.", - "options": {} - }, - "id": "367e796c-9c91-42a6-9585-bb9f19c2969a", - "name": "AI Agent4", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.5, - "position": [ - 460, - 460 - ] - }, - { - "parameters": {}, - "id": "84833733-c87b-442c-9be1-26315056a205", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 200, - 460 - ] - } - ], - "connections": { - "Execute Workflow Trigger": { - "main": [ - [ - { - "node": "Switch", - "type": "main", - "index": 0 - } - ] - ] - }, - "Switch": { - "main": [ - [ - { - "node": "Edit Fields4", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Get Weather": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Get Events": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model4": { - "ai_languageModel": [ - [ - { - "node": "AI Agent4", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent4": { - "main": [ - [ - { - "node": "Edit Fields6", - "type": "main", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "058fe472-fd5e-4fab-8f4d-1363d4adbbdb", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/245.json b/test-workflows/workflows/245.json deleted file mode 100644 index cd6325f735..0000000000 --- a/test-workflows/workflows/245.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "createdAt": "2024-03-04T20:43:29.800Z", - "updatedAt": "2024-03-04T20:43:37.000Z", - "id": "245", - "name": "BasicLLMChain:AwsBedrockChat", - "active": false, - "nodes": [ - { - "parameters": { - "model": "amazon.titan-text-lite-v1", - "options": { - "temperature": 0 - } - }, - "id": "6610aac2-0d86-4d20-a625-072403cc1d15", - "name": "AWS Bedrock Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock", - "typeVersion": 1, - "position": [ - 680, - 600 - ], - "credentials": { - "aws": { - "id": "124", - "name": "AWS creds" - } - } - }, - { - "parameters": {}, - "id": "9e52b4d5-5e83-4d6a-a31e-e9408728bb77", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 460, - 460 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" - }, - "id": "8899ab4b-9fab-4c92-8e17-7601117fc3fc", - "name": "AWS Bedrock Chat", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 660, - 460 - ] - } - ], - "connections": { - "AWS Bedrock Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AWS Bedrock Chat", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AWS Bedrock Chat", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "ed68041a-90c9-4900-8307-74bede290f62", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/246.json b/test-workflows/workflows/246.json deleted file mode 100644 index 8783a14996..0000000000 --- a/test-workflows/workflows/246.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "createdAt": "2024-03-04T20:44:38.763Z", - "updatedAt": "2024-03-04T20:44:44.000Z", - "id": "246", - "name": "BasicLLMChain:OpenAIChat", - "active": false, - "nodes": [ - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "7b0bb72a-9a3e-4dbf-a875-cdc429bf333a", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 640, - 600 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "4832e182-9823-45c4-9289-51299debbe4c", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 460, - 460 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "How much is 1+1? Only provide the numerical answer without any other text.\n" - }, - "id": "6f978929-e85a-44cc-999b-8e670bd65314", - "name": "Open AI Chat", - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 620, - 460 - ] - } - ], - "connections": { - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Open AI Chat", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Open AI Chat", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "76b6f624-b785-4b06-9cb0-57deed8b47a0", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/247.json b/test-workflows/workflows/247.json deleted file mode 100644 index 42d542d5da..0000000000 --- a/test-workflows/workflows/247.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "createdAt": "2024-03-04T20:38:50.212Z", - "updatedAt": "2024-03-04T20:39:11.000Z", - "id": "247", - "name": "SummarizationChain:Advanced:Map", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "0d9a3d32-b54b-4353-8886-50390461f967", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 660, - 380 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" - }, - "id": "a5c7a7c0-442c-4ffd-bbf2-1ee98bab0a23", - "name": "Set Article", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 1080, - 380 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "3b01b603-8e9e-4f91-bd86-04820f2234dc", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1480, - 520 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "chunkSize": 300, - "chunkOverlap": 50 - }, - "id": "b4c73920-090e-4668-9fa7-7ea124373409", - "name": "Token Splitter", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 1620, - 520 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", - "name": "baseline_summary", - "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "ca8694fd-7788-41f1-8aa7-11c9c1682358", - "name": "Set Baseline", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 880, - 380 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "57a4de1c-f385-439b-8809-8a1172bab713", - "name": "OpenAI Chat Model8", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1800, - 520 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "chunkingMode": "advanced", - "options": {} - }, - "id": "5ad67153-eef9-4d4a-94af-4974d33c2076", - "name": "Summary - Advanced", - "type": "@n8n/n8n-nodes-langchain.chainSummarization", - "typeVersion": 2, - "position": [ - 1460, - 380 - ] - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_languageModel", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "cdad3056-57aa-4d84-98b2-5077793b883f", - "name": "Evaluate to Baseline3", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 1780, - 380 - ] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Set Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Article": { - "main": [ - [ - { - "node": "Summary - Advanced", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Summary - Advanced", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Token Splitter": { - "ai_textSplitter": [ - [ - { - "node": "Summary - Advanced", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Set Baseline": { - "main": [ - [ - { - "node": "Set Article", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model8": { - "ai_languageModel": [ - [ - { - "node": "Evaluate to Baseline3", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Summary - Advanced": { - "main": [ - [ - { - "node": "Evaluate to Baseline3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "0397921a-1101-44f9-a4ad-19377cd11aa8", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/248.json b/test-workflows/workflows/248.json deleted file mode 100644 index 579bf79f7b..0000000000 --- a/test-workflows/workflows/248.json +++ /dev/null @@ -1,521 +0,0 @@ -{ - "createdAt": "2024-03-04T17:02:06.139Z", - "updatedAt": "2024-03-04T17:07:12.000Z", - "id": "248", - "name": "InMemoryVectorStore:*", - "active": false, - "nodes": [ - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "79cfd86e-b657-49de-bc61-13415ffa725b", - "name": "Embeddings OpenAI6", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 660, - 1480 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "some-meta", - "value": "test" - }, - { - "name": "other-meta", - "value": "test2" - } - ] - } - } - }, - "id": "76ee3d77-836c-417d-8d8e-9822cddfe936", - "name": "Default Data Loader2", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 640, - 1620 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "1edacf5b-b7e4-4486-b98f-c78b338ac38e", - "name": "Token Splitter2", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 640, - 1780 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 12 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "e49fd92f-0a97-44a4-bbf5-c9aa94496ce1", - "name": "Check Vector Store Populated2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1020, - 1340 - ], - "executeOnce": true - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 4 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.document.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "b32d000c-ed3b-48c4-99b8-98cf72cc0a88", - "name": "Check Vector Store Retrieval2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1880, - 1340 - ], - "executeOnce": true - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes." - }, - "id": "fe162de8-6021-4ae6-a874-01c831f79724", - "name": "Question and Answer Chain2", - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.5, - "position": [ - 2100, - 1340 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "93ff6597-cac9-4847-8efd-e1d03520b4b9", - "name": "OpenAI Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 2120, - 1500 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "8985b238-8814-4aab-bbf3-801fb52c7757", - "name": "Vector Store Retriever2", - "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", - "typeVersion": 1, - "position": [ - 2100, - 1620 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "b2ef63c3-2e18-49dc-8241-ee71eabdd6cb", - "name": "Embeddings OpenAI7", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 2040, - 1880 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", - "name": "output_matches", - "value": "={{ $json.response.includes('80') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "046edb77-d0cd-4e8b-9db3-706c249e557f", - "name": "Edit Fields2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 2440, - 1340 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "2f1e6e26-d43e-4254-acef-ea69cd628a9a", - "name": "Embeddings OpenAI8", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1520, - 1540 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "memoryKey": "bitcoin_wf_test" - }, - "id": "11262bc3-f1db-4162-94c8-5f2d5b279900", - "name": "In-Memory Vector Store2", - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 2040, - 1760 - ] - }, - { - "parameters": {}, - "id": "f4ff0f49-ac8b-4f7c-9cd4-90f0f9534772", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 180, - 1340 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" - }, - "id": "06c12027-e965-441d-b1d8-b711eabbeb02", - "name": "Code", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 400, - 1340 - ] - }, - { - "parameters": { - "amount": 10 - }, - "id": "a2510c9b-bdaa-4fa0-85e6-aa7adef9194b", - "name": "Wait", - "type": "n8n-nodes-base.wait", - "typeVersion": 1.1, - "position": [ - 1240, - 1340 - ], - "webhookId": "a5bb0b0d-1527-414f-9abd-46e7f2be4f7f" - }, - { - "parameters": { - "mode": "insert", - "memoryKey": "bitcoin_wf_test", - "clearStore": true - }, - "id": "569a716b-c369-461e-b522-4f890af4fa34", - "name": "In-Memory Vector Store", - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 660, - 1340 - ] - }, - { - "parameters": { - "mode": "load", - "memoryKey": "bitcoin_wf_test", - "prompt": "Security risks" - }, - "id": "8e51401b-9cd7-4d53-9c34-99b6e82a7b06", - "name": "In-Memory Vector Store1", - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 1500, - 1340 - ] - } - ], - "connections": { - "Embeddings OpenAI6": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader2": { - "ai_document": [ - [ - { - "node": "In-Memory Vector Store", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter2": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader2", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Check Vector Store Populated2": { - "main": [ - [ - { - "node": "Wait", - "type": "main", - "index": 0 - } - ] - ] - }, - "Check Vector Store Retrieval2": { - "main": [ - [ - { - "node": "Question and Answer Chain2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain2": { - "main": [ - [ - { - "node": "Edit Fields2", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "Question and Answer Chain2", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Retriever2": { - "ai_retriever": [ - [ - { - "node": "Question and Answer Chain2", - "type": "ai_retriever", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI7": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store2", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI8": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store1", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store2": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Retriever2", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Code", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code": { - "main": [ - [ - { - "node": "In-Memory Vector Store", - "type": "main", - "index": 0 - } - ] - ] - }, - "Wait": { - "main": [ - [ - { - "node": "In-Memory Vector Store1", - "type": "main", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store": { - "main": [ - [ - { - "node": "Check Vector Store Populated2", - "type": "main", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store1": { - "main": [ - [ - { - "node": "Check Vector Store Retrieval2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "88e46c9d-ed01-4d44-909c-6bd94f1ec42a", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/249.json b/test-workflows/workflows/249.json deleted file mode 100644 index 170972efe0..0000000000 --- a/test-workflows/workflows/249.json +++ /dev/null @@ -1,236 +0,0 @@ -{ - "createdAt": "2024-03-04T20:40:09.997Z", - "updatedAt": "2024-03-04T20:40:57.000Z", - "id": "249", - "name": "SummarizationChain:Simple:Stuff", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "3adce5bb-a3e6-4d62-ba40-ff2835b7c4fe", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 1260, - 480 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `The dancing plague of 1518, or dance epidemic of 1518 (French: Épidémie dansante de 1518), was a case of dancing mania that occurred in Strasbourg, Alsace (modern-day France), in the Holy Roman Empire from July 1518 to September 1518. Somewhere between 50 and 400 people took to dancing for weeks. There are many theories behind the phenomenon, the most popular being stress-induced mass hysteria, suggested by John Waller. Other theories include ergot and religious explanations. There is controversy concerning the number of deaths.\n\nHistory\nEvents\nThe outbreak began in July 1518 when a woman called Frau Troffea began to dance fervently and uncontrollably in a street in Strasbourg. Troffea kept up the constant dancing for a week. Soon, three dozen others joined in. By August, the \"dancing plague\" had claimed 400 victims. Dancers were beginning to collapse. It is said some even died from a stroke or heart attack. No one knew what caused this reaction, which meant no one understood how to remedy it. By early September, the outbreak began to subside, when the dancers were sent to a mountain shrine to pray for absolution.\n\nHistorical documents, including \"physician notes, cathedral sermons, local and regional chronicles, and even notes issued by the Strasbourg city council\" are clear that the victims danced; it is not known why. Historical sources agree that there was an outbreak of dancing after a single woman started dancing, and the dancing did not seem to die down. It lasted for such a long time that it even attracted the attention of the authorities; until the council gave up authority to the physicians, who prescribed the afflicted to \"dance themselves free of it.\" There are claims that guild halls were refurbished to accommodate the dancing, as well as musicians and strong people to help keep those dealing with the dancing mania to stay upright. This backfired, and the council was forced to ban public dancing as people danced in fear it was a punishment from Saint Vitus; and to be \"free of sin\" many joined in on the dancing epidemic. The council went as far as to ban music, as well. Those who danced were then ordered to go to the shrine of Saint Vitus, wore red shoes that were sprinkled with holy water and had painted crosses on the tops and soles. They also had to hold small crosses in their hands; and incense and Latin incantations were part of this \"ritual.\" Apparently \"forgiven by Vitus,\" word was spread of a successful ritual and the Dancing Plague had ended.\n\nEvents similar to this are said to have occurred throughout the medieval age including 11th century in Kölbigk, Saxony, where it was believed to be the result of divine judgment . In 15th century Apulia, Italy, a woman was bitten by a tarantula, the venom making her dance convulsively. The only way to cure the bite was to \"shimmy\" and to have the right sort of music available, which was an accepted remedy by scholars like Athanasius Kircher.\n\nContemporaneous explanations included demonic possession and overheated blood.\n\nVeracity of deaths\nControversy exists over whether people ultimately danced to their deaths. Some sources claim that for a period the plague killed around fifteen people per day, but the sources of the city of Strasbourg at the time of the events did not mention the number of deaths, or even if there were fatalities. There do not appear to be any sources related to the events that make note of any fatalities. Ned Pennant-Rea also claims that the final death toll is not known, but if the claims of fifteen people dying per day were true then the toll could be \"into the hundreds.\"\n\nThe main source for the claim is John Waller, who has written several journal articles on the subject and the book A Time to Dance, a Time to Die: The Extraordinary Story of the Dancing Plague of 1518. The sources cited by Waller that mention deaths were all from later accounts of the events. There is also uncertainty around the identity of the initial dancer (either an unnamed woman or \"Frau Troffea\") and the number of dancers involved (somewhere between 50 and 400). Of the six chronicle accounts, four support Lady Troffea as the first dancer.\n\nModern theories\nFood poisoning\nSome believe the dancing could have been brought on by food poisoning caused by the toxic and psychoactive chemical products of ergot fungi (ergotism), which grows commonly on grains (such as rye) used for baking bread. Ergotamine is the main psychoactive product of ergot fungi; it is structurally related to the drug lysergic acid diethylamide (LSD-25) and is the substance from which LSD-25 was originally synthesized. The same fungus has also been implicated in other major historical anomalies, including the Salem witch trials.\n\nIn The Lancet, John Waller argues that \"this theory does not seem tenable, since it is unlikely that those poisoned by ergot could have danced for days at a time. Nor would so many people have reacted to its psychotropic chemicals in the same way. The ergotism theory also fails to explain why almost every outbreak occurred somewhere along the Rhine and Moselle rivers, areas linked by water but with quite different climates and crops\".\n\nStress-induced mass hysteria\nThis could have been an example of fully developed cases of psychogenic movement disorder happening in mass hysteria or mass psychogenic illness, which involves many individuals suddenly exhibiting the same bizarre behavior. The behavior spreads rapidly and broadly in an epidemic pattern. This kind of comportment could have been caused by elevated levels of psychological stress, caused by the ruthless years (even by the rough standards of the early modern period) the people of Alsace were suffering.\n\nWaller speculates that the dancing was \"stress-induced psychosis\" on a mass level, since the region where the people danced was riddled with starvation and disease, and the inhabitants tended to be superstitious. Seven other cases of dancing plague were reported in the same region during the medieval era.\n\nThis psychogenic illness could have created a chorea (from the Greek khoreia meaning \"to dance\"), a situation comprising random and intricate unintentional movements that flit from body part to body part. Diverse choreas (St. Vitus' dance, St. John's dance, and tarantism) were labeled in the Middle Ages referring to the independent epidemics of \"dancing mania\" that happened in central Europe, particularly at the time of the plague.\n\nPop culture and media\nThe event inspired Jonathan Glazer's 2020 short film Strasbourg 1518.\n\nIt was also the inspiration behind the 2022 choral song \"Choreomania\" by Florence and the Machine. It was the third track on the album Dance Fever, which took its title from the song.\n\nThe book series \"A Collection of Utter Speculation\" released a title \"The Dancing Plague: A Collection of Utter Speculation\" in 2022. It is a fictional account about the events that happened in Strasbourg.\n\nThe 2023 novel, The Dance Tree, by Kiran Millwood Hargrave is a fictionalized version of the summer of 1518 in Strasbourg.\n\nThe event is featured as part of the first season of Watcher Entertainment's \"Puppet History\" in the episode \"The Dancing Plague\".`\n}" - }, - "id": "2af3f215-852e-44d1-a16b-1122861abc2c", - "name": "Set Article", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 1640, - 480 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "6fa592a3-1cfe-42d7-8d45-a7ec80871e52", - "name": "baseline_summary", - "value": "The dancing plague of 1518 in Strasbourg, Alsace involved between 50 and 400 people dancing uncontrollably for weeks. The cause is unknown, with theories including stress-induced mass hysteria and ergot poisoning. The outbreak ended when the dancers prayed for absolution at a shrine. There is controversy over the number of deaths, with some sources claiming up to fifteen deaths per day, but historical documents do not confirm any fatalities. Similar events have been reported throughout history, inspiring various works of pop culture.", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "835cd65e-5233-43cf-9e56-f938bbf90ccf", - "name": "Set Baseline", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1440, - 480 - ] - }, - { - "parameters": { - "options": { - "summarizationMethodAndPrompts": { - "values": { - "summarizationMethod": "stuff" - } - } - } - }, - "id": "d81d65f9-3152-435a-be81-e1f68a75eb6f", - "name": "Summary - Simple - Stuff", - "type": "@n8n/n8n-nodes-langchain.chainSummarization", - "typeVersion": 2, - "position": [ - 1820, - 480 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "54a03de0-5c56-4ee7-a72a-2d3fe7ca3659", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1840, - 620 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "314362b4-e5b1-4372-9edb-432857a9039c", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 2160, - 620 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { loadEvaluator } = require(\"langchain/evaluation\");\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nconst inputData = this.getInputData();\nconst inputSummary = inputData[0].json.response.text;\nconst baselineSummary = $('Set Baseline').item.json.baseline_summary\n\nconst evaluator = await loadEvaluator(\"labeled_criteria\", { criteria: 'helpfulness', llm });\n\nconst result = await evaluator.evaluateStrings({\n input: \"Summarize Wikipedia article about the dancing plague of 1518\",\n prediction: inputSummary,\n reference: baselineSummary,\n});\n\n\nreturn [ {json: { ...result } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_languageModel", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "6e3eafab-40d3-4329-a500-0a2e4d81a308", - "name": "Evaluate to Baseline", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 2140, - 480 - ] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Set Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Article": { - "main": [ - [ - { - "node": "Summary - Simple - Stuff", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set Baseline": { - "main": [ - [ - { - "node": "Set Article", - "type": "main", - "index": 0 - } - ] - ] - }, - "Summary - Simple - Stuff": { - "main": [ - [ - { - "node": "Evaluate to Baseline", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Summary - Simple - Stuff", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Evaluate to Baseline", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "7b286328-f8b2-4225-8f25-072239ac0731", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/250.json b/test-workflows/workflows/250.json deleted file mode 100644 index edb3171cf1..0000000000 --- a/test-workflows/workflows/250.json +++ /dev/null @@ -1,564 +0,0 @@ -{ - "createdAt": "2024-03-04T17:01:47.077Z", - "updatedAt": "2024-03-04T17:07:23.000Z", - "id": "250", - "name": "PineconeVectorStore:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "94fcb304-1724-46e1-91cf-039ac12ff094", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 380, - 1180 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" - }, - "id": "72553fda-2372-4f50-a71c-43d99ff9bc81", - "name": "Code", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 600, - 1180 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "86dbd078-2724-4acc-ad29-182603ab8fbb", - "name": "Embeddings OpenAI", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 860, - 1360 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "some-meta", - "value": "test" - }, - { - "name": "other-meta", - "value": "test2" - } - ] - } - } - }, - "id": "5402877d-e03d-49d5-aa3a-ca5f911811c7", - "name": "Default Data Loader", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 840, - 1560 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "554a499c-04d1-4644-a05a-93c9fb4a6fa6", - "name": "Token Splitter", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 840, - 1720 - ] - }, - { - "parameters": { - "amount": 15, - "unit": "seconds" - }, - "id": "4953b654-157e-4048-8c8c-e9cdc0112bba", - "name": "Wait", - "type": "n8n-nodes-base.wait", - "typeVersion": 1, - "position": [ - 1480, - 1180 - ], - "webhookId": "c3d05369-6071-4592-87eb-36d57c60851b" - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 4 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.document.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.document.metadata['some-meta'] === 'test' && i.json.document.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "b7f64fff-c9e7-42c4-80a2-9eec4ab86d75", - "name": "Check Vector Store Retrieval", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 2060, - 1180 - ], - "executeOnce": true - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes." - }, - "id": "a18395f0-240d-40c4-84c2-6aaee560aab0", - "name": "Question and Answer Chain", - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.5, - "position": [ - 2260, - 1180 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "7c6ba271-7628-4f90-8c09-53764c4d18d4", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 2260, - 1380 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "25862b21-175a-4126-97e9-69c5b2623937", - "name": "Vector Store Retriever", - "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", - "typeVersion": 1, - "position": [ - 2340, - 1380 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "21a318d1-8d44-43c1-85b9-102cf320e0ed", - "name": "Embeddings OpenAI9", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 2280, - 1680 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", - "name": "output_matches", - "value": "={{ $json.response.includes('80') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "abfc59fb-d887-407d-aca4-da476b92619a", - "name": "Edit Fields", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 2600, - 1180 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "c784fb20-7fa0-496c-87ee-512f83276fd0", - "name": "Embeddings OpenAI10", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1700, - 1400 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "mode": "insert", - "pineconeIndex": { - "__rl": true, - "value": "n8n", - "mode": "list", - "cachedResultName": "n8n" - }, - "options": { - "clearNamespace": true, - "pineconeNamespace": "bitcoin_wf_test" - } - }, - "id": "ba43d67a-0573-4452-bb9e-e73d58ef75e2", - "name": "Pinecone Vector Store", - "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", - "typeVersion": 1, - "position": [ - 840, - 1180 - ], - "credentials": { - "pineconeApi": { - "id": "IoeAsZR3eD1OS0oY", - "name": "PineconeApi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 12 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "92b37ec8-a093-48d3-be9b-21ecc1de7e30", - "name": "Check Vector Store Populated", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1220, - 1180 - ], - "executeOnce": true - }, - { - "parameters": { - "pineconeIndex": { - "__rl": true, - "value": "n8n", - "mode": "list", - "cachedResultName": "n8n" - }, - "options": { - "pineconeNamespace": "bitcoin_wf_test" - } - }, - "id": "db229cc9-ccf7-405d-8549-5a82e4137103", - "name": "Pinecone Vector Store2", - "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", - "typeVersion": 1, - "position": [ - 2280, - 1560 - ], - "credentials": { - "pineconeApi": { - "id": "IoeAsZR3eD1OS0oY", - "name": "PineconeApi account" - } - } - }, - { - "parameters": { - "mode": "load", - "pineconeIndex": { - "__rl": true, - "value": "n8n", - "mode": "list", - "cachedResultName": "n8n" - }, - "prompt": "What is bitcoin?", - "options": { - "pineconeNamespace": "bitcoin_wf_test" - } - }, - "id": "387518ca-2c63-40b5-bd96-8b5958a2a0d8", - "name": "Pinecone Vector Store1", - "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone", - "typeVersion": 1, - "position": [ - 1680, - 1180 - ], - "credentials": { - "pineconeApi": { - "id": "IoeAsZR3eD1OS0oY", - "name": "PineconeApi account" - } - } - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Code", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code": { - "main": [ - [ - { - "node": "Pinecone Vector Store", - "type": "main", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI": { - "ai_embedding": [ - [ - { - "node": "Pinecone Vector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader": { - "ai_document": [ - [ - { - "node": "Pinecone Vector Store", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Wait": { - "main": [ - [ - { - "node": "Pinecone Vector Store1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Check Vector Store Retrieval": { - "main": [ - [ - { - "node": "Question and Answer Chain", - "type": "main", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain": { - "main": [ - [ - { - "node": "Edit Fields", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Question and Answer Chain", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Retriever": { - "ai_retriever": [ - [ - { - "node": "Question and Answer Chain", - "type": "ai_retriever", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI9": { - "ai_embedding": [ - [ - { - "node": "Pinecone Vector Store2", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI10": { - "ai_embedding": [ - [ - { - "node": "Pinecone Vector Store1", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Pinecone Vector Store": { - "main": [ - [ - { - "node": "Check Vector Store Populated", - "type": "main", - "index": 0 - } - ] - ] - }, - "Check Vector Store Populated": { - "main": [ - [ - { - "node": "Wait", - "type": "main", - "index": 0 - } - ] - ] - }, - "Pinecone Vector Store2": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Retriever", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "Pinecone Vector Store1": { - "main": [ - [ - { - "node": "Check Vector Store Retrieval", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "deeaa4bb-3780-4150-8eea-291722411f08", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/251.json b/test-workflows/workflows/251.json deleted file mode 100644 index 312cc57827..0000000000 --- a/test-workflows/workflows/251.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "createdAt": "2024-03-04T20:33:10.367Z", - "updatedAt": "2024-03-13T13:40:25.000Z", - "id": "251", - "name": "Agent:Conversational", - "active": false, - "nodes": [ - { - "parameters": { - "options": { - "temperature": 0 - } - }, - "id": "b8fb087e-fb91-4b67-b1fe-7c8f94db59bc", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1000, - 580 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": {}, - "id": "0ccb184e-0fd7-4da4-a25c-2b95e0793e8b", - "name": "Calculator1", - "type": "@n8n/n8n-nodes-langchain.toolCalculator", - "typeVersion": 1, - "position": [ - 1160, - 580 - ] - }, - { - "parameters": {}, - "id": "e0db9899-2439-4662-a212-738d48cd08d8", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 800, - 420 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What is the result of 30 + (10002200 / 100)? Only respond with a number.", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "5f23aaf0-0649-4e26-926d-9bdf59e89aa7", - "name": "AI Agent1", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.4, - "position": [ - 980, - 420 - ] - } - ], - "connections": { - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "AI Agent1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Calculator1": { - "ai_tool": [ - [ - { - "node": "AI Agent1", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "da23ae8e-c1e2-4f3c-a585-8e89696633b2", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/252.json b/test-workflows/workflows/252.json deleted file mode 100644 index 43cc10b26c..0000000000 --- a/test-workflows/workflows/252.json +++ /dev/null @@ -1,899 +0,0 @@ -{ - "createdAt": "2024-10-03T09:40:13.616Z", - "updatedAt": "2024-10-03T10:45:47.000Z", - "id": "252", - "name": "vectorStorePGVector:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "e2e07751-023d-46b8-8538-3da9cb4a4d56", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 180, - 600 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" - }, - "id": "b9ece201-2b70-4cae-8191-278ed54fbf75", - "name": "Code", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 640, - 600 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "802fa1b1-e696-4def-94a3-95fbd779c730", - "name": "Embeddings OpenAI4", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1180, - 720 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "qa_chain" - } - ] - } - } - }, - "id": "b22de442-b45d-4684-9329-7c63999501ad", - "name": "Default Data Loader1", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 1300, - 760 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "dd5b5ba1-ce62-47ae-9fdc-a5b75389a434", - "name": "Token Splitter1", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 1320, - 860 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "options": {} - }, - "id": "31e9699d-1959-46db-8745-a107f83986c5", - "name": "Question and Answer Chain1", - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.5, - "position": [ - 1140, - 2420 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0 - } - }, - "id": "300e7bb4-18a4-4208-8b82-b6533fe0f980", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 1140, - 2620 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "topK": 40 - }, - "id": "1c5a4e2d-0220-4647-9cd9-10bcf2e59ee2", - "name": "Vector Store Retriever1", - "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", - "typeVersion": 1, - "position": [ - 1220, - 2620 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "81cb4196-e753-426f-bae5-2f1b963b16b8", - "name": "Embeddings OpenAI3", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1140, - 2920 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", - "name": "output_matches", - "value": "={{ $json.response.includes('80') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "c6fc002c-592e-481c-90fe-19ee523a8336", - "name": "Edit Fields1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1480, - 2420 - ] - }, - { - "parameters": { - "operation": "deleteTable", - "schema": { - "__rl": true, - "mode": "list", - "value": "public" - }, - "table": { - "__rl": true, - "value": "n8n_vectors", - "mode": "name" - }, - "deleteCommand": "drop", - "options": {} - }, - "id": "73de13c8-9b83-450d-afd3-c409720b0843", - "name": "Postgres", - "type": "n8n-nodes-base.postgres", - "typeVersion": 2.5, - "position": [ - 1120, - 3460 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "01711e02-6d7c-4afa-9d61-d3f7c7ba4466", - "name": "Embeddings OpenAI", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1120, - 2160 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "63ae1d1c-adb1-4b88-9885-704d3d31ebda", - "name": "Embeddings OpenAI8", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1160, - 1160 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "retriever" - } - ] - } - } - }, - "id": "c9631a79-8fb8-4e78-8f91-cac5040c23f7", - "name": "Default Data Loader3", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 1260, - 1160 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "00345fc9-0c4f-4db8-82e5-e809c69980cd", - "name": "Token Splitter3", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 1260, - 1300 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "6f64e063-03a0-451b-a93a-377a5f49b1ef", - "name": "Embeddings OpenAI9", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1120, - 1540 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "get_all" - } - ] - } - } - }, - "id": "b39c08af-2700-4c7a-9a43-b8842307ea32", - "name": "Default Data Loader4", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 1220, - 1540 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "c02b660b-4301-4a82-986e-d29f12257243", - "name": "Token Splitter4", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 1220, - 1660 - ] - }, - { - "parameters": { - "mode": "insert", - "options": {} - }, - "id": "ef5cb549-6c57-475f-a574-6969ba51626e", - "name": "Postgres PGVector Store", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1200, - 600 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "mode": "insert", - "options": {} - }, - "id": "93302c27-5e2f-4497-8b2b-a544f71f0b4c", - "name": "Postgres PGVector Store6", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1200, - 1040 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "code": { - "execute": { - "code": "const { PromptTemplate } = require('@langchain/core/prompts');\n\nconst vectorStore = await this.getInputConnectionData('ai_vectorStore', 0);\nconst retriever = vectorStore.asRetriever(40);\n\nconst documents = await retriever.invoke('Some query');\nreturn [ {json: { documents } } ];" - } - }, - "inputs": { - "input": [ - { - "type": "main", - "maxConnections": 1, - "required": true - }, - { - "type": "ai_vectorStore", - "maxConnections": 1, - "required": true - } - ] - }, - "outputs": { - "output": [ - { - "type": "main" - } - ] - } - }, - "id": "547331e8-808f-4015-854c-06cf8a876e12", - "name": "LangChain Code", - "type": "@n8n/n8n-nodes-langchain.code", - "typeVersion": 1, - "position": [ - 1160, - 1840 - ], - "executeOnce": true - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5a9bd52c-f383-4f1c-9a6c-dc1f326775ce", - "name": "has_correct_length", - "value": "={{ $json.documents.length === 12 }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "e0771a3b-5765-481a-a05c-a56331078797", - "name": "Edit Fields", - "type": "n8n-nodes-base.set", - "typeVersion": 3.4, - "position": [ - 1540, - 1840 - ] - }, - { - "parameters": { - "mode": "insert", - "options": {} - }, - "id": "8d013334-cfba-4e04-bac8-ae282500366d", - "name": "Postgres PGVector Store7", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1180, - 1420 - ], - "executeOnce": true, - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "22fdcb8c-e4d6-457b-8635-cb8d4f84189b", - "name": "Embeddings OpenAI5", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1120, - 3280 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5a9bd52c-f383-4f1c-9a6c-dc1f326775ce", - "name": "has_correct_length", - "value": "={{ $json.documents.length === 12 }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "be8de136-11c8-4656-b94f-132286f7a84c", - "name": "Edit Fields2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.4, - "position": [ - 1700, - 3120 - ] - }, - { - "parameters": { - "aggregate": "aggregateAllItemData", - "destinationFieldName": "documents", - "options": {} - }, - "id": "c3625b63-5e97-4a1c-b0f2-40abcccdcf68", - "name": "Aggregate", - "type": "n8n-nodes-base.aggregate", - "typeVersion": 1, - "position": [ - 1500, - 3120 - ] - }, - { - "parameters": { - "mode": "load", - "prompt": "n8n_vectors", - "topK": 40, - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "get_all" - } - ] - } - } - }, - "id": "da78ec78-5970-495c-a597-33b4f1ec8fc4", - "name": "Postgres PGVector Store1", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1120, - 3120 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "retriever" - } - ] - } - } - }, - "id": "a90f2fe9-e51b-43cc-a345-fd581a67b204", - "name": "Postgres PGVector Store2", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1140, - 2800 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "purpose", - "value": "retriever" - } - ] - } - } - }, - "id": "7111c549-0a33-4662-b574-10eac290bc2e", - "name": "Postgres PGVector Store3", - "type": "@n8n/n8n-nodes-langchain.vectorStorePGVector", - "typeVersion": 1, - "position": [ - 1120, - 2040 - ], - "credentials": { - "postgres": { - "id": "pHGfJmTMIpWliDSS", - "name": "PGVector account" - } - } - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Code", - "type": "main", - "index": 0 - } - ] - ] - }, - "Token Splitter1": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader1", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain1": { - "main": [ - [ - { - "node": "Edit Fields1", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Question and Answer Chain1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Retriever1": { - "ai_retriever": [ - [ - { - "node": "Question and Answer Chain1", - "type": "ai_retriever", - "index": 0 - } - ] - ] - }, - "Code": { - "main": [ - [ - { - "node": "Postgres PGVector Store", - "type": "main", - "index": 0 - }, - { - "node": "Postgres PGVector Store6", - "type": "main", - "index": 0 - }, - { - "node": "Postgres PGVector Store7", - "type": "main", - "index": 0 - }, - { - "node": "LangChain Code", - "type": "main", - "index": 0 - }, - { - "node": "Question and Answer Chain1", - "type": "main", - "index": 0 - }, - { - "node": "Postgres PGVector Store1", - "type": "main", - "index": 0 - }, - { - "node": "Postgres", - "type": "main", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI4": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader1": { - "ai_document": [ - [ - { - "node": "Postgres PGVector Store", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI3": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store2", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store3", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI8": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store6", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader3": { - "ai_document": [ - [ - { - "node": "Postgres PGVector Store6", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter3": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader3", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI9": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store7", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader4": { - "ai_document": [ - [ - { - "node": "Postgres PGVector Store7", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter4": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader4", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "LangChain Code": { - "main": [ - [ - { - "node": "Edit Fields", - "type": "main", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI5": { - "ai_embedding": [ - [ - { - "node": "Postgres PGVector Store1", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Aggregate": { - "main": [ - [ - { - "node": "Edit Fields2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Postgres PGVector Store1": { - "main": [ - [ - { - "node": "Aggregate", - "type": "main", - "index": 0 - } - ] - ] - }, - "Postgres PGVector Store2": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Retriever1", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "Postgres PGVector Store3": { - "ai_vectorStore": [ - [ - { - "node": "LangChain Code", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true, - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "pinData": {}, - "versionId": "85e0e2ac-b253-4c25-8cdb-2cfc2d1b87f7", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/253.json b/test-workflows/workflows/253.json deleted file mode 100644 index d3bac12651..0000000000 --- a/test-workflows/workflows/253.json +++ /dev/null @@ -1,1074 +0,0 @@ -{ - "createdAt": "2024-09-25T08:48:42.324Z", - "updatedAt": "2024-09-25T11:23:25.000Z", - "id": "253", - "name": "Agent:Tools:OpenAI", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "a731e388-a711-44c4-a03a-acfd0667e10f", - "name": "Execute Workflow Trigger", - "type": "n8n-nodes-base.executeWorkflowTrigger", - "typeVersion": 1, - "position": [ - 240, - 980 - ] - }, - { - "parameters": { - "name": "get_weather_data", - "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_weather" - } - ] - } - }, - "id": "e082d1ac-db5e-4122-bb0e-4dbb08296463", - "name": "Get Weather", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 640, - 700 - ] - }, - { - "parameters": { - "name": "get_evens", - "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_events" - } - ] - } - }, - "id": "ff4cae49-b5d5-4825-a59b-875375933c59", - "name": "Get Events", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 760, - 700 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", - "name": "response", - "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "8f707bcc-0635-43b8-aa29-0ecd9ceecbbb", - "name": "Edit Fields4", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 740, - 920 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "0434695d-b245-4947-8b6e-7676a5c92904", - "name": "response", - "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "0086c025-54ad-41c2-bc7b-ce12fbe05fb2", - "name": "Edit Fields5", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 740, - 1100 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0 - } - }, - "id": "956d7763-aa7a-4089-8ba6-4ea55d9f7daf", - "name": "OpenAI Chat Model4", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 540, - 540 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - }, - "notes": "IGNORED_PROPERTIES=messages" - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "has_weather", - "value": "={{ $json.output.includes('5.1') }}", - "type": "boolean" - }, - { - "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", - "name": "has_movie", - "value": "={{ $json.output.includes('Dune') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "653e99b2-80c8-4b15-8b3b-818940e28365", - "name": "Edit Fields6", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 900, - 380 - ] - }, - { - "parameters": {}, - "id": "5f16c9cf-cab4-45ba-8974-5a366ef64677", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - -40, - -180 - ] - }, - { - "parameters": { - "content": "## Multiple Tools Calling", - "height": 80, - "width": 335 - }, - "id": "32ebc991-eb8a-48de-a8e4-5aef5c6ba7ae", - "name": "Sticky Note", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 500, - 320 - ] - }, - { - "parameters": { - "content": "## Output Parsing\n", - "height": 88, - "width": 386 - }, - "id": "00ffa66d-4359-4b9b-9cd2-f53e64b5f9d2", - "name": "Sticky Note1", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 500, - -240 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "0434695d-b245-4947-8b6e-7676a5c92904", - "name": "response", - "value": "=Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\n\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\n\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\n\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\n\nExhibitions\n\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "d827a4a6-dbaa-4af9-a3c2-123c3b37b81a", - "name": "Edit Fields", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 740, - 1280 - ] - }, - { - "parameters": { - "rules": { - "values": [ - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "leftValue": "={{ $json.tool }}", - "rightValue": "get_weather", - "operator": { - "type": "string", - "operation": "equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Weather" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", - "leftValue": "={{ $json.tool }}", - "rightValue": "get_events", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Events" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict" - }, - "conditions": [ - { - "id": "64f3dd1b-57e3-4183-a1d6-6b9b58fd1d81", - "leftValue": "={{ $json.tool }}", - "rightValue": "search_wiki", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "search_wiki" - } - ] - }, - "options": {} - }, - "id": "46387d9e-d93f-443c-93b6-6f61013839ae", - "name": "Switch", - "type": "n8n-nodes-base.switch", - "typeVersion": 3, - "position": [ - 460, - 980 - ] - }, - { - "parameters": { - "name": "get_evens", - "description": "Call this tool to search Wikipedia.", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "search_wiki" - } - ] - } - }, - "id": "7a52053b-bcdd-4c55-badb-9cf4739f1804", - "name": "Search Wiki", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 660, - 60 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0.1 - } - }, - "id": "fb451b3f-1c18-4f58-953a-5787d7dc27a5", - "name": "OpenAI Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 540, - 0 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "schemaType": "manual", - "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Full name of the artist\"\n },\n \"birthDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of birth\"\n },\n \"deathDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of death\"\n },\n \"nationality\": {\n \"type\": \"string\",\n \"description\": \"Artist's nationality\"\n },\n \"profession\": {\n \"type\": \"string\",\n \"description\": \"Artist's primary profession\"\n },\n \"notableWorks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Notable works created by the artist\"\n }\n },\n \"required\": [\"name\", \"birthDate\", \"deathDate\", \"nationality\", \"profession\", \"notableWorks\"]\n}" - }, - "id": "bba3dd1d-82f1-4bf2-80ba-2b64e6748abb", - "name": "Structured Output Parser", - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 800, - 0 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Tell me about M.C. Escher", - "hasOutputParser": true, - "options": {} - }, - "id": "7b8eee2b-6677-4935-a102-8a40405b968b", - "name": "AI Agent", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 540, - -180 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "has_birth_date", - "value": "={{ $json.output.birthDate === '1898-06-17' }}", - "type": "boolean" - }, - { - "id": "57513cf6-1ee7-40b7-95fc-316066c62153", - "name": "has_death_date", - "value": "={{ $json.output.deathDate === '1972-03-27' }}", - "type": "string" - }, - { - "id": "357953da-7578-4c7e-b8f8-aa25bd9187a4", - "name": "has_name", - "value": "={{ $json.output.name === 'Maurits Cornelis Escher' }}", - "type": "string" - }, - { - "id": "7cf215ea-f65a-467c-b158-9a80d8de7511", - "name": "has_works", - "value": "={{ $json.output.notableWorks.includes('Hand with Reflecting Sphere') }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "857bab38-39a5-4d53-800f-4fe3bd96f666", - "name": "Edit Fields7", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 900, - -180 - ] - }, - { - "parameters": { - "content": "## Code Tool with Schema\n", - "height": 88, - "width": 386 - }, - "id": "cca57c6d-f08e-4032-83b9-3a9a6caf0334", - "name": "Sticky Note2", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 500, - -620 - ] - }, - { - "parameters": { - "name": "array_merge", - "description": "Call this tool to merge array of strings to a single string", - "jsCode": "// Example: convert the incoming query to uppercase and return it\nreturn query.strings_array.join(', ');", - "specifyInputSchema": true, - "jsonSchemaExample": "{\n\t\"strings_array\": [\"some_value\", \"some_other_value\"]\n}" - }, - "id": "66abd2b8-45ab-455e-b3e1-d6a4d5f083de", - "name": "Code Tool", - "type": "@n8n/n8n-nodes-langchain.toolCode", - "typeVersion": 1.1, - "position": [ - 740, - -400 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0.3 - } - }, - "id": "899ed8b5-2805-4647-870c-ffa80828d195", - "name": "OpenAI Chat Model1", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 540, - -420 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.", - "options": { - "returnIntermediateSteps": false - } - }, - "id": "ab2d9ecf-f338-4e45-b327-667604b21a10", - "name": "AI Agent4", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 520, - 380 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "02408929-ec1f-45ab-bd1f-1b9964814281", - "name": "AI Agent1", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 540, - -560 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "passed_array_parameter", - "value": "={{ Array.isArray($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array) }}", - "type": "boolean" - }, - { - "id": "069c2fe9-f0f8-4938-9552-1dac5c720add", - "name": "has_correct_length", - "value": "={{ $json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array.length === 4 }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "dcae231c-5b1c-49f9-b8e4-c9df4e6fa855", - "name": "Edit Fields8", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 900, - -560 - ] - }, - { - "parameters": { - "content": "## Tool without parameters\n", - "height": 88, - "width": 386 - }, - "id": "b29f9a3d-db79-4d7c-8b2c-0044b56b5a6e", - "name": "Sticky Note3", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 560, - -1020 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "empty_args", - "value": "={{ $ifEmpty($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args, true) }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "ca926d8b-86d5-4dcd-b23f-aadc5f43d35c", - "name": "Edit Fields9", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 960, - -960 - ] - }, - { - "parameters": { - "toolDescription": "Fetch Example website", - "url": "https://example.com" - }, - "id": "a237cbf1-dab1-4ea9-bb6c-aff17b33e0d3", - "name": "HTTP Request", - "type": "@n8n/n8n-nodes-langchain.toolHttpRequest", - "typeVersion": 1.1, - "position": [ - 800, - -800 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0.3 - } - }, - "id": "6aadda49-1d19-4038-90e6-5f7adecc5a1f", - "name": "OpenAI Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 600, - -800 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "Fetch example website", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "bdcc5d54-9532-4bf3-a2b7-da03c196cb15", - "name": "AI Agent2", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 600, - -960 - ] - }, - { - "parameters": { - "sessionIdType": "customKey", - "sessionKey": "memory3", - "contextWindowLength": 10 - }, - "id": "e49bafe2-725a-4146-8023-ecd86952569f", - "name": "Window Buffer Memory1", - "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", - "typeVersion": 1.3, - "position": [ - 580, - -1220 - ] - }, - { - "parameters": { - "jsonSchemaExample": "{\n\t\"english_answer\": \"California\",\n\t\"czech_answer\": \"California\"\n}" - }, - "id": "ca8a3ac2-9055-4f3f-8ccc-897718885cd4", - "name": "Structured Output Parser1", - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 720, - -1220 - ] - }, - { - "parameters": { - "model": "gpt-4o-mini", - "options": { - "temperature": 0.1 - } - }, - "id": "bc913d5b-c00f-44da-a07c-2dceda473199", - "name": "OpenAI Chat Model3", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 440, - -1220 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "Can you still remember my name?", - "hasOutputParser": true, - "options": { - "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." - } - }, - "id": "c255ee66-3a23-4051-9bc3-09eccdf4a4e8", - "name": "AI Agent3", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 960, - -1380 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "492acf62-f7d5-4798-a93c-6a291421ecfb", - "name": "contain_both_answers", - "value": "={{ $json.output.english_answer.length > 0 && $json.output.czech_answer.length > 0 }}", - "type": "boolean" - }, - { - "id": "5c56b6d3-1d59-45c4-bcb8-3d4722493c62", - "name": "recalled_name", - "value": "={{ $json.output.english_answer.includes('Oleg') }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "92534d51-0e5b-481d-9e57-165b77ee9f9d", - "name": "Edit Fields1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.4, - "position": [ - 1300, - -1380 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "hasOutputParser": true, - "options": { - "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." - } - }, - "id": "8fbc4e41-29c5-442d-8661-441a7e9f348a", - "name": "AI Agent5", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 600, - -1380 - ] - }, - { - "parameters": { - "content": "## Output Parser + Memory\n", - "height": 88, - "width": 386 - }, - "id": "be054b49-a62a-4caa-88b3-6b9d44386431", - "name": "Sticky Note4", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 580, - -1440 - ] - } - ], - "connections": { - "Execute Workflow Trigger": { - "main": [ - [ - { - "node": "Switch", - "type": "main", - "index": 0 - } - ] - ] - }, - "Get Weather": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Get Events": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model4": { - "ai_languageModel": [ - [ - { - "node": "AI Agent4", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Switch": { - "main": [ - [ - { - "node": "Edit Fields4", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields5", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields", - "type": "main", - "index": 0 - } - ] - ] - }, - "Search Wiki": { - "ai_tool": [ - [ - { - "node": "AI Agent", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Structured Output Parser": { - "ai_outputParser": [ - [ - { - "node": "AI Agent", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "AI Agent": { - "main": [ - [ - { - "node": "Edit Fields7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code Tool": { - "ai_tool": [ - [ - { - "node": "AI Agent1", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "AI Agent1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent1", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent4", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent2", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent5", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent4": { - "main": [ - [ - { - "node": "Edit Fields6", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent1": { - "main": [ - [ - { - "node": "Edit Fields8", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "ai_tool": [ - [ - { - "node": "AI Agent2", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "AI Agent2", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent2": { - "main": [ - [ - { - "node": "Edit Fields9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Window Buffer Memory1": { - "ai_memory": [ - [ - { - "node": "AI Agent5", - "type": "ai_memory", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_memory", - "index": 0 - } - ] - ] - }, - "Structured Output Parser1": { - "ai_outputParser": [ - [ - { - "node": "AI Agent5", - "type": "ai_outputParser", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model3": { - "ai_languageModel": [ - [ - { - "node": "AI Agent5", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent3": { - "main": [ - [ - { - "node": "Edit Fields1", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent5": { - "main": [ - [ - { - "node": "AI Agent3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true, - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "pinData": {}, - "versionId": "efad4233-0bf7-47f0-9da9-20b335b6b999", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/254.json b/test-workflows/workflows/254.json deleted file mode 100644 index fe477db5db..0000000000 --- a/test-workflows/workflows/254.json +++ /dev/null @@ -1,1131 +0,0 @@ -{ - "createdAt": "2024-09-25T09:14:35.108Z", - "updatedAt": "2024-09-25T11:27:58.000Z", - "id": "254", - "name": "Agent:Tools:Anthropic", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "f9b7ea03-1809-4fef-80dd-521e9d60f3bc", - "name": "Execute Workflow Trigger", - "type": "n8n-nodes-base.executeWorkflowTrigger", - "typeVersion": 1, - "position": [ - 240, - 1100 - ] - }, - { - "parameters": { - "name": "get_weather_data", - "description": "Call this tool to get weather information for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_weather" - } - ] - } - }, - "id": "4275e044-2ce3-4942-a0ed-406bed90debc", - "name": "Get Weather", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 640, - 580 - ] - }, - { - "parameters": { - "name": "get_evens", - "description": "Call this tool to get upcoming events for a specific city. Input should be a single string in format: \"$CITY, $COUNTRY\". So for example to get data about Prague, \"Prague, Czechia\".", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "get_events" - } - ] - } - }, - "id": "c28a61c8-be38-4031-a456-76f936ba6721", - "name": "Get Events", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 760, - 580 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "fc61cf88-967d-4433-9cfd-7cdad1a43e75", - "name": "response", - "value": "={\n \"created\": \"2024-03-04T09:26:23+01:00\",\n \"symbolCode\": {\n \"next1Hour\": \"fog\"\n },\n \"temperature\": {\n \"value\": 5.1,\n \"feelsLike\": 4\n },\n \"precipitation\": {\n \"value\": 0.0\n },\n \"wind\": {\n \"direction\": 275,\n \"speed\": 1.7\n },\n \"status\": {\n \"code\": \"Ok\"\n }\n}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "141f2081-39eb-48f4-9ade-924187116c58", - "name": "Edit Fields4", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1140, - 900 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "0434695d-b245-4947-8b6e-7676a5c92904", - "name": "response", - "value": "=[\n {\n \"description\": \"***Movie Barf* is a new English friendly film night presented by film journalist and blogger Ryan Keating-Lambert, dedicated to screening a diverse variety of award-winning films both contemporary and classic. Ryan’s late night shows includes intriguing chats with various guests (in person or over Skype in the case of the international ones) and special drink offers at the bar.**\\n\\n*Dune: Part Two* / Denis Villeneuve / Canada, USA 2024 / 166 min – Paul Atreides unites with Chani and the Fremen while seeking revenge against the conspirators who destroyed his family.\",\n \"name\": \"Movie Barf: Dune – Part Two\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Luboš Pospíšil will perform with the renewed band 5P on March 14 at the cultural house of Barikadník.\",\n \"name\": \"Luboš Pospíšil & 5P\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"An insomniac office worker looking for a way to change his life crosses paths with a devil-may-care soap maker and they form an underground fight club that evolves into something much, much more...\",\n \"name\": \"Fight Club\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"From filmmaker Yorgos Lanthimos and producer Emma Stone comes the incredible tale and fantastical evolution of Bella Baxter (Stone), a young woman brought back to life by the brilliant and unorthodox scientist Dr. Godwin Baxter (Willem Dafoe). Under Baxter's protection, Bella is eager to learn. Hungry for the worldliness she is lacking, she runs off with Duncan Wedderburn (Mark Ruffalo), a slick and debauched lawyer, on a whirlwind adventure across the continents. Free from the prejudices of her times, Bella grows steadfast in her purpose to stand for equality and liberation.\",\n \"name\": \"Poor Things\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n },\n {\n \"description\": \"Concert of Bharata Rajnošek, who decided to do something very brave - pay tribute to king of the pop, Michael Jackson in jazz.\",\n \"name\": \"Tribute to World Legends: Michael Jackson\",\n \"endDate\": \"Mon Mar 04 2024 23:59:59 GMT+0100 (Central European Standard Time)\"\n }\n]", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "ce0ba26a-5149-436f-aaf6-dc2b64ca02b1", - "name": "Edit Fields5", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1140, - 1080 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "has_weather", - "value": "={{ $json.output.includes('weather') }}", - "type": "boolean" - }, - { - "id": "4f055fa4-10eb-4b7e-b1dc-37a7ef7185fc", - "name": "has_movie", - "value": "={{ $json.output.includes('Dune') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "4ec6d24d-353c-4534-a9e7-5a19f62f8fde", - "name": "Edit Fields6", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 900, - 260 - ] - }, - { - "parameters": {}, - "id": "e14fcffe-bbf8-429c-b84e-aa749017fb8c", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - -40, - -180 - ] - }, - { - "parameters": { - "content": "## Multiple Tools Calling", - "height": 80, - "width": 335 - }, - "id": "62fb5440-b07d-4279-9c0a-722a65fa5322", - "name": "Sticky Note", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 500, - 200 - ] - }, - { - "parameters": { - "content": "## Output Parsing\n", - "height": 88, - "width": 386 - }, - "id": "8020da6e-2ab4-4613-8527-b78705f72114", - "name": "Sticky Note1", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 480, - -240 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "0434695d-b245-4947-8b6e-7676a5c92904", - "name": "response", - "value": "=Maurits Cornelis Escher (Dutch pronunciation: [ˈmʌurɪts kɔrˈneːlɪs ˈɛɕər]; 17 June 1898 – 27 March 1972) was a Dutch graphic artist who made woodcuts, lithographs, and mezzotints, many of which were inspired by mathematics. Despite wide popular interest, for most of his life Escher was neglected in the art world, even in his native Netherlands. He was 70 before a retrospective exhibition was held. In the late twentieth century, he became more widely appreciated, and in the twenty-first century he has been celebrated in exhibitions around the world.\n\nHis work features mathematical objects and operations including impossible objects, explorations of infinity, reflection, symmetry, perspective, truncated and stellated polyhedra, hyperbolic geometry, and tessellations. Although Escher believed he had no mathematical ability, he interacted with the mathematicians George Pólya, Roger Penrose, and Donald Coxeter, and the crystallographer Friedrich Haag, and conducted his own research into tessellation.\n\nEarly in his career, he drew inspiration from nature, making studies of insects, landscapes, and plants such as lichens, all of which he used as details in his artworks. He traveled in Italy and Spain, sketching buildings, townscapes, architecture and the tilings of the Alhambra and the Mezquita of Cordoba, and became steadily more interested in their mathematical structure.\n\nEscher's art became well known among scientists and mathematicians, and in popular culture, especially after it was featured by Martin Gardner in his April 1966 Mathematical Games column in Scientific American. Apart from being used in a variety of technical papers, his work has appeared on the covers of many books and albums. He was one of the major inspirations for Douglas Hofstadter's Pulitzer Prize-winning 1979 book Gödel, Escher, Bach.\n\nExhibitions\n\nPoster advertising the first major exhibition of Escher's work in Britain (Dulwich Picture Gallery, 14 October 2015 – 17 January 2016). The image, which shows Escher and his interest in geometric distortion and multiple levels of distance from reality, is based on his Hand with Reflecting Sphere, 1935.[62][22]\nDespite wide popular interest, Escher was for a long time somewhat neglected in the art world; even in his native Netherlands, he was 70 before a retrospective exhibition was held.[43][k] In the twenty-first century, major exhibitions have been held in cities around the world.[63][64][65] An exhibition of his work in Rio de Janeiro attracted more than 573,000 visitors in 2011;[63] its daily visitor count of 9,677 made it the most visited museum exhibition of the year, anywhere in the world.[66] No major exhibition of Escher's work was held in Britain until 2015, when the Scottish National Gallery of Modern Art ran one in Edinburgh from June to September 2015,[64] moving in October 2015 to the Dulwich Picture Gallery, London. The exhibition poster is based on Hand with Reflecting Sphere, 1935, which shows Escher in his house reflected in a handheld sphere, thus illustrating the artist, his interest in levels of reality in art (e.g., is the hand in the foreground more real than the reflected one?), perspective, and spherical geometry.[22][62][67] The exhibition moved to Italy in 2015–2016, attracting over 500,000 visitors in Rome and Bologna,[65] and then Milan.[68][69][70]", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "2a0cdc4d-2ed8-4efe-973f-a633469c8001", - "name": "Edit Fields", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1140, - 1260 - ] - }, - { - "parameters": { - "name": "get_evens", - "description": "Call this tool to search Wikipedia.", - "workflowId": "={{ $workflow.id }}", - "fields": { - "values": [ - { - "name": "tool", - "stringValue": "search_wiki" - } - ] - } - }, - "id": "e4d9f9bc-45b0-41ce-8f52-539144736ed5", - "name": "Search Wiki", - "type": "@n8n/n8n-nodes-langchain.toolWorkflow", - "typeVersion": 1, - "position": [ - 640, - 60 - ] - }, - { - "parameters": { - "schemaType": "manual", - "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Full name of the artist\"\n },\n \"birthDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of birth\"\n },\n \"deathDate\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Date of death\"\n },\n \"nationality\": {\n \"type\": \"string\",\n \"description\": \"Artist's nationality\"\n },\n \"profession\": {\n \"type\": \"string\",\n \"description\": \"Artist's primary profession\"\n },\n \"notableWorks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Notable works created by the artist\"\n }\n },\n \"required\": [\"name\", \"birthDate\", \"deathDate\", \"nationality\", \"profession\", \"notableWorks\"]\n}" - }, - "id": "466a8e57-8eb7-47a9-b0f0-f16c52b18c8f", - "name": "Structured Output Parser", - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 780, - 0 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Tell me about M.C. Escher", - "hasOutputParser": true, - "options": {} - }, - "id": "75babac0-cb8c-401a-a027-49b850166bf3", - "name": "AI Agent", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 520, - -180 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "has_birth_date", - "value": "={{ $json.output.birthDate === '1898-06-17' }}", - "type": "boolean" - }, - { - "id": "57513cf6-1ee7-40b7-95fc-316066c62153", - "name": "has_death_date", - "value": "={{ $json.output.deathDate === '1972-03-27' }}", - "type": "string" - }, - { - "id": "357953da-7578-4c7e-b8f8-aa25bd9187a4", - "name": "has_name", - "value": "={{ $json.output.name.includes('Escher') }}", - "type": "string" - }, - { - "id": "7cf215ea-f65a-467c-b158-9a80d8de7511", - "name": "has_works", - "value": "={{ $json.output.notableWorks.length > 0 }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "31344c44-bbfc-4774-92d9-b61762b43238", - "name": "Edit Fields7", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 880, - -180 - ] - }, - { - "parameters": { - "content": "## Code Tool with Schema\n", - "height": 88, - "width": 386 - }, - "id": "54533ef5-039b-4243-a81c-9ac1265ae3ec", - "name": "Sticky Note2", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 500, - -620 - ] - }, - { - "parameters": { - "name": "array_merge", - "description": "Call this tool to merge array of strings to a single string", - "jsCode": "// Example: convert the incoming query to uppercase and return it\nreturn query.strings_array.join(', ');", - "specifyInputSchema": true, - "jsonSchemaExample": "{\n\t\"strings_array\": [\"some_value\", \"some_other_value\"]\n}" - }, - "id": "35be87b4-b947-4b05-9380-23570dac701d", - "name": "Code Tool", - "type": "@n8n/n8n-nodes-langchain.toolCode", - "typeVersion": 1.1, - "position": [ - 740, - -400 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "passed_array_parameter", - "value": "={{ Array.isArray($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array) }}", - "type": "boolean" - }, - { - "id": "069c2fe9-f0f8-4938-9552-1dac5c720add", - "name": "has_correct_length", - "value": "={{ $json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args.strings_array.length === 4 }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "33afa806-84d4-4c2e-a004-22e4d4808d47", - "name": "Edit Fields8", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 900, - -560 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "66c36215-8924-4534-8e7b-845d8de29f4a", - "name": "response", - "value": "success", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "b35ef011-376c-4982-b7d9-8ad29eb65cd0", - "name": "Edit Fields1", - "type": "n8n-nodes-base.set", - "typeVersion": 3.4, - "position": [ - 1140, - 1460 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Convert this JSON array to a single string: ['This', 'Is', 'An', 'Array!'].", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "ed050ae2-eb67-4b1f-a87b-28bf5952e5da", - "name": "AI Agent1", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 540, - -560 - ] - }, - { - "parameters": { - "model": "claude-3-haiku-20240307", - "options": { - "temperature": 0.1 - } - }, - "id": "5aa82a01-8d32-4ede-a7f3-9ea2f24432d2", - "name": "Anthropic Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.2, - "position": [ - 520, - 460 - ], - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - }, - { - "parameters": { - "model": "claude-3-haiku-20240307", - "options": { - "temperature": 0.1 - } - }, - "id": "2bfdb0c4-6bc9-481d-ad3c-51bed0925a78", - "name": "Anthropic Chat Model", - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.2, - "position": [ - 520, - 20 - ], - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - }, - { - "parameters": { - "model": "claude-3-haiku-20240307", - "options": { - "temperature": 0.1 - } - }, - "id": "11d7b586-bf4b-42aa-81c1-55aa0e17a3fc", - "name": "Anthropic Chat Model3", - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.2, - "position": [ - 540, - -400 - ], - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "Help me plan my day in Berlin, Germany. Check current the weather and get the upcoming events and respond with weather and details about the upcoming events.\n\nEach tool should only be called only once.", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "59f6625d-fbb2-47f8-ab09-31a6e0f3e527", - "name": "AI Agent4", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 520, - 260 - ] - }, - { - "parameters": { - "rules": { - "values": [ - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict", - "version": 1 - }, - "conditions": [ - { - "leftValue": "={{ $json.tool }}", - "rightValue": "get_weather", - "operator": { - "type": "string", - "operation": "equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Weather" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict", - "version": 1 - }, - "conditions": [ - { - "id": "a164188f-3b5b-4c24-b1bb-e589f4f9219f", - "leftValue": "={{ $json.tool }}", - "rightValue": "get_events", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "Events" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict", - "version": 1 - }, - "conditions": [ - { - "id": "64f3dd1b-57e3-4183-a1d6-6b9b58fd1d81", - "leftValue": "={{ $json.tool }}", - "rightValue": "search_wiki", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "search_wiki" - }, - { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict", - "version": 1 - }, - "conditions": [ - { - "id": "85f031f4-123f-4407-b5d0-fdd90a26667c", - "leftValue": "={{ $json.tool }}", - "rightValue": "no_query", - "operator": { - "type": "string", - "operation": "equals", - "name": "filter.operator.equals" - } - } - ], - "combinator": "and" - }, - "renameOutput": true, - "outputKey": "empty_query" - } - ] - }, - "options": {} - }, - "id": "f4dde342-7945-49a1-8e98-cb967ada7afe", - "name": "Switch", - "type": "n8n-nodes-base.switch", - "typeVersion": 3, - "position": [ - 460, - 1100 - ] - }, - { - "parameters": { - "content": "## Tool without parameters\n", - "height": 88, - "width": 386 - }, - "id": "b5dca644-99e9-4493-9e6a-1fbc03502d5a", - "name": "Sticky Note3", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 520, - -1040 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "414caf45-02aa-4c0a-9cdb-e6da9ec03d80", - "name": "empty_args", - "value": "={{ $ifEmpty($json.intermediateSteps[0].action.messageLog[0].kwargs.tool_calls[0].args, true) }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "2336c95b-f98a-4c4a-89df-d02c7ad00d42", - "name": "Edit Fields9", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 920, - -980 - ] - }, - { - "parameters": { - "model": "claude-3-haiku-20240307", - "options": { - "temperature": 0.1 - } - }, - "id": "7646d5c7-3717-483f-85b5-da0f8eadf609", - "name": "Anthropic Chat Model4", - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.2, - "position": [ - 560, - -820 - ], - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - }, - { - "parameters": { - "toolDescription": "Fetch Example website", - "url": "https://example.com" - }, - "id": "1e1f51e8-7668-4efd-95d6-9c8e7cd5dfbc", - "name": "HTTP Request", - "type": "@n8n/n8n-nodes-langchain.toolHttpRequest", - "typeVersion": 1.1, - "position": [ - 740, - -820 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Fetch example website", - "options": { - "returnIntermediateSteps": true - } - }, - "id": "36e3e45c-8167-4382-87fa-fed3eccc7dff", - "name": "AI Agent2", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 560, - -980 - ] - }, - { - "parameters": { - "sessionIdType": "customKey", - "sessionKey": "memory3", - "contextWindowLength": 10 - }, - "id": "7eace01a-7ea1-4175-a989-297a885d6f54", - "name": "Window Buffer Memory1", - "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", - "typeVersion": 1.3, - "position": [ - 500, - -1240 - ] - }, - { - "parameters": { - "jsonSchemaExample": "{\n\t\"english_answer\": \"California\",\n\t\"czech_answer\": \"California\"\n}" - }, - "id": "58269208-5599-4e2f-b9fe-f63ce1bd73d3", - "name": "Structured Output Parser1", - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 660, - -1240 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "Hi, my name is Oleg. Tell me about magnets like I'm 5.", - "hasOutputParser": true, - "options": { - "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." - } - }, - "id": "66af25fe-deed-4aa1-b597-a2b8ec2aa9be", - "name": "AI Agent5", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 540, - -1400 - ] - }, - { - "parameters": { - "content": "## Output Parser + Memory\n", - "height": 88, - "width": 386 - }, - "id": "9dbe76ab-c191-404b-a3e6-bd81910923bc", - "name": "Sticky Note4", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 520, - -1460 - ] - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "492acf62-f7d5-4798-a93c-6a291421ecfb", - "name": "contain_both_answers", - "value": "={{ $json.output.english_answer.length > 0 && $json.output.czech_answer.length > 0 }}", - "type": "boolean" - }, - { - "id": "5c56b6d3-1d59-45c4-bcb8-3d4722493c62", - "name": "recalled_name", - "value": "={{ $json.output.english_answer.includes('Oleg') }}", - "type": "string" - } - ] - }, - "options": {} - }, - "id": "02cd9756-bc75-4467-a587-e9b063219b94", - "name": "Edit Fields2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.4, - "position": [ - 1240, - -1400 - ] - }, - { - "parameters": { - "model": "claude-3-haiku-20240307", - "options": { - "temperature": 0.1 - } - }, - "id": "acd4aefe-5deb-465c-81c3-28647e4a62c6", - "name": "Anthropic Chat Model5", - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.2, - "position": [ - 360, - -1240 - ], - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "Can you still remember my name?", - "hasOutputParser": true, - "options": { - "systemMessage": "You are a helpful assistant. Always provide both `english_answer` and `czech_answer` in the final output and be very concise." - } - }, - "id": "cd67dbc8-d756-4e0c-8f75-f753e61a4280", - "name": "AI Agent3", - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.6, - "position": [ - 900, - -1400 - ] - } - ], - "connections": { - "Execute Workflow Trigger": { - "main": [ - [ - { - "node": "Switch", - "type": "main", - "index": 0 - } - ] - ] - }, - "Get Weather": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Get Events": { - "ai_tool": [ - [ - { - "node": "AI Agent4", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Search Wiki": { - "ai_tool": [ - [ - { - "node": "AI Agent", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Structured Output Parser": { - "ai_outputParser": [ - [ - { - "node": "AI Agent", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "AI Agent": { - "main": [ - [ - { - "node": "Edit Fields7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code Tool": { - "ai_tool": [ - [ - { - "node": "AI Agent1", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent1", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent4", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent2", - "type": "main", - "index": 0 - }, - { - "node": "AI Agent5", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent1": { - "main": [ - [ - { - "node": "Edit Fields8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "AI Agent4", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model3": { - "ai_languageModel": [ - [ - { - "node": "AI Agent1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent4": { - "main": [ - [ - { - "node": "Edit Fields6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Switch": { - "main": [ - [ - { - "node": "Edit Fields4", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields5", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Edit Fields1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model4": { - "ai_languageModel": [ - [ - { - "node": "AI Agent2", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "ai_tool": [ - [ - { - "node": "AI Agent2", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "AI Agent2": { - "main": [ - [ - { - "node": "Edit Fields9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Window Buffer Memory1": { - "ai_memory": [ - [ - { - "node": "AI Agent5", - "type": "ai_memory", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_memory", - "index": 0 - } - ] - ] - }, - "Structured Output Parser1": { - "ai_outputParser": [ - [ - { - "node": "AI Agent5", - "type": "ai_outputParser", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "AI Agent5": { - "main": [ - [ - { - "node": "AI Agent3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model5": { - "ai_languageModel": [ - [ - { - "node": "AI Agent5", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "AI Agent3", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent3": { - "main": [ - [ - { - "node": "Edit Fields2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true, - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "pinData": {}, - "versionId": "40faa4fb-40b3-4081-8f60-1b226a6294dc", - "triggerCount": 0, - "tags": [] -} diff --git a/test-workflows/workflows/255.json b/test-workflows/workflows/255.json deleted file mode 100644 index caaee18185..0000000000 --- a/test-workflows/workflows/255.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "Sub-node errors:model", - "nodes": [ - { - "parameters": {}, - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 0, - 0 - ], - "id": "077f1a05-32d1-4a9e-abd9-9ef4a1bcfe02", - "name": "When clicking ‘Test workflow’" - }, - { - "parameters": { - "promptType": "define", - "text": "Hey" - }, - "type": "@n8n/n8n-nodes-langchain.chainLlm", - "typeVersion": 1.5, - "position": [ - 200, - 0 - ], - "id": "5c3f329d-6481-41c5-9747-e9fd53815ca6", - "name": "Basic LLM Chain", - "onError": "continueErrorOutput" - }, - { - "parameters": { - "model": "=gpt-4o-mini123", - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 280, - 220 - ], - "id": "00cb1410-f04f-4b2b-b42e-f2c275ba0b4a", - "name": "OpenAI Chat Model", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - } - ], - "pinData": {}, - "connections": { - "When clicking ‘Test workflow’": { - "main": [ - [ - { - "node": "Basic LLM Chain", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "Basic LLM Chain", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - } - }, - "active": false, - "settings": { - "executionOrder": "v1" - }, - "versionId": "56e5e220-edbd-4d7a-97f3-96b8cf952202", - "meta": { - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "id": "255", - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/256.json b/test-workflows/workflows/256.json deleted file mode 100644 index dcbe9b2951..0000000000 --- a/test-workflows/workflows/256.json +++ /dev/null @@ -1,193 +0,0 @@ -{ - "name": "Nested sub-node errors:model", - "nodes": [ - { - "parameters": { - "promptType": "define", - "text": "What happened yesterday?", - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.7, - "position": [ - 140, - -60 - ], - "id": "17f481ed-343f-4e0f-ace0-ec1a6937f57d", - "name": "AI Agent" - }, - { - "parameters": { - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 100, - 180 - ], - "id": "af60b8a2-f065-46e5-92c6-2b3f54e8b48d", - "name": "OpenAI Chat Model", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "name": "search_vector_store", - "description": "Retrieves data about past events" - }, - "type": "@n8n/n8n-nodes-langchain.toolVectorStore", - "typeVersion": 1, - "position": [ - 400, - 160 - ], - "id": "3d2dc985-7dc5-4996-90c5-85e777070315", - "name": "Vector Store Tool" - }, - { - "parameters": { - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1.1, - "position": [ - 360, - 520 - ], - "id": "55cfa84c-b2f6-40aa-9eef-43fec740ba6c", - "name": "Embeddings OpenAI", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "model": "=gpt-4o-mini123", - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 620, - 360 - ], - "id": "46468ea7-318b-4893-b387-b8cc1cca1355", - "name": "OpenAI Chat Model1", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 300, - 320 - ], - "id": "e3a35d71-b47d-46fc-976e-eb671cc9c3fc", - "name": "In-Memory Vector Store" - }, - { - "parameters": {}, - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - -60, - -60 - ], - "id": "b42f6a79-4b29-4e17-95ab-5c4fbeda3683", - "name": "When clicking ‘Test workflow’" - } - ], - "pinData": {}, - "connections": { - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Tool": { - "ai_tool": [ - [ - { - "node": "AI Agent", - "type": "ai_tool", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Vector Store Tool", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Tool", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "When clicking ‘Test workflow’": { - "main": [ - [ - { - "node": "AI Agent", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "active": false, - "settings": { - "executionOrder": "v1" - }, - "versionId": "5b6e4b0f-73c8-4254-8b3e-aa36f3e5ae4e", - "meta": { - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "id": "256", - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/257.json b/test-workflows/workflows/257.json deleted file mode 100644 index 205f93c58f..0000000000 --- a/test-workflows/workflows/257.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "createdAt": "2025-03-11T17:56:22.329Z", - "updatedAt": "2025-03-11T17:57:14.000Z", - "id": "257", - "name": "Agent:auto-fix:anthropic", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "f53b691d-beaa-4d60-a9da-d7380bc4c69a", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - -460, - 80 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What time is my check-in?", - "hasOutputParser": true, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.8, - "position": [ - -140, - 80 - ], - "id": "2ae90e1d-1333-4988-ac49-5e7e8f3026ff", - "name": "AI Agent" - }, - { - "parameters": { - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing", - "typeVersion": 1, - "position": [ - 100, - 360 - ], - "id": "7e2efbb9-41b2-4c6a-a811-3a4d62181ff5", - "name": "Auto-fixing Output Parser" - }, - { - "parameters": { - "schemaType": "manual", - "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"resolution\": {\n \"type\": \"string\",\n \"description\": \"The customer-facing resolution or response that should be communicated to the customer\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Detailed explanation of the solution and reasoning for internal use\"\n }\n },\n \"additionalProperties\": true,\n \"required\": [\"resolution\", \"reasoning\"]\n}" - }, - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 240, - 500 - ], - "id": "6405c53c-46c2-4c64-84c7-a7db2b127ca6", - "name": "Structured Output Parser" - }, - { - "parameters": { - "sessionIdType": "customKey", - "sessionKey": "memory7" - }, - "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", - "typeVersion": 1.3, - "position": [ - -120, - 360 - ], - "id": "0b93b732-9529-45c6-a914-83c500ee3a36", - "name": "Simple Memory" - }, - { - "parameters": { - "model": { - "__rl": true, - "mode": "list", - "value": "gpt-4o-mini" - }, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1.2, - "position": [ - 40, - 500 - ], - "id": "3ebb149d-a83d-4ec1-8e79-e67f87fc5091", - "name": "OpenAI Chat Model1", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "What time is my check-in?", - "hasOutputParser": true, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.8, - "position": [ - 260, - 80 - ], - "id": "8237c156-5ec1-4bf9-84a1-ad408d3b6152", - "name": "AI Agent1" - }, - { - "parameters": { - "content": "## Auto-fixing Output Parser + Memory\n", - "height": 88, - "width": 386 - }, - "id": "fb77496b-6d07-4a3c-90a8-bb8788a5f588", - "name": "Sticky Note4", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - -300, - -40 - ] - }, - { - "parameters": { - "model": { - "__rl": true, - "value": "claude-3-7-sonnet-20250219", - "mode": "list", - "cachedResultName": "Claude 3.7 Sonnet" - }, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic", - "typeVersion": 1.3, - "position": [ - -340, - 360 - ], - "id": "b32382ad-d5c6-4b80-b315-5ba9ce48c994", - "name": "Anthropic Chat Model", - "credentials": { - "anthropicApi": { - "id": "1Dr1Xbrd2xeq7gaq", - "name": "Anthropic account" - } - } - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent", - "type": "main", - "index": 0 - } - ] - ] - }, - "AI Agent": { - "main": [ - [ - { - "node": "AI Agent1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Auto-fixing Output Parser": { - "ai_outputParser": [ - [ - { - "node": "AI Agent", - "type": "ai_outputParser", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "Structured Output Parser": { - "ai_outputParser": [ - [ - { - "node": "Auto-fixing Output Parser", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "Simple Memory": { - "ai_memory": [ - [ - { - "node": "AI Agent", - "type": "ai_memory", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_memory", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Auto-fixing Output Parser", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Anthropic Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "4ab225eb-8c26-476c-a12f-d2cc00836ca5", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/258.json b/test-workflows/workflows/258.json deleted file mode 100644 index ffbc318fd6..0000000000 --- a/test-workflows/workflows/258.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "createdAt": "2025-03-11T17:52:12.078Z", - "updatedAt": "2025-03-11T17:56:05.000Z", - "id": "258", - "name": "Agent:auto-fix:openai", - "active": false, - "nodes": [ - { - "parameters": {}, - "id": "9152fa2f-1cf1-4745-bf52-3d3374e501c5", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 160, - 820 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What time is my check-in?", - "hasOutputParser": true, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.8, - "position": [ - 480, - 820 - ], - "id": "1c390448-79da-4a49-b7f2-3a7a99a23167", - "name": "AI Agent" - }, - { - "parameters": { - "model": { - "__rl": true, - "value": "gpt-4o-2024-05-13", - "mode": "list", - "cachedResultName": "gpt-4o-2024-05-13" - }, - "options": { - "temperature": 0, - "maxRetries": 3 - } - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1.2, - "position": [ - 240, - 1100 - ], - "id": "71ffd19c-f0eb-4735-bdd5-4c8e9511fcc2", - "name": "OpenAI Chat Model", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing", - "typeVersion": 1, - "position": [ - 720, - 1100 - ], - "id": "72cafb7e-889c-46cf-bfe1-ac71e9803037", - "name": "Auto-fixing Output Parser" - }, - { - "parameters": { - "schemaType": "manual", - "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"resolution\": {\n \"type\": \"string\",\n \"description\": \"The customer-facing resolution or response that should be communicated to the customer\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Detailed explanation of the solution and reasoning for internal use\"\n }\n },\n \"additionalProperties\": true,\n \"required\": [\"resolution\", \"reasoning\"]\n}" - }, - "type": "@n8n/n8n-nodes-langchain.outputParserStructured", - "typeVersion": 1.2, - "position": [ - 860, - 1240 - ], - "id": "58ab5ac8-9f75-4448-a4c9-55a8d2afa8fd", - "name": "Structured Output Parser" - }, - { - "parameters": { - "sessionIdType": "customKey", - "sessionKey": "memory6" - }, - "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", - "typeVersion": 1.3, - "position": [ - 500, - 1100 - ], - "id": "af4542a6-23e2-4baf-8544-b01aa16d22aa", - "name": "Simple Memory" - }, - { - "parameters": { - "model": { - "__rl": true, - "mode": "list", - "value": "gpt-4o-mini" - }, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1.2, - "position": [ - 660, - 1240 - ], - "id": "84ebbc2c-ed7f-418b-b4b0-e0f273912d79", - "name": "OpenAI Chat Model1", - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "promptType": "define", - "text": "What time is my check-in?", - "hasOutputParser": true, - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.agent", - "typeVersion": 1.8, - "position": [ - 880, - 820 - ], - "id": "92c04ad7-f491-4f0f-86de-c32fe82c2148", - "name": "AI Agent1" - }, - { - "parameters": { - "content": "## Auto-fixing Output Parser + Memory\n", - "height": 88, - "width": 386 - }, - "id": "38f59837-adec-49dc-b848-0b97561c3842", - "name": "Sticky Note4", - "type": "n8n-nodes-base.stickyNote", - "typeVersion": 1, - "position": [ - 320, - 700 - ] - } - ], - "connections": { - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "AI Agent", - "type": "main", - "index": 0 - } - ] - ] - }, - "Auto-fixing Output Parser": { - "ai_outputParser": [ - [ - { - "node": "AI Agent", - "type": "ai_outputParser", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "Structured Output Parser": { - "ai_outputParser": [ - [ - { - "node": "Auto-fixing Output Parser", - "type": "ai_outputParser", - "index": 0 - } - ] - ] - }, - "Simple Memory": { - "ai_memory": [ - [ - { - "node": "AI Agent", - "type": "ai_memory", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_memory", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model1": { - "ai_languageModel": [ - [ - { - "node": "Auto-fixing Output Parser", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "AI Agent": { - "main": [ - [ - { - "node": "AI Agent1", - "type": "main", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model": { - "ai_languageModel": [ - [ - { - "node": "AI Agent", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "AI Agent1", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": null, - "pinData": {}, - "versionId": "e00984a3-c69b-42b6-afb9-91b44c6a0e37", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/259.json b/test-workflows/workflows/259.json deleted file mode 100644 index 3d6d4cecbe..0000000000 --- a/test-workflows/workflows/259.json +++ /dev/null @@ -1,499 +0,0 @@ -{ - "createdAt": "2024-03-04T17:02:06.139Z", - "updatedAt": "2025-03-12T13:18:57.000Z", - "id": "259", - "name": "ChainQA", - "active": false, - "nodes": [ - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "79cfd86e-b657-49de-bc61-13415ffa725b", - "name": "Embeddings OpenAI6", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 1420, - 1580 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "options": { - "metadata": { - "metadataValues": [ - { - "name": "some-meta", - "value": "test" - }, - { - "name": "other-meta", - "value": "test2" - } - ] - } - } - }, - "id": "76ee3d77-836c-417d-8d8e-9822cddfe936", - "name": "Default Data Loader2", - "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", - "typeVersion": 1, - "position": [ - 1560, - 1580 - ] - }, - { - "parameters": { - "chunkSize": 500, - "chunkOverlap": 100 - }, - "id": "1edacf5b-b7e4-4486-b98f-c78b338ac38e", - "name": "Token Splitter2", - "type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter", - "typeVersion": 1, - "position": [ - 1560, - 1760 - ] - }, - { - "parameters": { - "model": "gpt-3.5-turbo-0125", - "options": { - "temperature": 0 - } - }, - "id": "93ff6597-cac9-4847-8efd-e1d03520b4b9", - "name": "OpenAI Chat Model2", - "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", - "typeVersion": 1, - "position": [ - 2100, - 1660 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": {}, - "id": "8985b238-8814-4aab-bbf3-801fb52c7757", - "name": "Vector Store Retriever2", - "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", - "typeVersion": 1, - "position": [ - 2380, - 1720 - ] - }, - { - "parameters": { - "model": "text-embedding-3-small", - "options": {} - }, - "id": "b2ef63c3-2e18-49dc-8241-ee71eabdd6cb", - "name": "Embeddings OpenAI7", - "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", - "typeVersion": 1, - "position": [ - 2320, - 1980 - ], - "credentials": { - "openAiApi": { - "id": "Zak03cqeLUOsgkFI", - "name": "OpenAi account" - } - } - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "d998ae3e-192c-45ff-a3ff-ad3ed3a20304", - "name": "output_matches", - "value": "={{ $json.response.text?.includes('80') ?? $json.response.includes('80') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "046edb77-d0cd-4e8b-9db3-706c249e557f", - "name": "Edit Fields2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 3500, - 1360 - ] - }, - { - "parameters": { - "memoryKey": "bitcoin_wf_test" - }, - "id": "11262bc3-f1db-4162-94c8-5f2d5b279900", - "name": "In-Memory Vector Store2", - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 2320, - 1860 - ] - }, - { - "parameters": {}, - "id": "f4ff0f49-ac8b-4f7c-9cd4-90f0f9534772", - "name": "When clicking \"Test workflow\"", - "type": "n8n-nodes-base.manualTrigger", - "typeVersion": 1, - "position": [ - 1000, - 1340 - ] - }, - { - "parameters": { - "jsCode": "return {\n text: `Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. 1. Introduction Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable. These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party. What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes. 1 2. Transactions We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership. The problem of course is the payee can't verify that one of the owners did not double-spend the coin. A common solution is to introduce a trusted central authority, or mint, that checks every transaction for double spending. After each transaction, the coin must be returned to the mint to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The problem with this solution is that the fate of the entire money system depends on the company running the mint, with every transaction having to go through them, just like a bank. We need a way for the payee to know that the previous owners did not sign any earlier transactions. For our purposes, the earliest transaction is the one that counts, so we don't care about later attempts to double-spend. The only way to confirm the absence of a transaction is to be aware of all transactions. In the mint based model, the mint was aware of all transactions and decided which arrived first. To accomplish this without a trusted party, transactions must be publicly announced [1], and we need a system for participants to agree on a single history of the order in which they were received. The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received. 3. Timestamp Server The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. 2 Block Item Item ... Hash Block Item Item ... Hash Transaction Owner 1's Public Key Owner 0's Signature Hash Transaction Owner 2's Public Key Owner 1's Signature Hash Verify Transaction Owner 3's Public Key Owner 2's Signature Hash Verify Owner 2's Private Key Owner 1's Private Key SignSign Owner 3's Private Key 4. Proof-of-Work To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof- of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts. The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits. The average work required is exponential in the number of zero bits required and can be verified by executing a single hash. For our timestamp network, we implement the proof-of-work by incrementing a nonce in the block until a value is found that gives the block's hash the required zero bits. Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work. As later blocks are chained after it, the work to change the block would include redoing all the blocks after it. The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes. We will show later that the probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added. To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they're generated too fast, the difficulty increases. 5. Network The steps to run the network are as follows: 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. 3) Each node works on finding a difficult proof-of-work for its block. 4) When a node finds a proof-of-work, it broadcasts the block to all nodes. 5) Nodes accept the block only if all transactions in it are valid and not already spent. 6) Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proof- of-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one. 3 Block Prev Hash Nonce Tx Tx ... Block Prev Hash Nonce Tx Tx ... New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one. 6. Incentive By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block. This adds an incentive for nodes to support the network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. The incentive can also be funded with transaction fees. If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction. Once a predetermined number of coins have entered circulation, the incentive can transition entirely to transaction fees and be completely inflation free. The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. 7. Reclaiming Disk Space Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored. A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory. 4 BlockBlock Block Header (Block Hash) Prev Hash Nonce Hash01 Hash0 Hash1 Hash2 Hash3 Hash23 Root Hash Hash01 Hash2 Tx3 Hash23 Block Header (Block Hash) Root Hash Transactions Hashed in a Merkle Tree After Pruning Tx0-2 from the Block Prev Hash Nonce Hash3 Tx0 Tx1 Tx2 Tx3 8. Simplified Payment Verification It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it. As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification. 9. Combining and Splitting Value Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender. It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction's history. 5 Transaction In ... In Out ... Hash01 Hash2 Hash3 Hash23 Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Block Header Merkle Root Prev Hash Nonce Merkle Branch for Tx3 Longest Proof-of-Work Chain Tx3 10. Privacy The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the \"tape\", is made public, but without telling who the parties were. As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner. 11. Calculations We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent. The race between the honest chain and an attacker chain can be characterized as a Binomial Random Walk. The success event is the honest chain being extended by one block, increasing its lead by +1, and the failure event is the attacker's chain being extended by one block, reducing the gap by -1. The probability of an attacker catching up from a given deficit is analogous to a Gambler's Ruin problem. Suppose a gambler with unlimited credit starts at a deficit and plays potentially an infinite number of trials to try to reach breakeven. We can calculate the probability he ever reaches breakeven, or that an attacker ever catches up with the honest chain, as follows [8]: p = probability an honest node finds the next block q = probability the attacker finds the next block q z = probability the attacker will ever catch up from z blocks behind q z = { 1 if p≤q q / p z if pq } 6 Identities Transactions Trusted Third Party Counterparty Public Identities Transactions Public New Privacy Model Traditional Privacy Model Given our assumption that p > q, the probability drops exponentially as the number of blocks the attacker has to catch up with increases. With the odds against him, if he doesn't make a lucky lunge forward early on, his chances become vanishingly small as he falls further behind. We now consider how long the recipient of a new transaction needs to wait before being sufficiently certain the sender can't change the transaction. We assume the sender is an attacker who wants to make the recipient believe he paid him for a while, then switch it to pay back to himself after some time has passed. The receiver will be alerted when that happens, but the sender hopes it will be too late. The receiver generates a new key pair and gives the public key to the sender shortly before signing. This prevents the sender from preparing a chain of blocks ahead of time by working on it continuously until he is lucky enough to get far enough ahead, then executing the transaction at that moment. Once the transaction is sent, the dishonest sender starts working in secret on a parallel chain containing an alternate version of his transaction. The recipient waits until the transaction has been added to a block and z blocks have been linked after it. He doesn't know the exact amount of progress the attacker has made, but assuming the honest blocks took the average expected time per block, the attacker's potential progress will be a Poisson distribution with expected value: =z q p To get the probability the attacker could still catch up now, we multiply the Poisson density for each amount of progress he could have made by the probability he could catch up from that point: ∑ k =0 ∞  k e − k ! ⋅ { q / p  z−k  if k ≤ z 1 if k  z } Rearranging to avoid summing the infinite tail of the distribution... 1− ∑ k =0 z  k e − k!  1−q / p  z− k   Converting to C code... #include double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7 Running some results, we can see the probability drop off exponentially with z. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 P=0.0000006 Solving for P less than 0.1%... P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. Conclusion We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism. 8 References [1] W. Dai, \"b-money,\" http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, \"Design of a secure timestamping service with minimal trust requirements,\" In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, \"How to time-stamp a digital document,\" In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, \"Improving the efficiency and reliability of digital time-stamping,\" In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, \"Secure names for bit-strings,\" In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, \"Hashcash - a denial of service counter-measure,\" http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, \"Protocols for public key cryptosystems,\" In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, \"An introduction to probability theory and its applications,\" 1957. 9`\n}" - }, - "id": "06c12027-e965-441d-b1d8-b711eabbeb02", - "name": "Code", - "type": "n8n-nodes-base.code", - "typeVersion": 2, - "position": [ - 1220, - 1340 - ] - }, - { - "parameters": { - "mode": "insert", - "memoryKey": "bitcoin_wf_test", - "clearStore": true - }, - "id": "569a716b-c369-461e-b522-4f890af4fa34", - "name": "In-Memory Vector Store", - "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", - "typeVersion": 1, - "position": [ - 1480, - 1340 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "options": {} - }, - "id": "031906b6-9157-4ec4-93ab-55486e5a32f2", - "name": "Question and Answer Chain 1.3", - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.3, - "position": [ - 2400, - 1080 - ] - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.4, - "position": [ - 2660, - 1340 - ], - "id": "412a579e-3531-4270-983a-c938d66362e3", - "name": "Question and Answer Chain 1.4" - }, - { - "parameters": { - "promptType": "define", - "text": "What is the size of a block header with no transactions? Respond only with number of bytes.", - "options": {} - }, - "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", - "typeVersion": 1.5, - "position": [ - 2800, - 1560 - ], - "id": "e3f4a4e8-ef8e-4204-ac46-f0896126fcbe", - "name": "Question and Answer Chain 1.5" - }, - { - "parameters": { - "numberInputs": 3 - }, - "type": "n8n-nodes-base.merge", - "typeVersion": 3, - "position": [ - 3280, - 1360 - ], - "id": "619f459a-d2a5-41ce-9b92-85f54d3f4017", - "name": "Merge" - }, - { - "parameters": { - "assignments": { - "assignments": [ - { - "id": "5f9a8751-2eb2-4ab6-8f12-b7856d9baa8a", - "name": "output_length_matches", - "value": "={{ $items().length === 12 }}", - "type": "boolean" - }, - { - "id": "a5a61e4e-ff4d-4da5-a174-9788c22cddfd", - "name": "has_content", - "value": "={{ $json.pageContent.length > 100 }}", - "type": "boolean" - }, - { - "id": "bceaea49-b29f-47d7-8a5a-14d4e02477ec", - "name": "has_meta", - "value": "={{ $items().every(i => i.json.metadata['some-meta'] === 'test' && i.json.metadata['other-meta'] === 'test2') }}", - "type": "boolean" - } - ] - }, - "options": {} - }, - "id": "e49fd92f-0a97-44a4-bbf5-c9aa94496ce1", - "name": "Check Vector Store Populated2", - "type": "n8n-nodes-base.set", - "typeVersion": 3.3, - "position": [ - 1940, - 1340 - ], - "executeOnce": true - } - ], - "connections": { - "Embeddings OpenAI6": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "Default Data Loader2": { - "ai_document": [ - [ - { - "node": "In-Memory Vector Store", - "type": "ai_document", - "index": 0 - } - ] - ] - }, - "Token Splitter2": { - "ai_textSplitter": [ - [ - { - "node": "Default Data Loader2", - "type": "ai_textSplitter", - "index": 0 - } - ] - ] - }, - "OpenAI Chat Model2": { - "ai_languageModel": [ - [ - { - "node": "Question and Answer Chain 1.3", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.4", - "type": "ai_languageModel", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.5", - "type": "ai_languageModel", - "index": 0 - } - ] - ] - }, - "Vector Store Retriever2": { - "ai_retriever": [ - [ - { - "node": "Question and Answer Chain 1.5", - "type": "ai_retriever", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.4", - "type": "ai_retriever", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.3", - "type": "ai_retriever", - "index": 0 - } - ] - ] - }, - "Embeddings OpenAI7": { - "ai_embedding": [ - [ - { - "node": "In-Memory Vector Store2", - "type": "ai_embedding", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store2": { - "ai_vectorStore": [ - [ - { - "node": "Vector Store Retriever2", - "type": "ai_vectorStore", - "index": 0 - } - ] - ] - }, - "When clicking \"Test workflow\"": { - "main": [ - [ - { - "node": "Code", - "type": "main", - "index": 0 - } - ] - ] - }, - "Code": { - "main": [ - [ - { - "node": "In-Memory Vector Store", - "type": "main", - "index": 0 - } - ] - ] - }, - "In-Memory Vector Store": { - "main": [ - [ - { - "node": "Check Vector Store Populated2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain 1.3": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Question and Answer Chain 1.4": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Question and Answer Chain 1.5": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 2 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Edit Fields2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Check Vector Store Populated2": { - "main": [ - [ - { - "node": "Question and Answer Chain 1.5", - "type": "main", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.3", - "type": "main", - "index": 0 - }, - { - "node": "Question and Answer Chain 1.4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": { - "executionOrder": "v1" - }, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true - }, - "pinData": {}, - "versionId": "3669c4ec-780d-4c3d-88a9-d470593b5ed9", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/26.json b/test-workflows/workflows/26.json deleted file mode 100644 index cffbc875ae..0000000000 --- a/test-workflows/workflows/26.json +++ /dev/null @@ -1,729 +0,0 @@ -{ - "createdAt": "2021-02-17T09:14:09.452Z", - "updatedAt": "2021-05-21T11:16:43.023Z", - "id": "26", - "name": "ClickUp:Folder:create update getAll get delete:Goal:create update getAll get delete:GoalKeyResult:create update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c237659f-9d24-4aa2-9869-8965d9a1591b" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=testFolder{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 460, - 220 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "5034da19-bed1-4282-a8e9-6cf18d227daf" - }, - { - "parameters": { - "resource": "folder", - "operation": "update", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "updateFields": { - "name": "=testFolderUpdated{{Date.now()}}" - } - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 740, - 220 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f16090cd-67d3-41bc-b1f5-9449d3334323" - }, - { - "parameters": { - "resource": "folder", - "operation": "getAll", - "team": "4651110", - "space": "8716115", - "limit": 1, - "filters": {} - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1050, - 220 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "5ecdc66a-43f2-4ee6-9139-32d43694f4b2" - }, - { - "parameters": { - "resource": "folder", - "operation": "get", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp3", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1330, - 220 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "fb668fdb-e839-4b50-a683-1583474a2e0a" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp4", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1610, - 220 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "0c7006d8-7a50-47a1-aa3d-b7d55041a95e" - }, - { - "parameters": { - "resource": "goal", - "team": "4651110", - "name": "=testGoal{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp5", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 450, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "bf9c004a-aec4-44fe-93c3-502b994deb5e" - }, - { - "parameters": { - "resource": "goal", - "operation": "update", - "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "updateFields": { - "name": "=testGoalUpdated{{Date.now()}}" - } - }, - "name": "ClickUp6", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1630, - 390 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "1612db26-06b6-4311-823a-7f333867704c" - }, - { - "parameters": { - "resource": "goal", - "operation": "getAll", - "team": "4651110", - "limit": 1 - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1950, - 390 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "52f593da-feb7-44e3-b4b1-480a6b3c7b80" - }, - { - "parameters": { - "resource": "goal", - "operation": "get", - "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}" - }, - "name": "ClickUp8", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2230, - 390 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "e634fee5-7272-483b-81af-2f2edb2a1568" - }, - { - "parameters": { - "resource": "goal", - "operation": "delete", - "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}" - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2510, - 390 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "fa8e6453-a83e-41cf-a447-25dded6c83cd" - }, - { - "parameters": { - "resource": "goalKeyResult", - "goal": "={{$node[\"ClickUp5\"].json[\"id\"]}}", - "name": "=testGoalResult{{Date.now()}}", - "type": "boolean", - "additionalFields": {} - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 730, - 510 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "f5eca6a5-4ab4-462b-941f-5daafe6950b2" - }, - { - "parameters": { - "resource": "goalKeyResult", - "operation": "update", - "keyResult": "={{$node[\"ClickUp10\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated Key result{{Date.now()}}" - } - }, - "name": "ClickUp11", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1060, - 510 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "6c66b452-6837-4db7-bc40-407dad872c28" - }, - { - "parameters": { - "resource": "goalKeyResult", - "operation": "delete", - "keyResult": "={{$node[\"ClickUp10\"].json[\"id\"]}}" - }, - "name": "ClickUp12", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1340, - 510 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "disabled": true, - "id": "27caaec0-7dd1-4af8-bc0a-61425c6e212f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 590, - 220 - ], - "typeVersion": 1, - "id": "4617b9ef-c630-4c2f-9e38-bc8beb444063" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 890, - 220 - ], - "typeVersion": 1, - "id": "bd5ba78b-2492-4f5e-8c96-4cf38d7de98f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1180, - 220 - ], - "typeVersion": 1, - "id": "370f5b9c-91d0-4473-b6d2-75c3b5e22d4d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1470, - 220 - ], - "typeVersion": 1, - "id": "10594b96-9cfd-47a8-8195-27c04b33295c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 580, - 400 - ], - "typeVersion": 1, - "id": "57f1facf-1e6b-45a2-9163-bcf5f35cd956" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 890, - 510 - ], - "typeVersion": 1, - "id": "abad8d7c-4ace-444f-8dd1-3d6f1d1ddc7c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 1200, - 510 - ], - "typeVersion": 1, - "id": "f5b4c39b-e920-4abb-8b3b-3f2b1fe6725e" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds7", - "type": "n8n-nodes-base.function", - "position": [ - 1500, - 390 - ], - "typeVersion": 1, - "id": "56e8b458-e6e0-4926-a5a3-62945de38f3b" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds8", - "type": "n8n-nodes-base.function", - "position": [ - 1790, - 390 - ], - "typeVersion": 1, - "id": "e0177c72-6a50-499d-a271-4b1a1ea60bd3" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds9", - "type": "n8n-nodes-base.function", - "position": [ - 2090, - 390 - ], - "typeVersion": 1, - "id": "3127e2cf-5e3b-47d7-ad5f-79ad1a1ae8e7" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds10", - "type": "n8n-nodes-base.function", - "position": [ - 2380, - 390 - ], - "typeVersion": 1, - "id": "e6f31f9c-ef3a-49f8-a207-c16085088c71" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp2": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp3": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp5": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp6": { - "main": [ - [ - { - "node": "Sleep 8 Seconds8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp7": { - "main": [ - [ - { - "node": "Sleep 8 Seconds9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp8": { - "main": [ - [ - { - "node": "Sleep 8 Seconds10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp11": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp12": { - "main": [ - [ - { - "node": "Sleep 8 Seconds7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds7": { - "main": [ - [ - { - "node": "ClickUp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds8": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds9": { - "main": [ - [ - { - "node": "ClickUp8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds10": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/27.json b/test-workflows/workflows/27.json deleted file mode 100644 index 07b4c75199..0000000000 --- a/test-workflows/workflows/27.json +++ /dev/null @@ -1,892 +0,0 @@ -{ - "createdAt": "2021-02-17T09:32:18.514Z", - "updatedAt": "2021-05-21T11:18:41.858Z", - "id": "27", - "name": "ClickUp:Task:create update member getAll get delete:List:create update customFields member getAll get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 160, - 420 - ], - "id": "98e4c4b0-c5a3-465e-b621-662cd30ba485" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=TestFolder{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 310, - 310 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "5e4c4ffe-c474-4ee1-a0b7-ca7023c3308d" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folder": "={{$json[\"id\"]}}", - "name": "=TestList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 580, - 340 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "84597659-cbe6-468b-9229-7eb3e7fc4481" - }, - { - "parameters": { - "resource": "list", - "operation": "update", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdateTestList{{Date.now()}}" - } - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 860, - 660 - ], - "retryOnFail": true, - "waitBetweenTries": 500, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "37ede561-0fc6-4a18-8909-fd7815004a6c" - }, - { - "parameters": { - "resource": "list", - "team": "4651110", - "space": "8716115", - "folder": "={{$json[\"folder\"][\"id\"]}}", - "list": "={{$json[\"id\"]}}" - }, - "name": "ClickUp3", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1100, - 660 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "7653a4d3-5046-4174-a2a2-651003ef4a11" - }, - { - "parameters": { - "resource": "list", - "operation": "member", - "id": "={{$node[\"ClickUp2\"].json[\"id\"]}}", - "returnAll": false, - "limit": 1 - }, - "name": "ClickUp4", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1400, - 660 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "b4f551cc-edc7-4fb5-93d2-f2923b43e773" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "limit": 1, - "filters": {} - }, - "name": "ClickUp5", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1730, - 660 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "2aaf834a-4856-4851-a723-30e92aef06da" - }, - { - "parameters": { - "resource": "list", - "operation": "get", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp6", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2050, - 660 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "8f3cd1df-88e8-490e-956e-fa526e9efc06" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2380, - 660 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "6927c6fa-e5ff-4645-9a41-323ea0f4e0f3" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp8", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2670, - 660 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "30e40940-f242-4989-b107-6c570b7383b4" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folder": "={{$json[\"folder\"][\"id\"]}}", - "list": "={{$json[\"id\"]}}", - "name": "=testTask{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 850, - 460 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "eaa614eb-b42a-4e87-8778-72f56553f57d" - }, - { - "parameters": { - "operation": "update", - "id": "={{$json[\"id\"]}}", - "updateFields": { - "name": "={{$json[\"name\"]}}Updated{{Date.now()}}" - } - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1100, - 460 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "5958b2ae-0eab-4b4d-ad0a-8eb925b6948c" - }, - { - "parameters": { - "operation": "member", - "id": "={{$json[\"id\"]}}", - "returnAll": false, - "limit": 1 - }, - "name": "ClickUp11", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1400, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "9e30c9e7-cf31-4520-a08e-a90990cecd9e" - }, - { - "parameters": { - "operation": "getAll", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "returnAll": false, - "limit": 1, - "filters": {} - }, - "name": "ClickUp12", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1740, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "75a7b4ee-7d37-4384-8d6b-1f0785d73575" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"ClickUp9\"].json[\"id\"]}}" - }, - "name": "ClickUp13", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2050, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "6f52a60f-2a79-449e-8a8e-0bd4005bdfbf" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"ClickUp9\"].json[\"id\"]}}" - }, - "name": "ClickUp14", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2380, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "2a32012b-e6e5-4b42-8cfd-95318e12b81d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 440, - 310 - ], - "typeVersion": 1, - "id": "b1a45946-ff9a-483d-99b3-42f6dc8d6471" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 710, - 340 - ], - "typeVersion": 1, - "id": "f780613f-41a1-4c01-b7b5-0143f87c6f3a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 980, - 460 - ], - "typeVersion": 1, - "id": "51af53ab-592e-4417-9601-92c4714c1980" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1240, - 460 - ], - "typeVersion": 1, - "id": "d5bfeee6-1a7e-4353-a20f-4ed4b5cba689" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 1570, - 460 - ], - "typeVersion": 1, - "id": "9ab01733-73f7-498e-a969-9515ad2b5e32" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 1890, - 460 - ], - "typeVersion": 1, - "id": "aa025cf9-c5e5-4f3b-bb62-3197d973011c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 2210, - 460 - ], - "typeVersion": 1, - "id": "9d4d54c4-f642-4e4c-b717-10387a49989d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds7", - "type": "n8n-nodes-base.function", - "position": [ - 980, - 660 - ], - "typeVersion": 1, - "id": "d724d742-235c-43df-ba81-619d2f840dd5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds8", - "type": "n8n-nodes-base.function", - "position": [ - 1240, - 660 - ], - "typeVersion": 1, - "id": "d0b9f5e5-c66c-479b-bf37-c04b2643742f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds9", - "type": "n8n-nodes-base.function", - "position": [ - 1550, - 660 - ], - "typeVersion": 1, - "id": "3950ee56-9ec9-4e78-ada3-857ab17aba27" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds10", - "type": "n8n-nodes-base.function", - "position": [ - 1890, - 660 - ], - "typeVersion": 1, - "id": "c3728ed7-486c-4a6d-865e-08a21426368c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds11", - "type": "n8n-nodes-base.function", - "position": [ - 2210, - 660 - ], - "typeVersion": 1, - "id": "021dbc08-7d4e-4867-808c-58f6844c6634" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds12", - "type": "n8n-nodes-base.function", - "position": [ - 2530, - 660 - ], - "typeVersion": 1, - "id": "be53074b-6bfd-4fef-b359-034dd3be06f4" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds13", - "type": "n8n-nodes-base.function", - "position": [ - 700, - 660 - ], - "typeVersion": 1, - "id": "ce69e0ce-50d7-416f-9349-dc3b5e378fd3" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp2": { - "main": [ - [ - { - "node": "Sleep 8 Seconds7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp3": { - "main": [ - [ - { - "node": "Sleep 8 Seconds8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp4": { - "main": [ - [ - { - "node": "Sleep 8 Seconds9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp5": { - "main": [ - [ - { - "node": "Sleep 8 Seconds10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp6": { - "main": [ - [ - { - "node": "Sleep 8 Seconds11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp7": { - "main": [ - [ - { - "node": "Sleep 8 Seconds12", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp9": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp11": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp12": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp13": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp14": { - "main": [ - [ - { - "node": "Sleep 8 Seconds13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds7": { - "main": [ - [ - { - "node": "ClickUp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds8": { - "main": [ - [ - { - "node": "ClickUp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds9": { - "main": [ - [ - { - "node": "ClickUp5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds10": { - "main": [ - [ - { - "node": "ClickUp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds11": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds12": { - "main": [ - [ - { - "node": "ClickUp8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds13": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/28.json b/test-workflows/workflows/28.json deleted file mode 100644 index cf7b995228..0000000000 --- a/test-workflows/workflows/28.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "createdAt": "2021-02-17T10:31:28.487Z", - "updatedAt": "2021-05-21T11:19:34.732Z", - "id": "28", - "name": "ClickUp:CheckList:create update delete:CheckListItem:create update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "2cd723b8-61fc-43c8-8f3f-1ea7352d0380" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=test{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 440, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "572a26d0-b9b3-4770-9117-8887e5b44fa6" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "name": "=testingList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 720, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "9eeacdb8-f581-4e85-a1df-2a95c1addfc3" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folder": "={{$json[\"folder\"][\"id\"]}}", - "list": "={{$json[\"id\"]}}", - "name": "=testingTask{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1000, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "268944a2-0717-4eae-89af-fc0b04410f28" - }, - { - "parameters": { - "resource": "checklist", - "task": "={{$json[\"id\"]}}", - "name": "=checkListTest{{Date.now()}}" - }, - "name": "ClickUp3", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1320, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "ba8f8804-c2c4-4b27-af32-f7cf1b927015" - }, - { - "parameters": { - "resource": "checklist", - "operation": "update", - "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", - "updateFields": { - "name": "=checkListUpdated{{Date.now()}}" - } - }, - "name": "ClickUp5", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2620, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f2497296-0a02-4776-8630-4b60ced78f68" - }, - { - "parameters": { - "resource": "checklist", - "operation": "delete", - "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}" - }, - "name": "ClickUp6", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2900, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "a683cc12-b055-4e54-9e3b-8de767cc74a6" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp4", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3170, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "8dd64f31-29d1-4875-8d03-01d0af2c6794" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3450, - 290 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "36227deb-d4d2-418b-8343-e1377555e1f3" - }, - { - "parameters": { - "resource": "checklistItem", - "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", - "name": "=Item{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp8", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1620, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f24f0655-5198-4eb7-a940-67ee22c2348a" - }, - { - "parameters": { - "resource": "checklistItem", - "operation": "update", - "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", - "checklistItem": "={{$node[\"ClickUp8\"].json[\"items\"][0][\"id\"]}}", - "updateFields": { - "name": "=UpdatedItem{{Date.now()}}" - } - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1940, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "3810e977-772d-4bce-b194-44e5bd8d011a" - }, - { - "parameters": { - "resource": "checklistItem", - "operation": "delete", - "checklist": "={{$node[\"ClickUp3\"].json[\"id\"]}}", - "checklistItem": "={{$node[\"ClickUp8\"].json[\"items\"][0][\"id\"]}}" - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2280, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "27d6aa81-4506-4e1d-af70-7261b7451814" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 570, - 300 - ], - "typeVersion": 1, - "id": "27b3d626-18a4-41e8-a461-a528119ddabf" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 860, - 400 - ], - "typeVersion": 1, - "id": "71a5ce83-df35-4968-8700-2d78833fc835" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1150, - 400 - ], - "typeVersion": 1, - "id": "a2a519d7-b353-4bc3-aefc-511ede861469" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1500, - 500 - ], - "typeVersion": 1, - "id": "34f7d210-cc78-4215-aaef-c9b789897a83" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 1780, - 500 - ], - "typeVersion": 1, - "id": "d6795c16-86a6-4928-99e7-416cd41d1d35" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 2120, - 500 - ], - "typeVersion": 1, - "id": "edd68a24-372b-47bd-b8a5-ed26c5b16289" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 2500, - 400 - ], - "typeVersion": 1, - "id": "36eec449-eacd-490f-b61e-58102b5964e6" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds8", - "type": "n8n-nodes-base.function", - "position": [ - 3050, - 350 - ], - "typeVersion": 1, - "id": "4f7c7d5d-b24a-4651-84e0-b3de2908c9ec" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds9", - "type": "n8n-nodes-base.function", - "position": [ - 3330, - 290 - ], - "typeVersion": 1, - "id": "fdd473de-9eb4-4193-886f-6b2d401ec539" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp2": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp3": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp5": { - "main": [ - [ - { - "node": "ClickUp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp6": { - "main": [ - [ - { - "node": "Sleep 8 Seconds8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp4": { - "main": [ - [ - { - "node": "Sleep 8 Seconds9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp8": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp9": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds8": { - "main": [ - [ - { - "node": "ClickUp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds9": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/29.json b/test-workflows/workflows/29.json deleted file mode 100644 index 68050c4304..0000000000 --- a/test-workflows/workflows/29.json +++ /dev/null @@ -1,470 +0,0 @@ -{ - "createdAt": "2021-02-17T11:06:49.772Z", - "updatedAt": "2021-05-21T11:22:04.303Z", - "id": "29", - "name": "ClickUp:Comment:create update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "31a422ab-f12f-4746-ae7a-bf991eb8cfb2" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=Test2{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "64ab5323-4dc3-4f28-bdb8-da24f78d8017" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "name": "=testingList2{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 680, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f6c32a1e-8187-4e08-8283-a51ec248d1e0" - }, - { - "parameters": { - "resource": "comment", - "commentOn": "list", - "id": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "commentText": "=CommentOnList2{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 960, - 420 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "d27edbe8-e7d6-41bd-b9d0-3baaaeb62946" - }, - { - "parameters": { - "resource": "comment", - "operation": "update", - "comment": "={{$node[\"ClickUp2\"].json[\"id\"]}}", - "updateFields": { - "commentText": "=commentUpdated{{Date.now()}}" - } - }, - "name": "ClickUp3", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1230, - 420 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "11679d32-a338-4ace-993e-ade4de313f2d" - }, - { - "parameters": { - "resource": "comment", - "operation": "getAll", - "commentsOn": "list", - "id": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "ClickUp4", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1520, - 420 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "0b4921e6-d3a0-4784-b0ad-bec284c82f0d" - }, - { - "parameters": { - "resource": "comment", - "operation": "delete", - "comment": "={{$node[\"ClickUp4\"].json[\"id\"]}}" - }, - "name": "ClickUp5", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1830, - 420 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "b714cd49-ad36-44d5-8b3b-366fc2dfc678" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2400, - 290 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "2db1799e-fc8d-4025-b620-012fca33414a" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp6", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2130, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "23a70dfb-25da-4931-80b0-b5dca7d6554d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 550, - 300 - ], - "typeVersion": 1, - "id": "01532975-dbf4-4757-a52b-255765b578bd" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 810, - 400 - ], - "typeVersion": 1, - "id": "50e69461-441f-4e30-be11-e2a426d4ec05" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1100, - 420 - ], - "typeVersion": 1, - "id": "89191a40-0e4b-482b-a346-c7e04d9dd93f" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1370, - 420 - ], - "typeVersion": 1, - "id": "fd4dddb0-7f59-42bb-aac0-07c76dea598e" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 1670, - 420 - ], - "typeVersion": 1, - "id": "3179d398-f06c-4902-82ac-3689d262297a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 2000, - 350 - ], - "typeVersion": 1, - "id": "bfa972c2-e9ac-4500-8ffb-1ede8db29900" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 2270, - 290 - ], - "typeVersion": 1, - "id": "2a6b234c-2bcf-4295-b092-2d7ba6ab7dd1" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp2": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp3": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp4": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp5": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp6": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/30.json b/test-workflows/workflows/30.json deleted file mode 100644 index 22e5825e1d..0000000000 --- a/test-workflows/workflows/30.json +++ /dev/null @@ -1,471 +0,0 @@ -{ - "createdAt": "2021-02-17T11:28:33.699Z", - "updatedAt": "2021-05-21T11:22:40.069Z", - "id": "30", - "name": "ClickUp:TaskDependency:create delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "c8338da0-7dbd-4b7b-ad70-c682f23f274b" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=TestFolder3{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "49bfdc4c-78c5-4fa0-ad06-749599d37da9" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "name": "=TestList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 700, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "22b07b3b-3d70-4812-8113-ca3414a823fe" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "name": "=testTask{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 990, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "f1468cfb-3736-4be0-b195-1f0c5f755890" - }, - { - "parameters": { - "resource": "taskDependency", - "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", - "dependsOnTask": "={{$node[\"ClickUp11\"].json[\"id\"]}}" - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1530, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "51f2c6b6-b7a4-41fc-b2e0-ce6185f735a3" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "name": "=testTask2{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp11", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1250, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "befbbbf0-82d4-41f2-a557-f58d40499944" - }, - { - "parameters": { - "resource": "taskDependency", - "operation": "delete", - "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", - "dependsOnTask": "={{$node[\"ClickUp11\"].json[\"id\"]}}" - }, - "name": "ClickUp12", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1810, - 500 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "86f22c06-fcb6-40eb-a5f5-9e2e70bd768a" - }, - { - "parameters": { - "resource": "list", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}" - }, - "name": "ClickUp7", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2080, - 350 - ], - "alwaysOutputData": true, - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "e81f92bb-d7a6-49d5-8627-684107126a98" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp8", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2370, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "a5a69ffb-9f8d-40c6-aa84-a19bc6701824" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 550, - 300 - ], - "typeVersion": 1, - "id": "7d5fb22c-f448-40ff-981c-ea5d4a9e191c" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 850, - 400 - ], - "typeVersion": 1, - "id": "19cce08a-a818-4749-9b8f-95aa6d36a847" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1120, - 400 - ], - "typeVersion": 1, - "id": "1a67dc29-5e28-4c23-921b-d8198ab9c4ff" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1390, - 500 - ], - "typeVersion": 1, - "id": "d80fb697-e532-4fca-a70a-7ba202475d18" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 1670, - 500 - ], - "typeVersion": 1, - "id": "43edd50f-e0fd-433f-ba37-0b5b3c2534a4" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 1950, - 350 - ], - "typeVersion": 1, - "id": "7507f4e6-4a8b-4080-ae36-df0df0d2243a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 2240, - 300 - ], - "typeVersion": 1, - "id": "a08f6787-67f4-4a5e-92a8-4c0479911f6e" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp9": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp11": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp12": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp7": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp8", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/31.json b/test-workflows/workflows/31.json deleted file mode 100644 index cd1d6952b3..0000000000 --- a/test-workflows/workflows/31.json +++ /dev/null @@ -1,831 +0,0 @@ -{ - "createdAt": "2021-02-17T11:37:42.892Z", - "updatedAt": "2021-05-21T11:23:28.228Z", - "id": "31", - "name": "ClickUp:TimeEntry:create update start stop getall get delete:TimeEntryTag: add getAll remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 180, - 300 - ], - "id": "57e2a34f-32b5-40cf-af01-bd1673d56885" - }, - { - "parameters": { - "resource": "folder", - "team": "4651110", - "space": "8716115", - "name": "=TestFolder3{{Date.now()}}" - }, - "name": "ClickUp", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 340, - 300 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "e54b56d0-3678-4f29-ba16-124c8bab978e" - }, - { - "parameters": { - "resource": "list", - "operation": "create", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "name": "=TestList{{Date.now()}}", - "additionalFields": {} - }, - "name": "ClickUp1", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 620, - 350 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "7c895a57-ff70-4d75-bba0-2e909803ce14" - }, - { - "parameters": { - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "name": "={{Date.now()}}task", - "additionalFields": {} - }, - "name": "ClickUp9", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 880, - 400 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "941edfd0-d249-4679-bfb9-7b3de98942cf" - }, - { - "parameters": { - "resource": "timeEntry", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "start": "={{Date.now()}}", - "duration": 2, - "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "ClickUp10", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1230, - 490 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "49d9fddf-92bb-41c2-83be-4fc1307fc00b" - }, - { - "parameters": { - "resource": "timeEntryTag", - "team": "4651110", - "timeEntryIds": "={{$node[\"ClickUp10\"].json[\"id\"]}}", - "tagsUi": { - "tagsValues": [ - { - "name": "n8n", - "tag_bg": "#FF3503", - "tag_fg": "#FFFFFF" - } - ] - } - }, - "name": "ClickUp11", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1530, - 570 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "a9c8efeb-cdfb-4759-84bd-5073734056c8" - }, - { - "parameters": { - "resource": "timeEntryTag", - "operation": "getAll", - "team": "4651110" - }, - "name": "ClickUp12", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 1900, - 570 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "c3c98b7f-7587-4d12-9e2a-5608b35c959c" - }, - { - "parameters": { - "resource": "timeEntryTag", - "operation": "remove", - "team": "4651110", - "timeEntryIds": "={{$node[\"ClickUp10\"].json[\"id\"]}}", - "tagNames": [ - "{\"name\":\"n8n\",\"creator\":8779387,\"tag_bg\":\"#FF3503\",\"tag_fg\":\"#FFFFFF\"}" - ] - }, - "name": "ClickUp13", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2210, - 570 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "40847957-d93e-4f0c-954f-ae8460fe35c0" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "update", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}", - "list": "={{$node[\"ClickUp1\"].json[\"id\"]}}", - "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}", - "updateFields": { - "duration": 1 - } - }, - "name": "ClickUp14", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2490, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "e52fb5d1-f1bf-4a1d-a8f3-d37a17fc601b" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "start", - "team": "4651110", - "task": "={{$node[\"ClickUp9\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "ClickUp15", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 2770, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "55ca7b79-42a1-4029-bf83-3278d6186820" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "stop", - "team": "4651110" - }, - "name": "ClickUp16", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3060, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "660f4dc1-4264-4633-b92a-58ed05f70724" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "getAll", - "team": "4651110", - "limit": 1, - "filters": {} - }, - "name": "ClickUp17", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3330, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "0e143171-62db-4f3e-8d53-fb25c89b9d21" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "get", - "team": "4651110", - "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}" - }, - "name": "ClickUp18", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3600, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "58c0bb4e-2325-49c2-b121-c3c5e3124276" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "delete", - "team": "4651110", - "timeEntry": "={{$node[\"ClickUp10\"].json[\"id\"]}}" - }, - "name": "ClickUp19", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 3870, - 480 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "b2c2ab25-d4e3-463b-bb71-8cf8c127fb0c" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "team": "4651110", - "space": "8716115", - "folder": "={{$node[\"ClickUp\"].json[\"id\"]}}" - }, - "name": "ClickUp2", - "type": "n8n-nodes-base.clickUp", - "typeVersion": 1, - "position": [ - 4170, - 330 - ], - "credentials": { - "clickUpApi": { - "id": "13", - "name": "clickup cred" - } - }, - "id": "ae521f8e-61da-427c-9078-bb0d34372a3a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 470, - 300 - ], - "typeVersion": 1, - "id": "cd778215-46cb-4040-b5a8-4eacd1713e50" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds1", - "type": "n8n-nodes-base.function", - "position": [ - 750, - 350 - ], - "typeVersion": 1, - "id": "ac37f999-d0e8-463c-9088-9e530c89c251" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds2", - "type": "n8n-nodes-base.function", - "position": [ - 1020, - 400 - ], - "typeVersion": 1, - "id": "8a0375d2-4cf9-47f7-a096-cfa848791175" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds3", - "type": "n8n-nodes-base.function", - "position": [ - 1370, - 500 - ], - "typeVersion": 1, - "id": "442ac115-e73d-48c8-9db4-152a2593067d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds4", - "type": "n8n-nodes-base.function", - "position": [ - 1710, - 570 - ], - "typeVersion": 1, - "id": "e5d50f49-fbe6-43bd-b490-089d24588c8d" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds5", - "type": "n8n-nodes-base.function", - "position": [ - 2050, - 570 - ], - "typeVersion": 1, - "id": "3d46fa02-ec36-4965-87b9-a9454fce76e3" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds6", - "type": "n8n-nodes-base.function", - "position": [ - 2360, - 480 - ], - "typeVersion": 1, - "id": "3275a0ae-e00f-4d98-8b16-79946d1e87f3" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds7", - "type": "n8n-nodes-base.function", - "position": [ - 2630, - 480 - ], - "typeVersion": 1, - "id": "a1722ed7-f526-483d-b14c-9658c3823e09" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds8", - "type": "n8n-nodes-base.function", - "position": [ - 2910, - 480 - ], - "typeVersion": 1, - "id": "0b493dec-41b3-418e-a163-5e76ee274146" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds9", - "type": "n8n-nodes-base.function", - "position": [ - 3200, - 480 - ], - "typeVersion": 1, - "id": "bf973582-986d-4962-a3bb-d415384ad5e5" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds10", - "type": "n8n-nodes-base.function", - "position": [ - 3470, - 480 - ], - "typeVersion": 1, - "id": "e6a2b2ac-c798-4ad0-9974-580c871fca4a" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds11", - "type": "n8n-nodes-base.function", - "position": [ - 3730, - 480 - ], - "typeVersion": 1, - "id": "1595390e-6e3f-46d7-8c02-26c52e3a62dd" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 8 Seconds12", - "type": "n8n-nodes-base.function", - "position": [ - 4050, - 330 - ], - "typeVersion": 1, - "id": "73d2d5c3-8485-4828-b2d6-e923259a9235" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ClickUp", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp": { - "main": [ - [ - { - "node": "Sleep 8 Seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp1": { - "main": [ - [ - { - "node": "Sleep 8 Seconds1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp9": { - "main": [ - [ - { - "node": "Sleep 8 Seconds2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp10": { - "main": [ - [ - { - "node": "Sleep 8 Seconds3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp11": { - "main": [ - [ - { - "node": "Sleep 8 Seconds4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp12": { - "main": [ - [ - { - "node": "Sleep 8 Seconds5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp13": { - "main": [ - [ - { - "node": "Sleep 8 Seconds6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp14": { - "main": [ - [ - { - "node": "Sleep 8 Seconds7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp15": { - "main": [ - [ - { - "node": "Sleep 8 Seconds8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp16": { - "main": [ - [ - { - "node": "Sleep 8 Seconds9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp17": { - "main": [ - [ - { - "node": "Sleep 8 Seconds10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp18": { - "main": [ - [ - { - "node": "Sleep 8 Seconds11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ClickUp19": { - "main": [ - [ - { - "node": "Sleep 8 Seconds12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds": { - "main": [ - [ - { - "node": "ClickUp1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds1": { - "main": [ - [ - { - "node": "ClickUp9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds2": { - "main": [ - [ - { - "node": "ClickUp10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds3": { - "main": [ - [ - { - "node": "ClickUp11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds4": { - "main": [ - [ - { - "node": "ClickUp12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds5": { - "main": [ - [ - { - "node": "ClickUp13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds6": { - "main": [ - [ - { - "node": "ClickUp14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds7": { - "main": [ - [ - { - "node": "ClickUp15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds8": { - "main": [ - [ - { - "node": "ClickUp16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds9": { - "main": [ - [ - { - "node": "ClickUp17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds10": { - "main": [ - [ - { - "node": "ClickUp18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds11": { - "main": [ - [ - { - "node": "ClickUp19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 8 Seconds12": { - "main": [ - [ - { - "node": "ClickUp2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/32.json b/test-workflows/workflows/32.json deleted file mode 100644 index 848971a224..0000000000 --- a/test-workflows/workflows/32.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "createdAt": "2021-02-17T12:54:18.856Z", - "updatedAt": "2021-02-24T12:51:15.701Z", - "id": "32", - "name": "Drif:Contact:create update get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "a8373e79-8b14-48ae-9baf-79db4bf1a92a" - }, - { - "parameters": { - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": { - "name": "=Test{{Date.now()}}" - } - }, - "name": "Drift ", - "type": "n8n-nodes-base.drift", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "driftApi": { - "id": "15", - "name": "Drift API credentials" - } - }, - "id": "8cd5c238-7feb-4b60-985a-d99db59390bc" - }, - { - "parameters": { - "operation": "update", - "contactId": "={{$node[\"Drift \"].json[\"id\"]}}", - "updateFields": { - "name": "=node qtest{{Date.now()}}" - } - }, - "name": "Drift 1", - "type": "n8n-nodes-base.drift", - "typeVersion": 1, - "position": [ - 640, - 300 - ], - "credentials": { - "driftApi": { - "id": "15", - "name": "Drift API credentials" - } - }, - "id": "480edf8d-c1f6-4196-a659-f7b54c33e3db" - }, - { - "parameters": { - "operation": "get", - "contactId": "={{$node[\"Drift \"].json[\"id\"]}}" - }, - "name": "Drift 2", - "type": "n8n-nodes-base.drift", - "typeVersion": 1, - "position": [ - 790, - 300 - ], - "credentials": { - "driftApi": { - "id": "15", - "name": "Drift API credentials" - } - }, - "id": "d495bd88-0ed2-4016-acea-78deee947cc7" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"Drift \"].json[\"id\"]}}" - }, - "name": "Drift 3", - "type": "n8n-nodes-base.drift", - "typeVersion": 1, - "position": [ - 940, - 300 - ], - "credentials": { - "driftApi": { - "id": "15", - "name": "Drift API credentials" - } - }, - "id": "2dce7e0c-3abd-45c8-a3d2-61edecd7a2bf" - } - ], - "connections": { - "Drift ": { - "main": [ - [ - { - "node": "Drift 1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Drift 1": { - "main": [ - [ - { - "node": "Drift 2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Drift 2": { - "main": [ - [ - { - "node": "Drift 3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Drift ", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/33.json b/test-workflows/workflows/33.json deleted file mode 100644 index 4b874560c5..0000000000 --- a/test-workflows/workflows/33.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "createdAt": "2021-02-17T13:25:16.665Z", - "updatedAt": "2021-02-17T13:25:16.665Z", - "id": "33", - "name": "Zoom:Meeting:create update getAll get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e177badc-c473-46ec-a4f7-6abe3cf18850" - }, - { - "parameters": { - "topic": "test", - "additionalFields": {} - }, - "name": "Zoom", - "type": "n8n-nodes-base.zoom", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "zoomApi": { - "id": "16", - "name": "Zoom JWT token" - } - }, - "id": "52fd7dd2-0260-4e24-b2e7-2fb0e6e96757" - }, - { - "parameters": { - "operation": "update", - "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", - "updateFields": { - "duration": 30 - } - }, - "name": "Zoom1", - "type": "n8n-nodes-base.zoom", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "zoomApi": { - "id": "16", - "name": "Zoom JWT token" - } - }, - "id": "c2ccd698-377b-478e-ab75-dff35325ac93" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Zoom2", - "type": "n8n-nodes-base.zoom", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "zoomApi": { - "id": "16", - "name": "Zoom JWT token" - } - }, - "id": "5ca84447-9b5e-4679-b061-8b457ed1423a" - }, - { - "parameters": { - "operation": "get", - "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Zoom3", - "type": "n8n-nodes-base.zoom", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "zoomApi": { - "id": "16", - "name": "Zoom JWT token" - } - }, - "id": "bc1c531c-ee12-4f4e-bbde-c2a6a950ab3e" - }, - { - "parameters": { - "operation": "delete", - "meetingId": "={{$node[\"Zoom\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Zoom4", - "type": "n8n-nodes-base.zoom", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "zoomApi": { - "id": "16", - "name": "Zoom JWT token" - } - }, - "id": "05b90102-2196-41d0-ba64-42e8c45d2258" - } - ], - "connections": { - "Zoom": { - "main": [ - [ - { - "node": "Zoom1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoom1": { - "main": [ - [ - { - "node": "Zoom2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoom2": { - "main": [ - [ - { - "node": "Zoom3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoom3": { - "main": [ - [ - { - "node": "Zoom4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Zoom", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/34.json b/test-workflows/workflows/34.json deleted file mode 100644 index 068d44f4b0..0000000000 --- a/test-workflows/workflows/34.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "createdAt": "2021-02-17T14:32:51.109Z", - "updatedAt": "2021-06-02T11:29:13.526Z", - "id": "34", - "name": "Strava:Activity:create get update getAll getComments getKudos getLaps", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "afcd2eb5-ee88-4fd8-ad2a-122f2ee05b6d" - }, - { - "parameters": { - "name": "TestActivity", - "type": "Run", - "startDate": "={{Date.now()}}", - "elapsedTime": 5, - "additionalFields": {} - }, - "name": "Strava", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "3a0f90c9-47d1-4e97-b2ef-d04ffc09c7ab" - }, - { - "parameters": { - "operation": "update", - "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", - "updateFields": { - "type": "Ride" - } - }, - "name": "Strava1", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "b7731003-b34b-4cc9-b7cb-d6e1391268f8" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Strava2", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "notes": "IGNORED_PROPERTIES=device_watts", - "id": "7619daca-da98-4c79-9575-237c5ac602d2" - }, - { - "parameters": { - "operation": "get", - "activityId": "={{$node[\"Strava\"].json[\"id\"]}}" - }, - "name": "Strava3", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "a2d40830-1aa4-4ffc-bc4c-de84003490ed" - }, - { - "parameters": { - "operation": "getComments", - "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Strava4", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 600, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "1d83183d-5238-47eb-b89d-4283af3953a8" - }, - { - "parameters": { - "operation": "getKudos", - "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Strava5", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 750, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "cdbc41db-3938-46a2-b167-c714aaa8dd5b" - }, - { - "parameters": { - "operation": "getLaps", - "activityId": "={{$node[\"Strava\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Strava6", - "type": "n8n-nodes-base.strava", - "typeVersion": 1, - "position": [ - 900, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "stravaOAuth2Api": { - "id": "17", - "name": "Strava credentials" - } - }, - "id": "86be5364-f022-43cb-b567-2b983f422ce7" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Strava", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strava": { - "main": [ - [ - { - "node": "Strava4", - "type": "main", - "index": 0 - }, - { - "node": "Strava3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strava1": { - "main": [ - [ - { - "node": "Strava2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strava5": { - "main": [ - [ - { - "node": "Strava6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strava4": { - "main": [ - [ - { - "node": "Strava5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Strava3": { - "main": [ - [ - { - "node": "Strava1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/35.json b/test-workflows/workflows/35.json deleted file mode 100644 index dda6676f8c..0000000000 --- a/test-workflows/workflows/35.json +++ /dev/null @@ -1,422 +0,0 @@ -{ - "createdAt": "2021-02-17T16:01:29.116Z", - "updatedAt": "2021-02-17T18:38:58.265Z", - "id": "35", - "name": "Slack:User:getPresence info:UserProfile:get update:Message:post getPermalink update postEphermera l delete:Reaction:add get remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 220, - 550 - ], - "id": "994d0931-d8cf-46ec-80dd-afa0d22717a1" - }, - { - "parameters": { - "resource": "userProfile", - "additionalFields": {} - }, - "name": "Slack", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 460, - 450 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "f4b748aa-95ac-491d-9aae-438e9d4af174" - }, - { - "parameters": { - "resource": "userProfile", - "operation": "update", - "additionalFields": { - "status_text": "Testing..." - } - }, - "name": "Slack1", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "79590777-6621-433a-88b2-555078feb8e1" - }, - { - "parameters": { - "channel": "random", - "text": "=Message at{{(new Date().toString())}}", - "attachments": [], - "otherOptions": {} - }, - "name": "Slack13", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 420, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "1f43049e-8dd6-425f-bb8a-e06edce9418b" - }, - { - "parameters": { - "operation": "getPermalink", - "channelId": "C01MZ82T9TR", - "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" - }, - "name": "Slack14", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1060, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "837e9401-e7f1-49f2-91ab-3f9882b13d89" - }, - { - "parameters": { - "operation": "update", - "channelId": "C01MZ82T9TR", - "text": "Message Updated ", - "ts": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}", - "updateFields": {}, - "attachments": [] - }, - "name": "Slack15", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1190, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "afd5e35a-da4c-4167-a208-ea4a4f28cac0" - }, - { - "parameters": { - "operation": "postEphemeral", - "channel": "random", - "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}", - "text": "Message for Me Only", - "attachments": [], - "otherOptions": {} - }, - "name": "Slack16", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1320, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "1105d27e-18a8-4b77-b081-8127252edfbc" - }, - { - "parameters": { - "operation": "delete", - "channelId": "C01MZ82T9TR", - "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" - }, - "name": "Slack17", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1470, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "fc1412c5-331e-4bcb-a830-3f173d51c9ed" - }, - { - "parameters": { - "resource": "reaction", - "channelId": "C01MZ82T9TR", - "name": "+1", - "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" - }, - "name": "Slack18", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 580, - 700 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "d5f82714-f62e-4124-8a1d-081ef18b6ae2" - }, - { - "parameters": { - "resource": "reaction", - "operation": "get", - "channelId": "C01MZ82T9TR", - "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" - }, - "name": "Slack19", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 720, - 700 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "ad62b51f-a60e-46d8-b174-941f331886fb" - }, - { - "parameters": { - "resource": "reaction", - "operation": "remove", - "channelId": "C01MZ82T9TR", - "name": "+1", - "timestamp": "={{$node[\"Slack13\"].json[\"message\"][\"ts\"]}}" - }, - "name": "Slack20", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 870, - 700 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "d865f9ac-2f76-40fe-87e1-9c855cb518ec" - }, - { - "parameters": { - "resource": "user", - "operation": "getPresence", - "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}" - }, - "name": "Slack24", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 580, - 850 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "6532165d-7578-4b90-b66d-e204955669dd" - }, - { - "parameters": { - "resource": "user", - "user": "={{$node[\"Slack13\"].json[\"message\"][\"user\"]}}" - }, - "name": "Slack25", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 730, - 850 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "f013017c-399b-4692-9dfe-be72138349b4" - } - ], - "connections": { - "Slack": { - "main": [ - [ - { - "node": "Slack1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Slack", - "type": "main", - "index": 0 - }, - { - "node": "Slack13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack13": { - "main": [ - [ - { - "node": "Slack18", - "type": "main", - "index": 0 - }, - { - "node": "Slack24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack15": { - "main": [ - [ - { - "node": "Slack16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack16": { - "main": [ - [ - { - "node": "Slack17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack14": { - "main": [ - [ - { - "node": "Slack15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack18": { - "main": [ - [ - { - "node": "Slack19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack19": { - "main": [ - [ - { - "node": "Slack20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack20": { - "main": [ - [ - { - "node": "Slack14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack24": { - "main": [ - [ - { - "node": "Slack25", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/36.json b/test-workflows/workflows/36.json deleted file mode 100644 index 13d7d86b6f..0000000000 --- a/test-workflows/workflows/36.json +++ /dev/null @@ -1,753 +0,0 @@ -{ - "createdAt": "2021-02-17T17:57:34.255Z", - "updatedAt": "2021-07-15T14:42:32.636Z", - "id": "36", - "name": "Slack:File:upload getAll get:Star:add getAll delete:Channgel:create update setPurpose setTopic ge t invite leave join getAll history replies member archive unarchive", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "a26bf258-8876-4142-9a6c-37ac7426e7c9" - }, - { - "parameters": { - "resource": "channel", - "operation": "setPurpose", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "purpose": "Testing" - }, - "name": "Slack3", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 730, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "bd33c223-d19f-43ed-a4f8-6eb524340051" - }, - { - "parameters": { - "resource": "channel", - "operation": "setTopic", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "topic": "QA" - }, - "name": "Slack4", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 870, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "e956c837-0f3e-4075-a246-ce5a5f16ef17" - }, - { - "parameters": { - "resource": "channel", - "operation": "get", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Slack5", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1020, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "66010c67-ac41-4390-a85a-6e3b9de26a98" - }, - { - "parameters": { - "resource": "channel", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Slack6", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1650, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "ead0ce56-689b-43b0-b527-ecd4f869963c" - }, - { - "parameters": { - "resource": "channel", - "operation": "history", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "limit": 1, - "filters": {} - }, - "name": "Slack7", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1820, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "d1dc4c44-619b-42e5-af3f-106fff4a99b5" - }, - { - "parameters": { - "resource": "channel", - "operation": "rename", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "name": "=renamed{{$node[\"Slack2\"].json[\"name\"]}}" - }, - "name": "Slack9", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 580, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "c63a975b-66ec-4f6a-85c4-712dd8f322d7" - }, - { - "parameters": { - "resource": "file", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Slack11", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 590, - 390 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "4d54c4d7-285e-4e61-853f-b25cc38160dd" - }, - { - "parameters": { - "resource": "file", - "operation": "get", - "fileId": "={{$node[\"Slack10\"].json[\"id\"]}}" - }, - "name": "Slack12", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 740, - 390 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "1cc8f403-d7a4-42a4-8e78-a2443c2aed32" - }, - { - "parameters": { - "resource": "channel", - "operation": "member", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Slack8", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 2120, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "88583aee-b74b-4316-a8c2-2a9ee278275a" - }, - { - "parameters": { - "resource": "channel", - "channelId": "=testchannel{{Math.random().toString(36).replace(/[^a-z]+/g, '')}}", - "additionalFields": { - "isPrivate": false - } - }, - "name": "Slack2", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 440, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "bfc23883-4190-46c7-8b9e-8afb0b4c3435" - }, - { - "parameters": { - "resource": "file", - "fileContent": "=Test file upload {{(new Date().toString())}}", - "options": { - "channelIds": [ - "C01N780JVPG" - ] - } - }, - "name": "Slack10", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 440, - 390 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "3526fb45-6eca-495d-8535-d77cbf2b78fd" - }, - { - "parameters": { - "resource": "star", - "operation": "delete", - "options": { - "channelId": "C01MZ82T9TR" - } - }, - "name": "Slack23", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 840, - 560 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "e4cfa506-e1b9-439f-8070-8c0cc7ba191d" - }, - { - "parameters": { - "resource": "star", - "operation": "getAll", - "limit": 1 - }, - "name": "Slack22", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 690, - 560 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "c79469c2-5987-442d-a08a-7b942f8c3fde" - }, - { - "parameters": { - "resource": "star", - "options": { - "channelId": "=C01MZ82T9TR" - } - }, - "name": "Slack21", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 550, - 560 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "eb6f3c3e-d6cb-42f4-aa6d-462bde196f28" - }, - { - "parameters": { - "resource": "channel", - "operation": "archive", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" - }, - "name": "Slack", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 2250, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "cb863325-bb94-4669-a174-913a2d504fd9" - }, - { - "parameters": { - "resource": "channel", - "operation": "invite", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "userIds": [ - "U01N08LEY9M" - ] - }, - "name": "Slack13", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1160, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "d4c01071-c77a-4605-8382-e0596de883ee" - }, - { - "parameters": { - "resource": "channel", - "operation": "join", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" - }, - "name": "Slack16", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1500, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "b757d3d8-0d72-4efe-bcc0-ba360e423775" - }, - { - "parameters": { - "resource": "channel", - "operation": "replies", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}", - "ts": "={{$node[\"Slack7\"].json[\"ts\"]}}", - "filters": {} - }, - "name": "Slack18", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1960, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "c8c86ba2-599e-4546-a006-1509456726b7" - }, - { - "parameters": { - "resource": "channel", - "operation": "leave", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" - }, - "name": "Slack17", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 1330, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "8d90aae7-bcc9-427d-86e4-4c18df0e6c35" - }, - { - "parameters": { - "resource": "channel", - "operation": "archive", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" - }, - "name": "Slack1", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 2540, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "0a23fea3-c8dd-41a4-afef-1701d959d8f1" - }, - { - "parameters": { - "resource": "channel", - "operation": "unarchive", - "channelId": "={{$node[\"Slack2\"].json[\"id\"]}}" - }, - "name": "Slack14", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 2400, - 230 - ], - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "id": "2f208a4c-9c68-43d6-8dfd-eb1297a79b0d" - }, - { - "parameters": { - "resource": "star", - "operation": "delete", - "options": { - "channelId": "C01MZ82T9TR" - } - }, - "name": "Slack24", - "type": "n8n-nodes-base.slack", - "typeVersion": 1, - "position": [ - 400, - 560 - ], - "alwaysOutputData": true, - "credentials": { - "slackApi": { - "id": "18", - "name": "Slack Token" - } - }, - "continueOnFail": true, - "notes": "IGNORED_PROPERTIES=ok,error", - "id": "3d3fd370-7c82-4623-9258-e4d7e5a1e381" - } - ], - "connections": { - "Slack3": { - "main": [ - [ - { - "node": "Slack4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack4": { - "main": [ - [ - { - "node": "Slack5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack5": { - "main": [ - [ - { - "node": "Slack13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack6": { - "main": [ - [ - { - "node": "Slack7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack7": { - "main": [ - [ - { - "node": "Slack18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack9": { - "main": [ - [ - { - "node": "Slack3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack11": { - "main": [ - [ - { - "node": "Slack12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack2": { - "main": [ - [ - { - "node": "Slack9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack10": { - "main": [ - [ - { - "node": "Slack11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack22": { - "main": [ - [ - { - "node": "Slack23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack21": { - "main": [ - [ - { - "node": "Slack22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Slack10", - "type": "main", - "index": 0 - }, - { - "node": "Slack2", - "type": "main", - "index": 0 - }, - { - "node": "Slack24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack8": { - "main": [ - [ - { - "node": "Slack", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack13": { - "main": [ - [ - { - "node": "Slack17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack16": { - "main": [ - [ - { - "node": "Slack6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack18": { - "main": [ - [ - { - "node": "Slack8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack17": { - "main": [ - [ - { - "node": "Slack16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack": { - "main": [ - [ - { - "node": "Slack14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack14": { - "main": [ - [ - { - "node": "Slack1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Slack24": { - "main": [ - [ - { - "node": "Slack21", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/37.json b/test-workflows/workflows/37.json deleted file mode 100644 index ffd7abf514..0000000000 --- a/test-workflows/workflows/37.json +++ /dev/null @@ -1,466 +0,0 @@ -{ - "createdAt": "2024-02-14T09:47:52.198Z", - "updatedAt": "2024-02-14T09:47:52.198Z", - "id": "37", - "name": "GitLab:Repository:get getIssues:Issue:create createComment edit get lock:Release:create get getAll update delete:User:getRepositories", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "57d13714-f0f8-46af-a51c-4d6691fe9a52" - }, - { - "parameters": { - "resource": "repository", - "operation": "get", - "owner": "nodeqa", - "repository": "nodemationQA" - }, - "name": "Gitlab", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 560, - 180 - ], - "id": "63131b59-53e5-431c-9c4e-daf68d14629c", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - }, - "notes": "IGNORED_PROPERTIES=topics" - }, - { - "parameters": { - "resource": "repository", - "owner": "nodeqa", - "repository": "nodemationQA", - "getRepositoryIssuesFilters": {} - }, - "name": "Gitlab1", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 820, - 180 - ], - "id": "6d4cf9da-8e20-45ac-a97e-b78365c53ae9", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - }, - "notes": "CAP_RESULTS_LENGTH=1" - }, - { - "parameters": { - "owner": "nodeqa", - "repository": "nodemationQA", - "title": "=Issue - {{(new Date()).toDateString()}}", - "body": "=QA Test on {{(new Date()).toDateString()}}", - "labels": [], - "assignee_ids": [] - }, - "name": "Gitlab2", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 550, - 330 - ], - "id": "6fd68a0d-f82b-4470-8ba0-624caac71815", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "operation": "createComment", - "owner": "nodeqa", - "repository": "nodemationQA", - "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}", - "body": "=Comment on issue - {{(new Date()).toString()}}" - }, - "name": "Gitlab3", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 710, - 330 - ], - "id": "f996bfa2-d08a-4943-bd32-6c3042345c24", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "operation": "edit", - "owner": "nodeqa", - "repository": "nodemationQA", - "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}", - "editFields": { - "description": "=Edited {{$node[\"Gitlab2\"].json[\"description\"]}}" - } - }, - "name": "Gitlab4", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 870, - 330 - ], - "id": "1dfade56-7b02-4c36-952f-729006aa4dbd", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "operation": "get", - "owner": "nodeqa", - "repository": "nodemationQA", - "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}" - }, - "name": "Gitlab5", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 1020, - 330 - ], - "id": "1ff45615-93bb-41b3-83d2-6a6135a77ee9", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "operation": "lock", - "owner": "nodeqa", - "repository": "nodemationQA", - "issueNumber": "={{$node[\"Gitlab2\"].json[\"iid\"]}}" - }, - "name": "Gitlab6", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 1180, - 330 - ], - "id": "f6367788-80ca-45a4-a018-c66b8815f911", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "resource": "release", - "owner": "nodeqa", - "repository": "nodemationQA", - "releaseTag": "=Release-tag-test{{Date.now()}}", - "additionalFields": { - "name": "=Release{{Date.now()}}", - "ref": "master" - } - }, - "name": "Gitlab7", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 540, - 490 - ], - "id": "5744f348-d468-45cd-90d8-b37502f20f49", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "resource": "user", - "owner": "n8nqa" - }, - "name": "Gitlab8", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 540, - 640 - ], - "id": "919f48e5-1999-40af-89c2-8adce98e843b", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - }, - "notes": "IGNORED_PROPERTIES=topics" - }, - { - "parameters": { - "resource": "release", - "operation": "get", - "owner": "nodeqa", - "repository": "nodemationQA", - "projectId": "24497029", - "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}" - }, - "name": "Gitlab9", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 710, - 490 - ], - "id": "782007ea-d789-442c-b44d-fc34e737e467", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "resource": "release", - "operation": "getAll", - "owner": "nodeqa", - "repository": "nodemationQA", - "projectId": "24497029", - "limit": 1, - "additionalFields": {} - }, - "name": "Gitlab10", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 870, - 490 - ], - "id": "b441f646-eaef-41b8-934a-d349ae7563b5", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "resource": "release", - "operation": "update", - "owner": "nodeqa", - "repository": "nodemationQA", - "projectId": "24497029", - "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}", - "additionalFields": { - "name": "=Updated{{$node[\"Gitlab7\"].json[\"name\"]}}" - } - }, - "name": "Gitlab11", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 1020, - 490 - ], - "id": "f2598d6c-084c-4d97-9e95-b36e1f56faa2", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - }, - { - "parameters": { - "resource": "release", - "operation": "delete", - "owner": "nodeqa", - "repository": "nodemationQA", - "projectId": "24497029", - "tag_name": "={{$node[\"Gitlab7\"].json[\"tag_name\"]}}" - }, - "name": "Gitlab12", - "type": "n8n-nodes-base.gitlab", - "typeVersion": 1, - "position": [ - 1180, - 490 - ], - "id": "36983c2c-6114-4692-b925-279a5ec8055b", - "credentials": { - "gitlabApi": { - "id": "19", - "name": "Gitlap token" - } - } - } - ], - "connections": { - "Gitlab": { - "main": [ - [ - { - "node": "Gitlab1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Gitlab", - "type": "main", - "index": 0 - }, - { - "node": "Gitlab2", - "type": "main", - "index": 0 - }, - { - "node": "Gitlab7", - "type": "main", - "index": 0 - }, - { - "node": "Gitlab8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab2": { - "main": [ - [ - { - "node": "Gitlab3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab3": { - "main": [ - [ - { - "node": "Gitlab4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab4": { - "main": [ - [ - { - "node": "Gitlab5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab5": { - "main": [ - [ - { - "node": "Gitlab6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab7": { - "main": [ - [ - { - "node": "Gitlab9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab9": { - "main": [ - [ - { - "node": "Gitlab10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab10": { - "main": [ - [ - { - "node": "Gitlab11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gitlab11": { - "main": [ - [ - { - "node": "Gitlab12", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": { - "templateCredsSetupCompleted": true, - "instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4" - }, - "pinData": {}, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/38.json b/test-workflows/workflows/38.json deleted file mode 100644 index aa81f425ed..0000000000 --- a/test-workflows/workflows/38.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "createdAt": "2021-02-18T09:13:09.580Z", - "updatedAt": "2021-02-18T09:13:09.580Z", - "id": "38", - "name": "Medium:Post:create:Publication:getall", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "fc3fb55c-91d4-4865-8bed-bb672fcf6ed8" - }, - { - "parameters": { - "title": "=Medium node TestQA Draft {{ (new Date()).toGMTString()}}", - "contentFormat": "markdown", - "content": "=# QA test Draft Content\n\n#### {{ (new Date()).toGMTString()}}", - "additionalFields": { - "publishStatus": "draft" - } - }, - "name": "Medium", - "type": "n8n-nodes-base.medium", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "mediumApi": { - "id": "20", - "name": "Medium token" - } - }, - "id": "0c6e0d0c-76e4-4ae0-b97f-ef501bae351c" - }, - { - "parameters": { - "resource": "publication", - "operation": "getAll", - "limit": 1 - }, - "name": "Medium1", - "type": "n8n-nodes-base.medium", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "mediumApi": { - "id": "20", - "name": "Medium token" - } - }, - "id": "a4561f3e-650c-4960-8688-97a4272189a1" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Medium", - "type": "main", - "index": 0 - }, - { - "node": "Medium1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/39.json b/test-workflows/workflows/39.json deleted file mode 100644 index b3e620bdbe..0000000000 --- a/test-workflows/workflows/39.json +++ /dev/null @@ -1,938 +0,0 @@ -{ - "createdAt": "2021-02-18T10:30:52.070Z", - "updatedAt": "2021-06-08T08:12:16.812Z", - "id": "39", - "name": "Github:Repository:get getProfile getLicense listPopularPaths listReferrers:File:create edit get delete:Issue:create createComment edit get lock:Release:create get getAll update delete:User:getRepositories invite:Review:create getAll get update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 180, - 750 - ], - "id": "f0955b0a-3d0c-48ef-adb2-541915a9acef" - }, - { - "parameters": { - "resource": "repository", - "operation": "getProfile", - "owner": "nodemationqa", - "repository": "nodeQA" - }, - "name": "GitHub", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 620, - 300 - ], - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "3d876463-6962-4b4d-b3cb-9015ec6848c0" - }, - { - "parameters": { - "resource": "repository", - "operation": "getLicense", - "owner": "nodemationqa", - "repository": "nodeQA" - }, - "name": "GitHub1", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 770, - 300 - ], - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "36bbea35-9d6e-4b28-a5a9-53cab2b5d970" - }, - { - "parameters": { - "resource": "repository", - "operation": "listPopularPaths", - "owner": "nodemationqa", - "repository": "nodeQA" - }, - "name": "GitHub2", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 920, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "f51387a0-836e-4962-90d9-c89190007c49" - }, - { - "parameters": { - "resource": "repository", - "operation": "listReferrers", - "owner": "nodemationqa", - "repository": "nodeQA" - }, - "name": "GitHub3", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 1070, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "db3f98fa-c19d-41fc-922f-0e356b150e0d" - }, - { - "parameters": { - "resource": "repository", - "operation": "get", - "owner": "nodemationqa", - "repository": "nodeQA" - }, - "name": "GitHub4", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 470, - 300 - ], - "executeOnce": false, - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "4827b07a-4982-4c4a-b47a-647b05846306" - }, - { - "parameters": { - "resource": "repository", - "owner": "nodemationqa", - "repository": "nodeQA", - "limit": 1, - "getRepositoryIssuesFilters": {} - }, - "name": "GitHub5", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 1210, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "5948497b-3e84-40ba-a87d-dd4da66a208c" - }, - { - "parameters": { - "resource": "file", - "owner": "nodemationqa", - "repository": "nodeQA", - "filePath": "=testFile{{Date.now()}}", - "fileContent": "Test file content, create file operation", - "commitMessage": "=Commited {{(new Date()).toGMTString()}}", - "additionalParameters": { - "branch": { - "branch": "main" - } - } - }, - "name": "GitHub6", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 470, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "752ecae8-1820-4e92-a7e0-8382fb63f94b" - }, - { - "parameters": { - "resource": "file", - "operation": "edit", - "owner": "nodemationqa", - "repository": "nodeQA", - "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", - "fileContent": "Updated Test file content, create file operation", - "commitMessage": "=Updated commit message {{(new Date()).toGMTString()}}", - "additionalParameters": { - "branch": { - "branch": "main" - } - } - }, - "name": "GitHub7", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 630, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "c1326989-6614-42cb-859e-9186e8499ccc" - }, - { - "parameters": { - "resource": "file", - "operation": "get", - "owner": "nodemationqa", - "repository": "nodeQA", - "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", - "asBinaryProperty": false - }, - "name": "GitHub8", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 770, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "2939814a-15b1-4a7b-b829-4b338bdd28a4" - }, - { - "parameters": { - "resource": "file", - "operation": "delete", - "owner": "nodemationqa", - "repository": "nodeQA", - "filePath": "={{$node[\"GitHub6\"].json[\"content\"][\"path\"]}}", - "commitMessage": "=delete commit message {{(new Date()).toGMTString()}}", - "additionalParameters": { - "branch": { - "branch": "main" - } - } - }, - "name": "GitHub9", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 910, - 460 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "68c193fe-ed71-449d-8f46-08e21cc2f08e" - }, - { - "parameters": { - "owner": "nodemationqa", - "repository": "nodeQA", - "title": "=Test Issue created at {{(new Date()).toGMTString()}}", - "body": "=Test issue body {{(new Date()).toGMTString()}}", - "labels": [], - "assignees": [] - }, - "name": "GitHub10", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 470, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "22800dbb-3c5c-4c30-9e94-8f4580c26ba7" - }, - { - "parameters": { - "operation": "createComment", - "owner": "nodemationqa", - "repository": "nodeQA", - "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", - "body": "=Comment on issue at {{(new Date()).toGMTString()}}" - }, - "name": "GitHub11", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 620, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "edaee8cb-6469-4395-8c1d-9f577f5ea262" - }, - { - "parameters": { - "operation": "edit", - "owner": "nodemationqa", - "repository": "nodeQA", - "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", - "editFields": { - "title": "=Updated {{$node[\"GitHub10\"].json[\"title\"]}}{{Date.now()}}", - "body": "=updated Test issue body {{(new Date()).toGMTString()}}" - } - }, - "name": "GitHub12", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 770, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "1b158bcd-d934-4347-8988-ba1e6240a4aa" - }, - { - "parameters": { - "operation": "get", - "owner": "nodemationqa", - "repository": "nodeQA", - "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}" - }, - "name": "GitHub13", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 920, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "7c1c2a47-f0ef-4ba5-8329-0f661e93afe4" - }, - { - "parameters": { - "operation": "lock", - "owner": "nodemationqa", - "repository": "nodeQA", - "issueNumber": "={{$node[\"GitHub10\"].json[\"number\"]}}", - "lockReason": "spam" - }, - "name": "GitHub14", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 1060, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "13bb869d-2c1e-433d-a4df-e4b7ed1fe15a" - }, - { - "parameters": { - "resource": "release", - "owner": "nodemationqa", - "repository": "nodeQA", - "releaseTag": "=Release{{Date.now()}}", - "additionalFields": { - "name": "=Release {{(new Date()).toGMTString()}}", - "draft": true - } - }, - "name": "GitHub15", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 470, - 770 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "83a9cc6c-815c-476d-a8d5-83a9475daca8" - }, - { - "parameters": { - "resource": "user", - "owner": "nodemationqa" - }, - "name": "GitHub16", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 470, - 930 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "ba63e2c6-4ac4-4180-9325-2f61e77f8a7d" - }, - { - "parameters": { - "resource": "user", - "operation": "invite", - "organization": "OrgnodeQA", - "email": "nodeqa@n8n.io" - }, - "name": "GitHub17", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 660, - 930 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "ce44c4b5-9ed1-463a-bed2-85102bdb66e2" - }, - { - "parameters": { - "resource": "review", - "owner": "nodemationqa", - "repository": "nodeQA", - "pullRequestNumber": 3, - "event": "comment", - "body": "=Review Test {{(new Date()).toGMTString()}}", - "additionalFields": {} - }, - "name": "GitHub18", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 460, - 1080 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "dd259704-d7e5-4a3b-8368-dc65c7241b61" - }, - { - "parameters": { - "resource": "review", - "operation": "getAll", - "owner": "nodemationqa", - "repository": "nodeQA", - "pullRequestNumber": 3, - "limit": 1 - }, - "name": "GitHub19", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 610, - 1080 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "1c090f0d-1bad-48d7-86ed-17a63359ace2" - }, - { - "parameters": { - "resource": "review", - "operation": "get", - "owner": "nodemationqa", - "repository": "nodeQA", - "pullRequestNumber": 3, - "reviewId": "={{$node[\"GitHub18\"].json[\"id\"]}}" - }, - "name": "GitHub20", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 750, - 1080 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "d917c74c-a3c8-4a12-b4cb-72987ad19f65" - }, - { - "parameters": { - "resource": "review", - "operation": "update", - "owner": "nodemationqa", - "repository": "nodeQA", - "pullRequestNumber": 3, - "reviewId": "={{$node[\"GitHub18\"].json[\"id\"]}}", - "body": "=Updated {{$node[\"GitHub18\"].json[\"body\"]}}" - }, - "name": "GitHub21", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 900, - 1080 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "5796a57b-9580-47af-83c2-6770f542eef2" - }, - { - "parameters": { - "resource": "release", - "operation": "getAll", - "owner": "nodemationqa", - "repository": "nodeQA", - "limit": 1 - }, - "name": "GitHub22", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 620, - 770 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "c4ce2f6d-7e2c-4931-9a62-f1702168fdca" - }, - { - "parameters": { - "resource": "release", - "operation": "get", - "owner": "nodemationqa", - "repository": "nodeQA", - "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}" - }, - "name": "GitHub23", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 770, - 770 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "d286eac6-e189-41d9-8956-3e528219dfc1" - }, - { - "parameters": { - "resource": "release", - "operation": "update", - "owner": "nodemationqa", - "repository": "nodeQA", - "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}", - "additionalFields": { - "draft": true, - "name": "=Updated{{$node[\"GitHub15\"].json[\"name\"]}}", - "tag_name": "=Updated{{$node[\"GitHub15\"].json[\"tag_name\"]}}" - } - }, - "name": "GitHub24", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 920, - 770 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "1bc53e99-0f2f-425d-977a-e27a75cd9dbf" - }, - { - "parameters": { - "resource": "release", - "operation": "delete", - "owner": "nodemationqa", - "repository": "nodeQA", - "release_id": "={{$node[\"GitHub15\"].json[\"id\"]}}" - }, - "name": "GitHub25", - "type": "n8n-nodes-base.github", - "typeVersion": 1, - "position": [ - 1060, - 770 - ], - "alwaysOutputData": true, - "credentials": { - "githubApi": { - "id": "21", - "name": "Github creds" - } - }, - "id": "ceab4826-8e38-4a8b-b60c-7dfcf65b7aa9" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "GitHub4", - "type": "main", - "index": 0 - }, - { - "node": "GitHub6", - "type": "main", - "index": 0 - }, - { - "node": "GitHub10", - "type": "main", - "index": 0 - }, - { - "node": "GitHub15", - "type": "main", - "index": 0 - }, - { - "node": "GitHub16", - "type": "main", - "index": 0 - }, - { - "node": "GitHub18", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub": { - "main": [ - [ - { - "node": "GitHub1", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub1": { - "main": [ - [ - { - "node": "GitHub2", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub2": { - "main": [ - [ - { - "node": "GitHub3", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub3": { - "main": [ - [ - { - "node": "GitHub5", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub4": { - "main": [ - [ - { - "node": "GitHub", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub8": { - "main": [ - [ - { - "node": "GitHub9", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub6": { - "main": [ - [ - { - "node": "GitHub7", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub7": { - "main": [ - [ - { - "node": "GitHub8", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub10": { - "main": [ - [ - { - "node": "GitHub11", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub11": { - "main": [ - [ - { - "node": "GitHub12", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub12": { - "main": [ - [ - { - "node": "GitHub13", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub13": { - "main": [ - [ - { - "node": "GitHub14", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub16": { - "main": [ - [ - { - "node": "GitHub17", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub18": { - "main": [ - [ - { - "node": "GitHub19", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub19": { - "main": [ - [ - { - "node": "GitHub20", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub20": { - "main": [ - [ - { - "node": "GitHub21", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub15": { - "main": [ - [ - { - "node": "GitHub22", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub22": { - "main": [ - [ - { - "node": "GitHub23", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub23": { - "main": [ - [ - { - "node": "GitHub24", - "type": "main", - "index": 0 - } - ] - ] - }, - "GitHub24": { - "main": [ - [ - { - "node": "GitHub25", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/4.json b/test-workflows/workflows/4.json deleted file mode 100644 index ac5bd6d6b0..0000000000 --- a/test-workflows/workflows/4.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "createdAt": "2021-01-21T13:48:02.703Z", - "updatedAt": "2021-03-15T13:59:19.891Z", - "id": "4", - "name": "FTP:ftp:list download upload", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "5bc91980-86a2-469c-8ad0-7de1d8c9b7e1" - }, - { - "parameters": { - "operation": "list", - "path": "/1KB.zip" - }, - "name": "FTP1", - "type": "n8n-nodes-base.ftp", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "ftp": { - "id": "106", - "name": "FTP creds" - } - }, - "id": "7aee41cf-627d-424a-99a3-952837497848" - }, - { - "parameters": { - "path": "1KB.zip" - }, - "name": "FTP", - "type": "n8n-nodes-base.ftp", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "ftp": { - "id": "106", - "name": "FTP creds" - } - }, - "id": "ab5f20c7-6464-4779-8e13-b47b11ba9459" - }, - { - "parameters": { - "operation": "upload", - "path": "=/upload/{{$node[\"Set\"].json[\"filename\"]}}" - }, - "name": "FTP2", - "type": "n8n-nodes-base.ftp", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "ftp": { - "id": "106", - "name": "FTP creds" - } - }, - "id": "066b0e3d-918f-4a28-94b6-9432e6e572a1" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "filename", - "value": "=test{{Date.now()}}.zip" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "id": "08e2e0f0-f730-48cf-a05e-40820a55aaa3" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "FTP1", - "type": "main", - "index": 0 - } - ] - ] - }, - "FTP1": { - "main": [ - [ - { - "node": "FTP", - "type": "main", - "index": 0 - } - ] - ] - }, - "FTP": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "FTP2": { - "main": [ - [] - ] - }, - "Set": { - "main": [ - [ - { - "node": "FTP2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/40.json b/test-workflows/workflows/40.json deleted file mode 100644 index 0236e8d516..0000000000 --- a/test-workflows/workflows/40.json +++ /dev/null @@ -1,598 +0,0 @@ -{ - "createdAt": "2021-02-18T14:57:48.780Z", - "updatedAt": "2021-03-16T10:54:02.671Z", - "id": "40", - "name": "Gmail:Draft:create getAll get delete:Label:create getAll get delete:Message:send getAll get reply delete:MessageLabel:add remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 340, - 400 - ], - "id": "05c88b78-968b-4f4c-a1e9-8898251d3f7d" - }, - { - "parameters": { - "subject": "=Draft created at {{(new Date()).toGMTString()}}", - "message": "=Draft Test Body", - "additionalFields": {} - }, - "name": "Gmail", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 600, - 230 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "707afa42-fc6e-4117-84bc-29282319d5bb" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Gmail1", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 760, - 230 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "c73d9c21-ea4d-4976-ad4b-2ae4b0fada15" - }, - { - "parameters": { - "operation": "get", - "messageId": "={{$node[\"Gmail\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Gmail2", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 920, - 230 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "67666251-4a70-441a-a383-5582d297edd5" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Gmail\"].json[\"id\"]}}" - }, - "name": "Gmail3", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1070, - 230 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "a0b1960d-1a73-43a4-9978-7d3634051884" - }, - { - "parameters": { - "resource": "label", - "name": "=TestLabel{{Date.now()}}" - }, - "name": "Gmail4", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 600, - 380 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "f2ddc4ef-a79f-4764-ad1e-8fd88e8cc3d9" - }, - { - "parameters": { - "resource": "label", - "operation": "getAll", - "limit": 1 - }, - "name": "Gmail5", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 760, - 380 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "0f6821e9-a68e-46ce-905c-78b14eaa6435" - }, - { - "parameters": { - "resource": "label", - "operation": "get", - "labelId": "={{$node[\"Gmail4\"].json[\"id\"]}}" - }, - "name": "Gmail7", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 920, - 380 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "c78804f2-5ea2-48e7-a98d-90ecb236d5b8" - }, - { - "parameters": { - "resource": "message", - "subject": "=Subject {{(new Date()).toGMTString()}}", - "message": "=Email Body {{(new Date()).toGMTString()}}", - "toList": [ - "node8qa@gmail.com" - ], - "additionalFields": {} - }, - "name": "Gmail8", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 610, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "3f832f5f-94e0-4f86-a041-cbf30655c43b" - }, - { - "parameters": { - "resource": "message", - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "Gmail9", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1040, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "fb256709-1d09-478c-8a18-331830cd6df1" - }, - { - "parameters": { - "resource": "message", - "operation": "get", - "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Gmail10", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1190, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "5f15fa23-4149-410f-baa0-cca8123707b5" - }, - { - "parameters": { - "resource": "message", - "operation": "delete", - "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}" - }, - "name": "Gmail11", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1620, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "33489121-9268-4bbf-ba17-e2673970d71c" - }, - { - "parameters": { - "resource": "message", - "operation": "reply", - "threadId": "={{$node[\"Gmail8\"].json[\"threadId\"]}}", - "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", - "subject": "=Reply {{(new Date()).toGMTString()}}", - "message": "=Reply body {{(new Date()).toGMTString()}}", - "toList": [ - "node8qa@gmail.com" - ], - "additionalFields": {} - }, - "name": "Gmail12", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1330, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "1b8da955-757e-4973-a350-58abac6c4822" - }, - { - "parameters": { - "resource": "messageLabel", - "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", - "labelIds": [ - "SPAM" - ] - }, - "name": "Gmail13", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 740, - 650 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "87698be8-16c6-496a-82fe-2ed1fcb3422a" - }, - { - "parameters": { - "resource": "message", - "operation": "delete", - "messageId": "={{$node[\"Gmail12\"].json[\"id\"]}}" - }, - "name": "Gmail14", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1890, - 530 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "7f58e657-9bf8-4154-9353-39ac27d642cc" - }, - { - "parameters": { - "resource": "messageLabel", - "operation": "remove", - "messageId": "={{$node[\"Gmail8\"].json[\"id\"]}}", - "labelIds": [ - "SPAM" - ] - }, - "name": "Gmail15", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 880, - 650 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "0ffaee84-f0cf-42fc-a47d-0c9a25ae6b90" - }, - { - "parameters": { - "resource": "label", - "operation": "delete", - "labelId": "={{$node[\"Gmail4\"].json[\"id\"]}}" - }, - "name": "Gmail16", - "type": "n8n-nodes-base.gmail", - "typeVersion": 1, - "position": [ - 1070, - 380 - ], - "credentials": { - "gmailOAuth2": { - "id": "22", - "name": "Gmail 0auth" - } - }, - "id": "998e0199-62ef-462b-a353-b7721c95ad46" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 Second", - "type": "n8n-nodes-base.function", - "position": [ - 1470, - 530 - ], - "typeVersion": 1, - "id": "fea0314c-836f-43ea-8d3b-59fff652ad57" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 Second1", - "type": "n8n-nodes-base.function", - "position": [ - 1760, - 530 - ], - "typeVersion": 1, - "id": "677eb37a-3a00-4f00-aa8a-cfc7b373cc1c" - } - ], - "connections": { - "Gmail": { - "main": [ - [ - { - "node": "Gmail1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail1": { - "main": [ - [ - { - "node": "Gmail2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail2": { - "main": [ - [ - { - "node": "Gmail3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Gmail8", - "type": "main", - "index": 0 - }, - { - "node": "Gmail4", - "type": "main", - "index": 0 - }, - { - "node": "Gmail", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail4": { - "main": [ - [ - { - "node": "Gmail5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail5": { - "main": [ - [ - { - "node": "Gmail7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail9": { - "main": [ - [ - { - "node": "Gmail10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail8": { - "main": [ - [ - { - "node": "Gmail13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail10": { - "main": [ - [ - { - "node": "Gmail12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail12": { - "main": [ - [ - { - "node": "Sleep 0.5 Second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail13": { - "main": [ - [ - { - "node": "Gmail15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail15": { - "main": [ - [ - { - "node": "Gmail9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail7": { - "main": [ - [ - { - "node": "Gmail16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail14": { - "main": [ - [] - ] - }, - "Sleep 0.5 Second": { - "main": [ - [ - { - "node": "Gmail11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 Second1": { - "main": [ - [ - { - "node": "Gmail14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Gmail11": { - "main": [ - [ - { - "node": "Sleep 0.5 Second1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/41.json b/test-workflows/workflows/41.json deleted file mode 100644 index 56d5482c11..0000000000 --- a/test-workflows/workflows/41.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "createdAt": "2021-02-18T15:29:36.110Z", - "updatedAt": "2021-02-18T15:56:49.923Z", - "id": "41", - "name": "GoogleCalendar:Event:create getAll get update delete:Calendar:availability", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "6aeb5434-f098-403c-8a10-3b49b0ce5b28" - }, - { - "parameters": { - "resource": "calendar", - "calendar": "node8qa@gmail.com", - "timeMin": "2021-02-17T23:00:00.000Z", - "timeMax": "2021-02-18T23:00:00.000Z", - "options": { - "outputFormat": "availability" - } - }, - "name": "Google Calendar", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 500, - 210 - ], - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "1cd92151-378b-42a0-ab14-fb21b6efc5e5" - }, - { - "parameters": { - "calendar": "node8qa@gmail.com", - "start": "2021-02-18T15:50:50.000Z", - "end": "2021-02-19T15:50:50.000Z", - "additionalFields": { - "description": "Test" - } - }, - "name": "Google Calendar1", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 490, - 390 - ], - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "89509d2f-ceac-4046-ac47-a0c5d5aada34" - }, - { - "parameters": { - "operation": "get", - "calendar": "node8qa@gmail.com", - "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", - "options": {} - }, - "name": "Google Calendar2", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 820, - 390 - ], - "alwaysOutputData": true, - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "48aa1cb4-9649-46f9-9368-fec67709b825" - }, - { - "parameters": { - "operation": "getAll", - "calendar": "node8qa@gmail.com", - "limit": 1, - "options": { - "showDeleted": true - } - }, - "name": "Google Calendar3", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 650, - 390 - ], - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "99926665-5d81-4452-96d8-f025a3539ae6" - }, - { - "parameters": { - "operation": "update", - "calendar": "node8qa@gmail.com", - "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", - "updateFields": { - "color": "7" - } - }, - "name": "Google Calendar4", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 980, - 390 - ], - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "a673096e-b394-4a98-ba01-e0cdfabde6bd" - }, - { - "parameters": { - "operation": "delete", - "calendar": "node8qa@gmail.com", - "eventId": "={{$node[\"Google Calendar1\"].json[\"id\"]}}", - "options": {} - }, - "name": "Google Calendar5", - "type": "n8n-nodes-base.googleCalendar", - "typeVersion": 1, - "position": [ - 1130, - 390 - ], - "credentials": { - "googleCalendarOAuth2Api": { - "id": "23", - "name": "Google calendar 0auth creds" - } - }, - "id": "dd64b74a-ab43-4bed-a19c-59817cc6e4ab" - } - ], - "connections": { - "Google Calendar1": { - "main": [ - [ - { - "node": "Google Calendar3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Calendar3": { - "main": [ - [ - { - "node": "Google Calendar2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Calendar2": { - "main": [ - [ - { - "node": "Google Calendar4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Calendar4": { - "main": [ - [ - { - "node": "Google Calendar5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Calendar1", - "type": "main", - "index": 0 - }, - { - "node": "Google Calendar", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/42.json b/test-workflows/workflows/42.json deleted file mode 100644 index 1aa48b1ece..0000000000 --- a/test-workflows/workflows/42.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "createdAt": "2021-02-18T16:06:30.135Z", - "updatedAt": "2021-02-18T16:06:30.135Z", - "id": "42", - "name": "GoogleTask:create update getAll get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 360, - 250 - ], - "id": "8a9cccfd-ef20-48c6-b6fa-f21c15ab3ee9" - }, - { - "parameters": { - "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", - "title": "Do Testing", - "additionalFields": {} - }, - "name": "Google Tasks", - "type": "n8n-nodes-base.googleTasks", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "googleTasksOAuth2Api": { - "id": "24", - "name": "Google Tasks 0auth creds" - } - }, - "id": "c007f149-e912-4c92-a05e-faf60bc1b6d3" - }, - { - "parameters": { - "operation": "update", - "title": "Do Testing", - "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", - "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}", - "updateFields": { - "status": "completed" - } - }, - "name": "Google Tasks1", - "type": "n8n-nodes-base.googleTasks", - "typeVersion": 1, - "position": [ - 720, - 250 - ], - "credentials": { - "googleTasksOAuth2Api": { - "id": "24", - "name": "Google Tasks 0auth creds" - } - }, - "id": "a1adcb8e-7f47-448b-8dd6-208d815a8515" - }, - { - "parameters": { - "operation": "get", - "title": "Do Testing", - "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", - "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}" - }, - "name": "Google Tasks2", - "type": "n8n-nodes-base.googleTasks", - "typeVersion": 1, - "position": [ - 1070, - 250 - ], - "credentials": { - "googleTasksOAuth2Api": { - "id": "24", - "name": "Google Tasks 0auth creds" - } - }, - "id": "ddc28328-f7f5-451e-9a9a-f3b4827cbb0d" - }, - { - "parameters": { - "operation": "delete", - "title": "Do Testing", - "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", - "taskId": "={{$node[\"Google Tasks\"].json[\"id\"]}}" - }, - "name": "Google Tasks3", - "type": "n8n-nodes-base.googleTasks", - "typeVersion": 1, - "position": [ - 1230, - 250 - ], - "credentials": { - "googleTasksOAuth2Api": { - "id": "24", - "name": "Google Tasks 0auth creds" - } - }, - "id": "f9028103-aa27-405c-a081-7ae669cf3e86" - }, - { - "parameters": { - "operation": "getAll", - "title": "Do Testing", - "task": "MDI3ODQzODIxOTE4MjA1ODY3NzM6MDow", - "limit": 1, - "additionalFields": {} - }, - "name": "Google Tasks4", - "type": "n8n-nodes-base.googleTasks", - "typeVersion": 1, - "position": [ - 890, - 250 - ], - "credentials": { - "googleTasksOAuth2Api": { - "id": "24", - "name": "Google Tasks 0auth creds" - } - }, - "id": "96e66609-8e49-4bb0-b393-63ada8d98ccb" - } - ], - "connections": { - "Google Tasks": { - "main": [ - [ - { - "node": "Google Tasks1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Tasks1": { - "main": [ - [ - { - "node": "Google Tasks4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Tasks2": { - "main": [ - [ - { - "node": "Google Tasks3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Tasks4": { - "main": [ - [ - { - "node": "Google Tasks2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Tasks", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/43.json b/test-workflows/workflows/43.json deleted file mode 100644 index 206106f38b..0000000000 --- a/test-workflows/workflows/43.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "createdAt": "2021-02-19T07:31:35.734Z", - "updatedAt": "2021-06-08T09:27:55.752Z", - "id": "43", - "name": "GoogleContacts:create update getAll get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9b031147-6a8d-44ca-85b0-8cdaf10eb659" - }, - { - "parameters": { - "familyName": "QA", - "givenName": "node", - "additionalFields": { - "companyUi": { - "companyValues": [ - { - "current": true, - "domain": "n8n", - "name": "QA", - "title": "n8nQA" - } - ] - } - } - }, - "name": "Google Contacts", - "type": "n8n-nodes-base.googleContacts", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "googleContactsOAuth2Api": { - "id": "25", - "name": "Google Contacts creds" - } - }, - "id": "7d9e7d33-a215-4997-86a7-4067f990fdbd" - }, - { - "parameters": { - "operation": "update", - "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}", - "fields": [ - "names" - ], - "updateFields": { - "givenName": "nodemation" - } - }, - "name": "Google Contacts1", - "type": "n8n-nodes-base.googleContacts", - "typeVersion": 1, - "position": [ - 780, - 300 - ], - "credentials": { - "googleContactsOAuth2Api": { - "id": "25", - "name": "Google Contacts creds" - } - }, - "id": "8577325f-5674-4c71-8d0b-15afd2eebde4" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "fields": [ - "*" - ], - "options": {} - }, - "name": "Google Contacts2", - "type": "n8n-nodes-base.googleContacts", - "typeVersion": 1, - "position": [ - 940, - 300 - ], - "credentials": { - "googleContactsOAuth2Api": { - "id": "25", - "name": "Google Contacts creds" - } - }, - "id": "a4079178-c6c0-490e-8e46-ba06237bbfce" - }, - { - "parameters": { - "operation": "get", - "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}", - "fields": [ - "*" - ] - }, - "name": "Google Contacts3", - "type": "n8n-nodes-base.googleContacts", - "typeVersion": 1, - "position": [ - 1100, - 300 - ], - "credentials": { - "googleContactsOAuth2Api": { - "id": "25", - "name": "Google Contacts creds" - } - }, - "id": "98244b5e-a280-4717-8c1c-b8dac07fa5f5" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"Google Contacts\"].json[\"contactId\"]}}" - }, - "name": "Google Contacts4", - "type": "n8n-nodes-base.googleContacts", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "googleContactsOAuth2Api": { - "id": "25", - "name": "Google Contacts creds" - } - }, - "id": "0d3f3684-07a8-4465-95dc-59dc3e11bdbb" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(3000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 3 seconds", - "type": "n8n-nodes-base.function", - "position": [ - 610, - 300 - ], - "typeVersion": 1, - "id": "e1d77a33-d0c8-4920-a533-bc6fb413ea05" - } - ], - "connections": { - "Google Contacts": { - "main": [ - [ - { - "node": "Sleep 3 seconds", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Contacts1": { - "main": [ - [ - { - "node": "Google Contacts2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Contacts2": { - "main": [ - [ - { - "node": "Google Contacts3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Contacts3": { - "main": [ - [ - { - "node": "Google Contacts4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Contacts", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 3 seconds": { - "main": [ - [ - { - "node": "Google Contacts1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/44.json b/test-workflows/workflows/44.json deleted file mode 100644 index a4e0144c3d..0000000000 --- a/test-workflows/workflows/44.json +++ /dev/null @@ -1,389 +0,0 @@ -{ - "createdAt": "2021-02-19T07:45:12.148Z", - "updatedAt": "2021-02-26T12:22:54.085Z", - "id": "44", - "name": "GoogleDrive:Folder:create share delete:File:upload share list download copy delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 450 - ], - "id": "8213c874-bb15-4a4e-af12-efe5b749179c" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "folder", - "name": "testFolder" - }, - "name": "Google Drive", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 500, - 290 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "8fb84335-a6b3-4147-a352-72c7911cfe26" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "folder", - "operation": "share", - "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}", - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive1", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 670, - 290 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "07038a52-58d5-49a0-bd35-50499664a826" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "folder", - "operation": "delete", - "fileId": "={{$node[\"Google Drive\"].json[\"id\"]}}" - }, - "name": "Google Drive2", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 830, - 290 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "ebd9563e-f9fa-4ced-a791-fe0ffc3f5d00" - }, - { - "parameters": { - "authentication": "serviceAccount", - "fileContent": "Test File Content", - "name": "testFile", - "parents": [] - }, - "name": "Google Drive3", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "848f7c4d-60b3-4f21-96a0-28ce6768bff5" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "share", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", - "permissionsUi": { - "permissionsValues": { - "role": "reader", - "type": "anyone" - } - }, - "options": {} - }, - "name": "Google Drive4", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 650, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "6bc457b8-8cce-4664-89a7-3c59a4a1cac9" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "list", - "limit": 1, - "options": {} - }, - "name": "Google Drive5", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "939faa4e-f542-41ad-804a-cda6cc30cd89" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "download", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" - }, - "name": "Google Drive6", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 960, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "8fa69472-389c-416b-9be1-8e104c99f9f9" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "copy", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}", - "options": {} - }, - "name": "Google Drive7", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1100, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "1b9c73b8-4f19-49b8-9165-a8c125e264f6" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "delete", - "fileId": "={{$node[\"Google Drive3\"].json[\"id\"]}}" - }, - "name": "Google Drive8", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1240, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "e17d373d-907f-4635-bd44-b0e85e24acf7" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "delete", - "fileId": "={{$node[\"Google Drive7\"].json[\"id\"]}}" - }, - "name": "Google Drive9", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 1380, - 450 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "8621da7a-e990-4dca-84b7-1ddccf256016" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "drive", - "options": {} - }, - "name": "Google Drive10", - "type": "n8n-nodes-base.googleDrive", - "typeVersion": 1, - "position": [ - 500, - 610 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "disabled": true, - "id": "6a675ae3-30c5-44cb-8811-66625259b47d" - } - ], - "connections": { - "Google Drive": { - "main": [ - [ - { - "node": "Google Drive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive1": { - "main": [ - [ - { - "node": "Google Drive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Drive", - "type": "main", - "index": 0 - }, - { - "node": "Google Drive3", - "type": "main", - "index": 0 - }, - { - "node": "Google Drive10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive3": { - "main": [ - [ - { - "node": "Google Drive4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive4": { - "main": [ - [ - { - "node": "Google Drive5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive5": { - "main": [ - [ - { - "node": "Google Drive6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive6": { - "main": [ - [ - { - "node": "Google Drive7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive7": { - "main": [ - [ - { - "node": "Google Drive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Drive8": { - "main": [ - [ - { - "node": "Google Drive9", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/45.json b/test-workflows/workflows/45.json deleted file mode 100644 index cbc6f7cafa..0000000000 --- a/test-workflows/workflows/45.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "createdAt": "2021-02-19T09:08:47.547Z", - "updatedAt": "2021-05-25T12:40:44.118Z", - "id": "45", - "name": "GoogleSheets:SpreadSheet:create:Sheet:create append read lookup update delete clean remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "8c3c86be-d507-41b2-835b-9b49c1c34dc1" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "spreadsheet", - "title": "=TestSpreadSheet {{(new Date()).toGMTString()}}", - "sheetsUi": { - "sheetValues": [] - }, - "options": {} - }, - "name": "Google Sheets", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 440, - 200 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "ca817592-040a-4fa1-a171-abe44d7a011c" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "append", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "range": "A:B", - "options": { - "valueInputMode": "USER_ENTERED" - } - }, - "name": "Google Sheets1", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 610, - 360 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "f00b599c-3fd2-4c89-a9f0-84f33f4b0271" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "update", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "range": "Sheet1!A:B", - "options": { - "valueInputMode": "USER_ENTERED" - } - }, - "name": "Google Sheets2", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 1200, - 360 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "174fac97-78c0-4474-9f9e-2b0a154eb6c5" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "number": [ - { - "name": "id", - "value": "={{$node[\"Function\"].json[\"id\"]}}" - } - ], - "string": [ - { - "name": "name", - "value": "=Updated {{$node[\"Function\"].json[\"name\"]}}" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "position": [ - 1050, - 360 - ], - "typeVersion": 1, - "alwaysOutputData": false, - "notesInFlow": true, - "notes": "Update one item name", - "id": "72366cc8-257d-40fe-be42-cc85b8a01edf" - }, - { - "parameters": { - "authentication": "serviceAccount", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "range": "Sheet1!A:C", - "options": {} - }, - "name": "Google Sheets3", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 770, - 360 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "34ba96c0-f1d2-4d78-883c-f809166e8688" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "lookup", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "range": "Sheet1!A:B", - "lookupColumn": "name", - "lookupValue": "test1", - "options": {} - }, - "name": "Google Sheets4", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 910, - 360 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "e29d0550-1a22-4fc7-96a1-d4cc1b924b2f" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "clear", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "range": "A2:C50" - }, - "name": "Google Sheets5", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 1500, - 360 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "6bbb5985-4367-4492-85db-aefcea813c99" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "delete", - "sheetId": "1Vp6KkHSquwxi2Y4xiloyUMFrTAg9VHJ-PhGdgYq4apE", - "toDelete": { - "columns": [], - "rows": [ - { - "sheetId": 0, - "startIndex": 1 - } - ] - } - }, - "name": "Google Sheets6", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 1350, - 360 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "0c129d65-37c8-48a6-b0fa-062a1b474d96" - }, - { - "parameters": { - "functionCode": "items = [\n {\n json:{\n id: Math.round(Math.random()*1000),\n name: 'test1'\n } \n },\n {\n json:{\n id: Math.round(Math.random()*1000),\n name: 'test2'\n } \n }\n]\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 440, - 360 - ], - "notesInFlow": true, - "notes": "create the input data", - "id": "e4dce6be-f388-4159-889f-0c0243a9a407" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "create", - "sheetId": "={{$node[\"Google Sheets\"].json[\"spreadsheetId\"]}}", - "options": { - "gridProperties": { - "columnCount": 10, - "rowCount": 20 - }, - "rightToLeft": false, - "index": 1, - "tabColor": "#FF6E39" - } - }, - "name": "Google Sheets7", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "e32770bf-a9e6-47cf-a75f-6e335ca46d3d" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "remove", - "sheetId": "={{$node[\"Google Sheets\"].json[\"spreadsheetId\"]}}", - "id": "={{$node[\"Google Sheets7\"].json[\"sheetId\"]}}" - }, - "name": "Google Sheets8", - "type": "n8n-nodes-base.googleSheets", - "typeVersion": 1, - "position": [ - 750, - 200 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "b3ff83fc-5bb3-4472-bbf4-c24a56e4ecf1" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Google Sheets", - "type": "main", - "index": 0 - }, - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets1": { - "main": [ - [ - { - "node": "Google Sheets3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets2": { - "main": [ - [ - { - "node": "Google Sheets6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Google Sheets2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets3": { - "main": [ - [ - { - "node": "Google Sheets4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets4": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets6": { - "main": [ - [ - { - "node": "Google Sheets5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Google Sheets1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets": { - "main": [ - [ - { - "node": "Google Sheets7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Sheets7": { - "main": [ - [ - { - "node": "Google Sheets8", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/46.json b/test-workflows/workflows/46.json deleted file mode 100644 index 56e0ba6f88..0000000000 --- a/test-workflows/workflows/46.json +++ /dev/null @@ -1,332 +0,0 @@ -{ - "createdAt": "2021-02-19T09:10:55.093Z", - "updatedAt": "2021-06-04T16:58:49.525Z", - "id": "46", - "name": "GoogleBooks:Volume:getAll get:BookShelf:getAll get:BookShelfVolume:add move getAll remove clear", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 190, - 380 - ], - "id": "92c95e9a-bed8-4099-9f53-f2744380c0e2" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "volume", - "operation": "getAll", - "searchQuery": "lean startup", - "limit": 2 - }, - "name": "Google Books", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 480, - 300 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "notes": "IGNORED_PROPERTIES=userInfo", - "id": "2cc49cda-b0ee-4c8f-96c9-eede0627537c" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "volume", - "volumeId": "={{$node[\"Google Books\"].json[\"id\"]}}" - }, - "name": "Google Books1", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "notes": "IGNORED_PROPERTIES=layerInfo", - "id": "629b25f8-ced3-41a0-9e8e-47a84c1c654b" - }, - { - "parameters": { - "authentication": "serviceAccount", - "operation": "getAll", - "myLibrary": true, - "limit": 1 - }, - "name": "Google Books2", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 480, - 460 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "6deb68ae-0a5d-4d1c-b8f0-e6f7a53bb67a" - }, - { - "parameters": { - "authentication": "serviceAccount", - "myLibrary": true, - "shelfId": "1001" - }, - "name": "Google Books3", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 640, - 460 - ], - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "75b090c9-0b7b-466a-8805-3a7a19cb4db8" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "bookshelfVolume", - "operation": "add", - "shelfId": "1001", - "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}" - }, - "name": "Google Books4", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 820, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "de433fd4-9964-4e37-9446-33248f9851f6" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "bookshelfVolume", - "operation": "move", - "shelfId": "1001", - "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}", - "volumePosition": "1" - }, - "name": "Google Books5", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 990, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "f797616b-cd2d-4f41-b138-eafeaac2a059" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "bookshelfVolume", - "myLibrary": true, - "shelfId": "1001", - "limit": 1 - }, - "name": "Google Books6", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 1150, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "notes": "IGNORED_PROPERTIES=layerInfo", - "id": "2c5e6a25-48c7-44e7-bce6-e7b15af5632f" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "bookshelfVolume", - "operation": "remove", - "shelfId": "1001", - "volumeId": "={{$node[\"Google Books1\"].json[\"id\"]}}" - }, - "name": "Google Books7", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 1340, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "3effe483-67fd-4dc4-90b2-aacea6a8e4b2" - }, - { - "parameters": { - "authentication": "serviceAccount", - "resource": "bookshelfVolume", - "operation": "clear", - "shelfId": "1001" - }, - "name": "Google Books8", - "type": "n8n-nodes-base.googleBooks", - "typeVersion": 1, - "position": [ - 1520, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "googleApi": { - "id": "196", - "name": "Google API creds" - } - }, - "id": "e0d6001c-abb2-41b2-a61e-3aaa47999106" - } - ], - "connections": { - "Google Books": { - "main": [ - [ - { - "node": "Google Books1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Google Books", - "type": "main", - "index": 0 - }, - { - "node": "Google Books2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books2": { - "main": [ - [ - { - "node": "Google Books3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books1": { - "main": [ - [ - { - "node": "Google Books4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books4": { - "main": [ - [ - { - "node": "Google Books5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books5": { - "main": [ - [ - { - "node": "Google Books6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books6": { - "main": [ - [ - { - "node": "Google Books7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Google Books7": { - "main": [ - [ - { - "node": "Google Books8", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/47.json b/test-workflows/workflows/47.json deleted file mode 100644 index 27b4bcc65f..0000000000 --- a/test-workflows/workflows/47.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "createdAt": "2021-02-19T14:03:33.612Z", - "updatedAt": "2021-07-12T12:44:36.384Z", - "id": "47", - "name": "Airtable:append update read list delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 250 - ], - "id": "033f4cbc-f36c-41df-bce3-5726a6aace1e" - }, - { - "parameters": { - "operation": "append", - "application": "appxv9J85H3ZM4WZp", - "table": "FixedTestTable", - "options": {} - }, - "name": "Airtable", - "type": "n8n-nodes-base.airtable", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "airtableApi": { - "id": "32", - "name": "Airtable creds" - } - }, - "id": "284d290d-93c8-441b-9b4e-0e21902f55a9" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "Name", - "value": "Test" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 400, - 250 - ], - "notesInFlow": true, - "notes": "Set Name column value", - "id": "0cd5f3da-97bd-4121-95f7-502338856476" - }, - { - "parameters": { - "operation": "update", - "application": "appxv9J85H3ZM4WZp", - "table": "FixedTestTable", - "id": "={{$node[\"Airtable\"].json[\"id\"]}}", - "updateAllFields": false, - "fields": [ - "Name" - ], - "options": {} - }, - "name": "Airtable1", - "type": "n8n-nodes-base.airtable", - "typeVersion": 1, - "position": [ - 850, - 250 - ], - "credentials": { - "airtableApi": { - "id": "32", - "name": "Airtable creds" - } - }, - "id": "3642a3b3-3fc0-4354-b8ae-4340c2735b68" - }, - { - "parameters": { - "application": "appxv9J85H3ZM4WZp", - "table": "FixedTestTable", - "id": "={{$node[\"Airtable\"].json[\"id\"]}}" - }, - "name": "Airtable2", - "type": "n8n-nodes-base.airtable", - "typeVersion": 1, - "position": [ - 1000, - 250 - ], - "credentials": { - "airtableApi": { - "id": "32", - "name": "Airtable creds" - } - }, - "id": "3075d56b-f6d9-42e1-9ce5-0270650d39d6" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "Name", - "value": "UpdatedTest" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 700, - 250 - ], - "notesInFlow": true, - "notes": "Update Name column", - "id": "517e190a-792d-43b5-a8df-31f4348c62f6" - }, - { - "parameters": { - "operation": "list", - "application": "appxv9J85H3ZM4WZp", - "table": "FixedTestTable", - "returnAll": false, - "limit": 1, - "additionalOptions": {} - }, - "name": "Airtable3", - "type": "n8n-nodes-base.airtable", - "typeVersion": 1, - "position": [ - 1150, - 250 - ], - "credentials": { - "airtableApi": { - "id": "32", - "name": "Airtable creds" - } - }, - "id": "51a97002-565f-4ac1-a1a5-83e9190f6ae2" - }, - { - "parameters": { - "operation": "delete", - "application": "appxv9J85H3ZM4WZp", - "table": "FixedTestTable", - "id": "={{$node[\"Airtable\"].json[\"id\"]}}" - }, - "name": "Airtable4", - "type": "n8n-nodes-base.airtable", - "typeVersion": 1, - "position": [ - 1300, - 250 - ], - "credentials": { - "airtableApi": { - "id": "32", - "name": "Airtable creds" - } - }, - "id": "5923a88f-cf48-4ea6-8fcd-fdf7ae8eb6ee" - } - ], - "connections": { - "Airtable": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Airtable", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Airtable1": { - "main": [ - [ - { - "node": "Airtable2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Airtable1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Airtable2": { - "main": [ - [ - { - "node": "Airtable3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Airtable3": { - "main": [ - [ - { - "node": "Airtable4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/48.json b/test-workflows/workflows/48.json deleted file mode 100644 index e0c01fef6d..0000000000 --- a/test-workflows/workflows/48.json +++ /dev/null @@ -1,603 +0,0 @@ -{ - "createdAt": "2021-02-19T14:19:19.630Z", - "updatedAt": "2021-02-19T14:42:39.385Z", - "id": "48", - "name": "Asana:Project:getAll get:Task:create update move getAll get delete:TaskComment:add remove:TaskTag:add remove:TaskProject:add remov e:SubTask:create getAll:User:get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 280, - 390 - ], - "id": "064566bb-7ae7-4ad5-97ab-69b2973f7eb9" - }, - { - "parameters": { - "resource": "project", - "operation": "getAll", - "workspace": "1177253494675264", - "limit": 1, - "additionalFields": {} - }, - "name": "Asana", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 510, - 300 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "c8bc019c-3007-4981-a93e-1f293b6f501a" - }, - { - "parameters": { - "resource": "project", - "id": "={{$node[\"Asana\"].json[\"gid\"]}}" - }, - "name": "Asana1", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 660, - 300 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "766f5d4b-3f5d-4f88-bbc4-4814d2b7c1ba" - }, - { - "parameters": { - "workspace": "1177253494675264", - "name": "TaskTest", - "otherProperties": { - "assignee": "1199961026001666" - } - }, - "name": "Asana2", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 510, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "776e73c2-bb77-4fee-8ef7-6921bc50e049" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "otherProperties": { - "name": "UpdatedTestTask" - } - }, - "name": "Asana3", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 660, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "91c57a7e-1138-48dc-8048-0baec087a61d" - }, - { - "parameters": { - "operation": "move", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "projectId": "1199961131378839", - "section": "1199961131378842" - }, - "name": "Asana4", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 820, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "40fb1194-7895-4bcb-ab3d-43918f35f9ed" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": { - "assignee": "1199961026001666", - "workspace": "1177253494675264" - } - }, - "name": "Asana5", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 970, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "3116c2d7-5026-48fd-8f00-158d4fcd8019" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}" - }, - "name": "Asana6", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1130, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "b993560a-0dc1-4ace-8185-ba82913c4c72" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}" - }, - "name": "Asana7", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1680, - 460 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "9a2fba6c-df53-494f-91c3-33af89e4c51c" - }, - { - "parameters": { - "resource": "taskComment", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "text": "TestTaskComment", - "additionalFields": {} - }, - "name": "Asana8", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1310, - 300 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "a262aed6-8572-4345-b686-abda94858dee" - }, - { - "parameters": { - "resource": "taskComment", - "operation": "remove", - "id": "={{$node[\"Asana8\"].json[\"gid\"]}}" - }, - "name": "Asana9", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1460, - 300 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "82eaa43c-f3a9-482e-bd61-8c33b2c6702b" - }, - { - "parameters": { - "resource": "taskTag", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "tag": "1199534487398432" - }, - "name": "Asana10", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1310, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "0fa8b198-1c6a-4148-a9c3-1d99223118c6" - }, - { - "parameters": { - "resource": "taskTag", - "operation": "remove", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "tag": "1199534487398432" - }, - "name": "Asana11", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1460, - 450 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "fef9c7fa-3a84-4fce-9e1c-56aee5cff928" - }, - { - "parameters": { - "resource": "taskProject", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "project": "1199961131378839", - "additionalFields": {} - }, - "name": "Asana12", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1310, - 600 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "b90287d6-0d4a-44b7-b526-4debcc327803" - }, - { - "parameters": { - "resource": "taskProject", - "operation": "remove", - "id": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "project": "1199961131378839" - }, - "name": "Asana13", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1460, - 600 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "dc5a5de2-f621-47e9-8b9b-5ed13e7ba90c" - }, - { - "parameters": { - "resource": "user", - "userId": "1199961026001666" - }, - "name": "Asana14", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 510, - 620 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "b95e4adb-3e89-498f-9919-b8e5d2c92a4d" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "workspace": "1177253494675264" - }, - "name": "Asana15", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 650, - 620 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "2c9da710-8406-4d84-a8d1-c888ffc1e13e" - }, - { - "parameters": { - "resource": "subtask", - "taskId": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "name": "SubTestTask", - "otherProperties": {} - }, - "name": "Asana16", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1310, - 760 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "6788086b-1b9f-47c7-8eb4-31ba19ababe3" - }, - { - "parameters": { - "resource": "subtask", - "operation": "getAll", - "taskId": "={{$node[\"Asana2\"].json[\"gid\"]}}", - "limit": 1, - "options": {} - }, - "name": "Asana17", - "type": "n8n-nodes-base.asana", - "typeVersion": 1, - "position": [ - 1460, - 760 - ], - "credentials": { - "asanaApi": { - "id": "33", - "name": "Asana creds" - } - }, - "id": "87cfd6a1-342a-43eb-b056-febc6d6c9a47" - } - ], - "connections": { - "Asana": { - "main": [ - [ - { - "node": "Asana1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana2": { - "main": [ - [ - { - "node": "Asana3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana3": { - "main": [ - [ - { - "node": "Asana4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana4": { - "main": [ - [ - { - "node": "Asana5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana5": { - "main": [ - [ - { - "node": "Asana6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana6": { - "main": [ - [ - { - "node": "Asana8", - "type": "main", - "index": 0 - }, - { - "node": "Asana10", - "type": "main", - "index": 0 - }, - { - "node": "Asana12", - "type": "main", - "index": 0 - }, - { - "node": "Asana16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana8": { - "main": [ - [ - { - "node": "Asana9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana9": { - "main": [ - [] - ] - }, - "Asana10": { - "main": [ - [ - { - "node": "Asana11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana11": { - "main": [ - [] - ] - }, - "Asana12": { - "main": [ - [ - { - "node": "Asana13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana13": { - "main": [ - [] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Asana2", - "type": "main", - "index": 0 - }, - { - "node": "Asana14", - "type": "main", - "index": 0 - }, - { - "node": "Asana", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana14": { - "main": [ - [ - { - "node": "Asana15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana16": { - "main": [ - [ - { - "node": "Asana17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Asana17": { - "main": [ - [ - { - "node": "Asana7", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/49.json b/test-workflows/workflows/49.json deleted file mode 100644 index ae5fb9292f..0000000000 --- a/test-workflows/workflows/49.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "createdAt": "2021-02-19T16:46:19.188Z", - "updatedAt": "2021-02-19T16:46:33.650Z", - "id": "49", - "name": "Bitly:Link:create get update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 300, - 300 - ], - "id": "2780ec3a-4691-4fb0-b10a-71c14b669e40" - }, - { - "parameters": { - "longUrl": "https://n8n.io/", - "additionalFields": { - "title": "n8n" - } - }, - "name": "Bitly", - "type": "n8n-nodes-base.bitly", - "typeVersion": 1, - "position": [ - 560, - 300 - ], - "credentials": { - "bitlyApi": { - "id": "34", - "name": "Bitly creds" - } - }, - "id": "f8d1516e-50b7-475e-9745-9b5b6bc8219c" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"Bitly\"].json[\"id\"]}}" - }, - "name": "Bitly1", - "type": "n8n-nodes-base.bitly", - "typeVersion": 1, - "position": [ - 730, - 300 - ], - "credentials": { - "bitlyApi": { - "id": "34", - "name": "Bitly creds" - } - }, - "id": "26aef02a-14df-4496-81c4-6f241501e42b" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"Bitly\"].json[\"id\"]}}", - "updateFields": { - "group": "Bl2jgvxfKYU" - } - }, - "name": "Bitly2", - "type": "n8n-nodes-base.bitly", - "typeVersion": 1, - "position": [ - 890, - 300 - ], - "credentials": { - "bitlyApi": { - "id": "34", - "name": "Bitly creds" - } - }, - "id": "d661eb9e-7481-4724-93b5-39e25d0f3e9f" - } - ], - "connections": { - "Bitly": { - "main": [ - [ - { - "node": "Bitly1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Bitly1": { - "main": [ - [ - { - "node": "Bitly2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Bitly", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/5.json b/test-workflows/workflows/5.json deleted file mode 100644 index bef0cf8d2f..0000000000 --- a/test-workflows/workflows/5.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "createdAt": "2021-02-15T11:38:21.443Z", - "updatedAt": "2021-05-20T15:25:59.639Z", - "id": "5", - "name": "Hackernews:All:getAll:Article:get:User:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "481a7e7f-5ea7-402b-8316-f72c37b850bb" - }, - { - "parameters": { - "resource": "all", - "limit": 1, - "additionalFields": {} - }, - "name": "Hacker News", - "type": "n8n-nodes-base.hackerNews", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "3c48cdd6-1b9f-41cc-9ffd-861839a17846" - }, - { - "parameters": { - "articleId": "={{$json[\"objectID\"]}}", - "additionalFields": {} - }, - "name": "Hacker News1", - "type": "n8n-nodes-base.hackerNews", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "3cd97e86-f978-498a-9519-117a930529ad" - }, - { - "parameters": { - "resource": "user", - "username": "={{$json[\"author\"]}}" - }, - "name": "Hacker News2", - "type": "n8n-nodes-base.hackerNews", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "4f1db844-dea5-4ee0-bf62-ae05a7467fe7" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Hacker News", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hacker News": { - "main": [ - [ - { - "node": "Hacker News1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hacker News1": { - "main": [ - [ - { - "node": "Hacker News2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/50.json b/test-workflows/workflows/50.json deleted file mode 100644 index ee306ca609..0000000000 --- a/test-workflows/workflows/50.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "createdAt": "2021-02-19T17:00:08.359Z", - "updatedAt": "2021-02-19T17:00:09.839Z", - "id": "50", - "name": "Brandfetch:color company font logo industry", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "82e5bad6-fe48-46f5-a494-d5c92fb33bde" - }, - { - "parameters": { - "operation": "color", - "domain": "n8n.io" - }, - "name": "Brandfetch", - "type": "n8n-nodes-base.Brandfetch", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "brandfetchApi": { - "id": "35", - "name": "Brandfetch creds" - } - }, - "id": "5116c2ec-f940-48ed-b325-577e41ec28ab" - }, - { - "parameters": { - "operation": "company", - "domain": "n8n.io" - }, - "name": "Brandfetch1", - "type": "n8n-nodes-base.Brandfetch", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "brandfetchApi": { - "id": "35", - "name": "Brandfetch creds" - } - }, - "id": "efa378a2-cac0-4e32-a068-ed3260cdbf5d" - }, - { - "parameters": { - "operation": "font", - "domain": "n8n.io" - }, - "name": "Brandfetch2", - "type": "n8n-nodes-base.Brandfetch", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "brandfetchApi": { - "id": "35", - "name": "Brandfetch creds" - } - }, - "id": "7052951a-6829-437b-b222-13e0d19f8b2d" - }, - { - "parameters": { - "operation": "industry", - "domain": "n8n.io" - }, - "name": "Brandfetch3", - "type": "n8n-nodes-base.Brandfetch", - "typeVersion": 1, - "position": [ - 1100, - 300 - ], - "credentials": { - "brandfetchApi": { - "id": "35", - "name": "Brandfetch creds" - } - }, - "id": "98a08780-4212-4f77-9d7e-043da423672a" - }, - { - "parameters": { - "domain": "n8n.io", - "download": true, - "imageTypes": [ - "icon" - ] - }, - "name": "Brandfetch4", - "type": "n8n-nodes-base.Brandfetch", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "brandfetchApi": { - "id": "35", - "name": "Brandfetch creds" - } - }, - "id": "0966b6d6-13c0-4571-9b79-4ac6966e7210" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Brandfetch", - "type": "main", - "index": 0 - } - ] - ] - }, - "Brandfetch": { - "main": [ - [ - { - "node": "Brandfetch1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Brandfetch1": { - "main": [ - [ - { - "node": "Brandfetch2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Brandfetch2": { - "main": [ - [ - { - "node": "Brandfetch4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Brandfetch3": { - "main": [ - [] - ] - }, - "Brandfetch4": { - "main": [ - [ - { - "node": "Brandfetch3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/51.json b/test-workflows/workflows/51.json deleted file mode 100644 index ad26a5f0b2..0000000000 --- a/test-workflows/workflows/51.json +++ /dev/null @@ -1,479 +0,0 @@ -{ - "createdAt": "2021-02-22T07:24:58.045Z", - "updatedAt": "2021-06-07T09:03:59.431Z", - "id": "51", - "name": "Clockify:Project:create update get getAll:Tag:create update getAll delete:TimeEntry:create update get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 290, - 420 - ], - "id": "d407a858-2b0d-47c9-8004-c2aa1c1debb5" - }, - { - "parameters": { - "workspaceId": "60335ad3f24e660123d7fdee", - "name": "=TestProject created {{(new Date).toGMTString()}}", - "additionalFields": {} - }, - "name": "Clockify", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "b95e9179-0b3e-41de-9f8e-e5ed5fb969e9" - }, - { - "parameters": { - "operation": "update", - "workspaceId": "60335ad3f24e660123d7fdee", - "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}", - "updateFields": { - "name": "=Updated {{$node[\"Clockify\"].json[\"name\"]}}" - } - }, - "name": "Clockify1", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 650, - 250 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "0eec5307-ecca-4bc5-b40f-e21090c2941c" - }, - { - "parameters": { - "operation": "get", - "workspaceId": "60335ad3f24e660123d7fdee", - "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}" - }, - "name": "Clockify2", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 800, - 250 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "dfaaf0b6-7657-42f7-b1a3-7bedbcdebfc0" - }, - { - "parameters": { - "operation": "getAll", - "workspaceId": "60335ad3f24e660123d7fdee", - "limit": 1, - "additionalFields": {} - }, - "name": "Clockify3", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 950, - 250 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "e7648d2a-b3f5-4a72-97bc-4d923df7d32c" - }, - { - "parameters": { - "operation": "delete", - "workspaceId": "60335ad3f24e660123d7fdee", - "projectId": "={{$node[\"Clockify\"].json[\"id\"]}}" - }, - "name": "Clockify4", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 1100, - 250 - ], - "notesInFlow": true, - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "disabled": true, - "notes": "delete require archive first", - "id": "59497092-bb8d-41cb-b80e-8642e83fe865" - }, - { - "parameters": { - "resource": "tag", - "workspaceId": "60335ad3f24e660123d7fdee", - "name": "=TestTag{{$evaluateExpression(Math.random())}}" - }, - "name": "Clockify5", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "780628c7-b7cb-4657-9d59-add61d07e849" - }, - { - "parameters": { - "resource": "tag", - "operation": "update", - "workspaceId": "60335ad3f24e660123d7fdee", - "tagId": "={{$node[\"Clockify5\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdatedTag{{$evaluateExpression(Math.random())}}" - } - }, - "name": "Clockify6", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 830, - 400 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "43d5352c-56b1-4c6a-93c2-e09569209485" - }, - { - "parameters": { - "resource": "tag", - "operation": "getAll", - "workspaceId": "60335ad3f24e660123d7fdee", - "limit": 1, - "additionalFields": {} - }, - "name": "Clockify7", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 980, - 400 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "28ccc080-049d-461f-ab30-ff877b0e0a92" - }, - { - "parameters": { - "resource": "tag", - "operation": "delete", - "workspaceId": "60335ad3f24e660123d7fdee", - "tagId": "={{$node[\"Clockify5\"].json[\"id\"]}}" - }, - "name": "Clockify8", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 1130, - 400 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "a3cc2dea-5a89-44ac-92da-bcfbeac654a2" - }, - { - "parameters": { - "resource": "timeEntry", - "workspaceId": "60335ad3f24e660123d7fdee", - "start": "={{(new Date()).toISOString()}}", - "additionalFields": {} - }, - "name": "Clockify9", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 500, - 560 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "2297d639-4261-46d0-b269-bd240b732fca" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "update", - "workspaceId": "60335ad3f24e660123d7fdee", - "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}", - "updateFields": { - "description": "Updated time entry" - } - }, - "name": "Clockify10", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 650, - 560 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "936d9faf-b8eb-4f28-aa6e-4ce43bf119ae" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "get", - "workspaceId": "60335ad3f24e660123d7fdee", - "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Clockify11", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 800, - 560 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "1b7e1644-9988-4794-91e4-278ec8dba2c4" - }, - { - "parameters": { - "resource": "timeEntry", - "operation": "delete", - "workspaceId": "60335ad3f24e660123d7fdee", - "timeEntryId": "={{$node[\"Clockify9\"].json[\"id\"]}}" - }, - "name": "Clockify12", - "type": "n8n-nodes-base.clockify", - "typeVersion": 1, - "position": [ - 950, - 560 - ], - "credentials": { - "clockifyApi": { - "id": "36", - "name": "Clockify creds" - } - }, - "id": "8af95310-ac19-43b8-a8c1-df89b2a715cc" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 660, - 400 - ], - "typeVersion": 1, - "id": "be2fd4bd-f014-48b8-9e52-f18cc6595477" - } - ], - "connections": { - "Clockify": { - "main": [ - [ - { - "node": "Clockify1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify1": { - "main": [ - [ - { - "node": "Clockify2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify2": { - "main": [ - [ - { - "node": "Clockify3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify3": { - "main": [ - [ - { - "node": "Clockify4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify5": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify6": { - "main": [ - [ - { - "node": "Clockify7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify7": { - "main": [ - [ - { - "node": "Clockify8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify9": { - "main": [ - [ - { - "node": "Clockify10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify10": { - "main": [ - [ - { - "node": "Clockify11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Clockify11": { - "main": [ - [ - { - "node": "Clockify12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Clockify", - "type": "main", - "index": 0 - }, - { - "node": "Clockify5", - "type": "main", - "index": 0 - }, - { - "node": "Clockify9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "Clockify6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/52.json b/test-workflows/workflows/52.json deleted file mode 100644 index 7bf1b1de8c..0000000000 --- a/test-workflows/workflows/52.json +++ /dev/null @@ -1,653 +0,0 @@ -{ - "createdAt": "2021-02-22T08:19:03.344Z", - "updatedAt": "2021-02-25T09:52:14.205Z", - "id": "52", - "name": "Coda:Table:getAllColumns getColumn getAllRows getRow createRow pushButton deleteRow:View:getAll get getAllViewColumns getAllViewRows updateViewRow pushViewButto n:Formula:get getAll:Control:get getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 450 - ], - "id": "20619e15-af58-4fc0-9d21-275a6e4d4ebb" - }, - { - "parameters": { - "resource": "control", - "operation": "getAll", - "docId": "2-5DWWeFZp", - "limit": 1 - }, - "name": "Coda", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 430, - 220 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "fc0f43ee-65aa-4676-b393-6e3e9ffc33ca" - }, - { - "parameters": { - "resource": "control", - "docId": "2-5DWWeFZp", - "controlId": "={{$node[\"Coda\"].json[\"id\"]}}" - }, - "name": "Coda1", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 580, - 220 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "ac99a243-1fed-4faf-842d-96108d5b4d60" - }, - { - "parameters": { - "resource": "formula", - "operation": "getAll", - "docId": "2-5DWWeFZp", - "limit": 1 - }, - "name": "Coda2", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 430, - 370 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "8523646e-fffb-4958-b9fb-2ac34e3282e8" - }, - { - "parameters": { - "resource": "formula", - "docId": "2-5DWWeFZp", - "formulaId": "={{$node[\"Coda2\"].json[\"id\"]}}" - }, - "name": "Coda3", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 580, - 370 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "7027e41a-e726-4a36-af68-e05d5c64efac" - }, - { - "parameters": { - "operation": "getAllColumns", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "limit": 1 - }, - "name": "Coda4", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 430, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "ddb40d66-f1ad-49c3-a11d-c10c384f3e4f" - }, - { - "parameters": { - "operation": "getColumn", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "columnId": "={{$node[\"Coda4\"].json[\"id\"]}}" - }, - "name": "Coda5", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 580, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "e0443974-4778-4c76-9a7b-3307506f7ad9" - }, - { - "parameters": { - "operation": "getAllRows", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "limit": 1, - "options": {} - }, - "name": "Coda6", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 730, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "4d07fe9e-29f0-481d-860d-623d5e2f4116" - }, - { - "parameters": { - "operation": "getRow", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}", - "options": {} - }, - "name": "Coda7", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 880, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "b00e4b21-5acb-493a-bb52-20725a4c4dde" - }, - { - "parameters": { - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "options": {} - }, - "name": "Coda8", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 1180, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "814390a0-e0f7-4981-9243-b34b5b613071" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "number": [ - { - "name": "number", - "value": 101 - }, - { - "name": "sum" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1030, - 530 - ], - "id": "99b92bf6-f5d5-4c43-bd76-f55735c496f2" - }, - { - "parameters": { - "operation": "deleteRow", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}" - }, - "name": "Coda9", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 1480, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "783160e7-a206-4dc3-9bce-b4b914c54a49" - }, - { - "parameters": { - "operation": "pushButton", - "docId": "2-5DWWeFZp", - "tableId": "grid-lDqTU2W4nP", - "rowId": "={{$node[\"Coda6\"].json[\"id\"]}}", - "columnId": "c-hTB8QwFtUS" - }, - "name": "Coda10", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 1330, - 530 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "43a39974-ac1c-4c2c-9011-113b8865f770" - }, - { - "parameters": { - "resource": "view", - "operation": "getAll", - "docId": "2-5DWWeFZp", - "limit": 1 - }, - "name": "Coda11", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 430, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "01270518-cd5e-41bc-860e-800107940b68" - }, - { - "parameters": { - "resource": "view", - "docId": "2-5DWWeFZp", - "viewId": "table-FTj1L0rh08" - }, - "name": "Coda12", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 580, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "f3f9ed26-a541-4107-ba9f-c1bd2004f886" - }, - { - "parameters": { - "resource": "view", - "operation": "getAllViewColumns", - "docId": "2-5DWWeFZp", - "viewId": "table-FTj1L0rh08", - "limit": 1 - }, - "name": "Coda13", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 730, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "6edc3858-5763-410f-8bb5-15bf84ce38db" - }, - { - "parameters": { - "resource": "view", - "operation": "getAllViewRows", - "docId": "2-5DWWeFZp", - "viewId": "table-FTj1L0rh08", - "limit": 1, - "options": {} - }, - "name": "Coda14", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 880, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "2e87f275-a020-4629-8319-7a47d149796e" - }, - { - "parameters": { - "resource": "view", - "operation": "updateViewRow", - "docId": "2-5DWWeFZp", - "viewId": "table-FTj1L0rh08", - "rowId": "={{$node[\"Coda14\"].json[\"id\"]}}", - "keyName": "number", - "options": { - "disableParsing": true - } - }, - "name": "Coda15", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 1180, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "0594b22d-0857-450a-9aa2-f2bf6cefd24d" - }, - { - "parameters": { - "keepOnlySet": true, - "values": { - "number": [ - { - "name": "number", - "value": 102 - }, - { - "name": "sum" - } - ] - }, - "options": {} - }, - "name": "Set1", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 1030, - 700 - ], - "id": "8af848c3-52a4-465b-99c7-e73c480825e4" - }, - { - "parameters": { - "resource": "view", - "operation": "pushViewButton", - "docId": "2-5DWWeFZp", - "viewId": "table-FTj1L0rh08", - "rowId": "={{$node[\"Coda14\"].json[\"id\"]}}", - "columnId": "c-hTB8QwFtUS" - }, - "name": "Coda16", - "type": "n8n-nodes-base.coda", - "typeVersion": 1, - "position": [ - 1330, - 700 - ], - "credentials": { - "codaApi": { - "id": "37", - "name": "Code creds" - } - }, - "id": "a48740c3-b5b1-4ac0-825b-accc0296dba0" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Coda11", - "type": "main", - "index": 0 - }, - { - "node": "Coda4", - "type": "main", - "index": 0 - }, - { - "node": "Coda2", - "type": "main", - "index": 0 - }, - { - "node": "Coda", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda": { - "main": [ - [ - { - "node": "Coda1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda2": { - "main": [ - [ - { - "node": "Coda3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda4": { - "main": [ - [ - { - "node": "Coda5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda5": { - "main": [ - [ - { - "node": "Coda6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda6": { - "main": [ - [ - { - "node": "Coda7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda7": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda8": { - "main": [ - [ - { - "node": "Coda10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set": { - "main": [ - [ - { - "node": "Coda8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda10": { - "main": [ - [ - { - "node": "Coda9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda11": { - "main": [ - [ - { - "node": "Coda12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda12": { - "main": [ - [ - { - "node": "Coda13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda13": { - "main": [ - [ - { - "node": "Coda14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda14": { - "main": [ - [ - { - "node": "Set1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Coda15": { - "main": [ - [ - { - "node": "Coda16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set1": { - "main": [ - [ - { - "node": "Coda15", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/53.json b/test-workflows/workflows/53.json deleted file mode 100644 index 4e85b603a5..0000000000 --- a/test-workflows/workflows/53.json +++ /dev/null @@ -1,410 +0,0 @@ -{ - "createdAt": "2021-02-22T09:25:07.982Z", - "updatedAt": "2021-06-01T10:33:44.740Z", - "id": "53", - "name": "ConvertKit:CustomField:create getAll update delete:Form:getAll addSubscriber getSubscriptions:Tag:create getAll:TagSubscriber:add getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "524988a0-a07b-4aca-8284-22aa6f951ca0" - }, - { - "parameters": { - "resource": "customField", - "operation": "create", - "label": "=testField{{$evaluateExpression(Math.random())}}" - }, - "name": "ConvertKit", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 450, - 240 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "dcc8137a-d346-418a-b782-11cc2249b029" - }, - { - "parameters": { - "resource": "customField", - "operation": "getAll", - "limit": 1 - }, - "name": "ConvertKit1", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 600, - 240 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "be466a4d-3611-4f4d-bca6-997b894d1a07" - }, - { - "parameters": { - "resource": "customField", - "id": "={{$node[\"ConvertKit\"].json[\"id\"]}}", - "label": "UpdatedTestField" - }, - "name": "ConvertKit2", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 750, - 240 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "c09251ba-7a0a-4221-9f52-c40061f2b62b" - }, - { - "parameters": { - "resource": "customField", - "operation": "delete", - "id": "={{$node[\"ConvertKit\"].json[\"id\"]}}" - }, - "name": "ConvertKit3", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 900, - 240 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "d3073227-93de-4e3e-a82e-410659aeb65a" - }, - { - "parameters": { - "operation": "getAll" - }, - "name": "ConvertKit4", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 450, - 400 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "9792b051-1166-4ab6-bac6-2aae6f269f0a" - }, - { - "parameters": { - "id": 2059113, - "email": "=fakeemail{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "ConvertKit5", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 600, - 400 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "195f9241-fc99-4184-aed1-b7a7a2672b2f" - }, - { - "parameters": { - "operation": "getSubscriptions", - "id": 2059113, - "limit": 1, - "additionalFields": {} - }, - "name": "ConvertKit6", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 1490, - 400 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "0ceb3aa2-56ef-4bb6-b08c-50f8267d85be" - }, - { - "parameters": { - "resource": "tag", - "name": "=tag{{Date.now()}}" - }, - "name": "ConvertKit7", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 750, - 490 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "9d905c82-8c32-4114-881a-28268f3238e7" - }, - { - "parameters": { - "resource": "tag", - "operation": "getAll", - "limit": 1 - }, - "name": "ConvertKit8", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 890, - 490 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "c5461704-d54f-4ad2-b0e1-fa9f217888ed" - }, - { - "parameters": { - "resource": "tagSubscriber", - "operation": "add", - "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", - "email": "={{$node[\"ConvertKit5\"].json[\"subscriber\"][\"email_address\"]}}", - "additionalFields": {} - }, - "name": "ConvertKit9", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 1050, - 550 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "2b123134-1ed6-415f-b9c2-d20b0e1782c6" - }, - { - "parameters": { - "resource": "tagSubscriber", - "operation": "getAll", - "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "ConvertKit10", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 1200, - 550 - ], - "alwaysOutputData": true, - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "6b44a0a6-9252-48b3-848f-74feb59c7845" - }, - { - "parameters": { - "resource": "tagSubscriber", - "operation": "delete", - "tagId": "={{$node[\"ConvertKit7\"].json[\"id\"]}}", - "email": "={{$node[\"ConvertKit5\"].json[\"subscriber\"][\"email_address\"]}}" - }, - "name": "ConvertKit11", - "type": "n8n-nodes-base.convertKit", - "typeVersion": 1, - "position": [ - 1350, - 550 - ], - "credentials": { - "convertKitApi": { - "id": "38", - "name": "ConvertKit creds" - } - }, - "id": "4c309c5b-a55f-47da-9dee-8620b505e501" - } - ], - "connections": { - "ConvertKit": { - "main": [ - [ - { - "node": "ConvertKit1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit1": { - "main": [ - [ - { - "node": "ConvertKit2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit2": { - "main": [ - [ - { - "node": "ConvertKit3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "ConvertKit", - "type": "main", - "index": 0 - }, - { - "node": "ConvertKit4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit5": { - "main": [ - [ - { - "node": "ConvertKit7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit4": { - "main": [ - [ - { - "node": "ConvertKit5", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit7": { - "main": [ - [ - { - "node": "ConvertKit8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit8": { - "main": [ - [ - { - "node": "ConvertKit9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit9": { - "main": [ - [ - { - "node": "ConvertKit10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit10": { - "main": [ - [ - { - "node": "ConvertKit11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ConvertKit11": { - "main": [ - [ - { - "node": "ConvertKit6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/54.json b/test-workflows/workflows/54.json deleted file mode 100644 index 7c7638e5b6..0000000000 --- a/test-workflows/workflows/54.json +++ /dev/null @@ -1,852 +0,0 @@ -{ - "createdAt": "2021-02-22T10:00:31.563Z", - "updatedAt": "2021-02-22T10:50:12.567Z", - "id": "54", - "name": "InvoiceNinja:Client:create getAll get delete:Expense:create getAll get delete:Invoice:create getAll get email delete:Payment:create get getAll delete:Quote:crea te getAll get email delete:Task:create getAll get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 850 - ], - "id": "1d47bc56-1b68-4ff0-8007-ae06b9c29610" - }, - { - "parameters": { - "additionalFields": { - "clientName": "=TestClient{{Date.now()}}" - } - }, - "name": "Invoice Ninja", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 500, - 390 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "5b32c13a-c05e-45b6-8fdc-6174ebc941ea" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Invoice Ninja1", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 650, - 390 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "1db90b48-219d-4e96-a782-7ff5823e9ee5" - }, - { - "parameters": { - "operation": "get", - "clientId": "={{$node[\"Invoice Ninja\"].json[\"id\"]}}", - "options": {} - }, - "name": "Invoice Ninja2", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 800, - 390 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "f3e516a2-8e52-4fdb-80ba-932c960f6976" - }, - { - "parameters": { - "operation": "delete", - "clientId": "={{$node[\"Invoice Ninja\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja3", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 950, - 390 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "cd219ff6-4105-4690-8d9c-918d8f35cdd9" - }, - { - "parameters": { - "resource": "expense", - "additionalFields": { - "amount": 100 - } - }, - "name": "Invoice Ninja4", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 500, - 550 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "1d666aef-f593-42d3-9b61-fb54fe36bf0e" - }, - { - "parameters": { - "resource": "expense", - "operation": "getAll", - "limit": 1 - }, - "name": "Invoice Ninja5", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 650, - 550 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "42b27738-9c2e-41e5-ba79-93efb0087729" - }, - { - "parameters": { - "resource": "expense", - "operation": "get", - "expenseId": "={{$node[\"Invoice Ninja4\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja6", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 800, - 550 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "578e0bbd-f7a9-4640-a3ad-de936eaacd79" - }, - { - "parameters": { - "resource": "expense", - "operation": "delete", - "expenseId": "={{$node[\"Invoice Ninja4\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja7", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 950, - 550 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "994c5b63-8463-49db-b22f-5019e9c0917b" - }, - { - "parameters": { - "resource": "invoice", - "additionalFields": { - "email": "test@gmail.com" - } - }, - "name": "Invoice Ninja8", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 500, - 710 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "4153127d-468e-4c08-9f06-768e4b192403" - }, - { - "parameters": { - "resource": "invoice", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Invoice Ninja9", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1250, - 710 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "9c236165-1824-44f9-8614-00e0a17a1103" - }, - { - "parameters": { - "resource": "invoice", - "operation": "get", - "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}", - "options": {} - }, - "name": "Invoice Ninja10", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1400, - 710 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "44b48920-a293-4ca9-9033-178a18b3bf21" - }, - { - "parameters": { - "resource": "invoice", - "operation": "email", - "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja11", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1550, - 710 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "aa19e0ab-0cbb-496c-a110-d16119d8a998" - }, - { - "parameters": { - "resource": "invoice", - "operation": "delete", - "invoiceId": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja12", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1700, - 710 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "9bb13cc8-610b-42c1-9f6d-8971091ae507" - }, - { - "parameters": { - "resource": "payment", - "invoice": "={{$node[\"Invoice Ninja8\"].json[\"id\"]}}", - "amount": 102, - "additionalFields": {} - }, - "name": "Invoice Ninja14", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 650, - 820 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "d19e4bad-d79d-4012-b32a-257cb0ebaa05" - }, - { - "parameters": { - "resource": "quote", - "additionalFields": { - "email": "test@gmail.com" - } - }, - "name": "Invoice Ninja15", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 500, - 1020 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "c00c4d59-128a-41eb-9518-b132948d1054" - }, - { - "parameters": { - "resource": "quote", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Invoice Ninja16", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 650, - 1020 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "0b4a39fa-9360-4011-b989-a42fc7d283ee" - }, - { - "parameters": { - "resource": "quote", - "operation": "get", - "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}", - "options": {} - }, - "name": "Invoice Ninja17", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 800, - 1020 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "3d2b2f4b-eed9-4419-849d-cae56ae9cba3" - }, - { - "parameters": { - "resource": "quote", - "operation": "email", - "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja18", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 950, - 1020 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "f99b80b6-5dda-4bc6-b2c4-1a43c715f23c" - }, - { - "parameters": { - "resource": "quote", - "operation": "delete", - "quoteId": "={{$node[\"Invoice Ninja15\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja19", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1100, - 1020 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "0a02025d-782e-4f1f-b17a-618449393a87" - }, - { - "parameters": { - "resource": "task", - "additionalFields": {} - }, - "name": "Invoice Ninja20", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 500, - 1180 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "42fbd794-c557-4b30-863a-fbbe0012772d" - }, - { - "parameters": { - "resource": "task", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Invoice Ninja21", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 650, - 1180 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "dd74acb7-ad5f-4a04-8b54-5d57846031dc" - }, - { - "parameters": { - "resource": "task", - "operation": "get", - "taskId": "={{$node[\"Invoice Ninja20\"].json[\"id\"]}}", - "options": {} - }, - "name": "Invoice Ninja22", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 800, - 1180 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "2066f094-5f18-4e14-9349-4ae32a803a4a" - }, - { - "parameters": { - "resource": "task", - "operation": "delete", - "taskId": "={{$node[\"Invoice Ninja20\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja23", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 950, - 1180 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "7f0705d7-cb3d-44d5-a47b-65605b653f4a" - }, - { - "parameters": { - "resource": "payment", - "operation": "get", - "paymentId": "={{$node[\"Invoice Ninja14\"].json[\"id\"]}}", - "options": {} - }, - "name": "Invoice Ninja24", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 800, - 820 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "a3f3f226-e931-4185-891c-b98f554a1634" - }, - { - "parameters": { - "resource": "payment", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Invoice Ninja25", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 950, - 820 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "e4660139-dc2c-4555-88aa-ab38b4ac1f31" - }, - { - "parameters": { - "resource": "payment", - "operation": "delete", - "paymentId": "={{$node[\"Invoice Ninja14\"].json[\"id\"]}}" - }, - "name": "Invoice Ninja26", - "type": "n8n-nodes-base.invoiceNinja", - "typeVersion": 1, - "position": [ - 1100, - 820 - ], - "credentials": { - "invoiceNinjaApi": { - "id": "39", - "name": "Invoice Ninja creds " - } - }, - "id": "465cbca5-b9b9-4e70-b245-a80defd3c7cd" - } - ], - "connections": { - "Invoice Ninja": { - "main": [ - [ - { - "node": "Invoice Ninja1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja1": { - "main": [ - [ - { - "node": "Invoice Ninja2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Invoice Ninja4", - "type": "main", - "index": 0 - }, - { - "node": "Invoice Ninja8", - "type": "main", - "index": 0 - }, - { - "node": "Invoice Ninja15", - "type": "main", - "index": 0 - }, - { - "node": "Invoice Ninja", - "type": "main", - "index": 0 - }, - { - "node": "Invoice Ninja20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja3": { - "main": [ - [] - ] - }, - "Invoice Ninja2": { - "main": [ - [ - { - "node": "Invoice Ninja3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja4": { - "main": [ - [ - { - "node": "Invoice Ninja5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja5": { - "main": [ - [ - { - "node": "Invoice Ninja6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja6": { - "main": [ - [ - { - "node": "Invoice Ninja7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja8": { - "main": [ - [ - { - "node": "Invoice Ninja14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja9": { - "main": [ - [ - { - "node": "Invoice Ninja10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja10": { - "main": [ - [ - { - "node": "Invoice Ninja11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja11": { - "main": [ - [ - { - "node": "Invoice Ninja12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja15": { - "main": [ - [ - { - "node": "Invoice Ninja16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja16": { - "main": [ - [ - { - "node": "Invoice Ninja17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja17": { - "main": [ - [ - { - "node": "Invoice Ninja18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja18": { - "main": [ - [ - { - "node": "Invoice Ninja19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja20": { - "main": [ - [ - { - "node": "Invoice Ninja21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja21": { - "main": [ - [ - { - "node": "Invoice Ninja22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja22": { - "main": [ - [ - { - "node": "Invoice Ninja23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja14": { - "main": [ - [ - { - "node": "Invoice Ninja24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja24": { - "main": [ - [ - { - "node": "Invoice Ninja25", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja25": { - "main": [ - [ - { - "node": "Invoice Ninja26", - "type": "main", - "index": 0 - } - ] - ] - }, - "Invoice Ninja26": { - "main": [ - [ - { - "node": "Invoice Ninja9", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/55.json b/test-workflows/workflows/55.json deleted file mode 100644 index b0f987c3cb..0000000000 --- a/test-workflows/workflows/55.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "createdAt": "2021-02-22T11:10:50.078Z", - "updatedAt": "2021-02-22T11:10:50.078Z", - "id": "55", - "name": "Hunter: domainSearch emailFinder emailVerifier", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "71b4c90c-bc69-40af-ae0d-4148c869e90f" - }, - { - "parameters": { - "domain": "n8n.io", - "limit": 1, - "filters": {} - }, - "name": "Hunter", - "type": "n8n-nodes-base.hunter", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "hunterApi": { - "id": "40", - "name": "Hunter creds" - } - }, - "id": "1d897521-8f0d-4e5b-8c16-e4db83af76de" - }, - { - "parameters": { - "operation": "emailFinder", - "domain": "n8n.io", - "firstname": "hosting", - "lastname": "test" - }, - "name": "Hunter1", - "type": "n8n-nodes-base.hunter", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "hunterApi": { - "id": "40", - "name": "Hunter creds" - } - }, - "id": "e3d7ac81-0e2f-4c1c-947e-99539c16049f" - }, - { - "parameters": { - "operation": "emailVerifier", - "email": "nodeqa@n8n.io" - }, - "name": "Hunter2", - "type": "n8n-nodes-base.hunter", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "hunterApi": { - "id": "40", - "name": "Hunter creds" - } - }, - "id": "6882fbb1-7af6-4585-90f3-d2881e1c07aa" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Hunter", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hunter": { - "main": [ - [ - { - "node": "Hunter1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Hunter1": { - "main": [ - [ - { - "node": "Hunter2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/56.json b/test-workflows/workflows/56.json deleted file mode 100644 index 08a87e29e5..0000000000 --- a/test-workflows/workflows/56.json +++ /dev/null @@ -1,1145 +0,0 @@ -{ - "createdAt": "2021-02-22T11:29:46.504Z", - "updatedAt": "2021-02-22T13:29:41.718Z", - "id": "56", - "name": "Trello:Board:*List:*Card:*Label:*CardComment:*Attachment:*CheckList:*", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - -580, - 310 - ], - "id": "60bc897d-49b0-41d9-9ecd-a241e69f23fd" - }, - { - "parameters": { - "resource": "board", - "name": "TestBoard", - "description": "test qa board", - "additionalFields": {} - }, - "name": "Trello", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - -300, - 311 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "d9bb9631-be15-44b7-8962-15adb038513f" - }, - { - "parameters": { - "resource": "board", - "operation": "update", - "id": "={{$node[\"Trello\"].json[\"id\"]}}", - "updateFields": { - "name": "UpatedTestBoard" - } - }, - "name": "Trello1", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2970, - 301 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "5240d7bc-d9d5-465e-87d5-7d68513b0552" - }, - { - "parameters": { - "resource": "board", - "operation": "get", - "id": "={{$node[\"Trello\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello2", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 3120, - 301 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "d7d28b3a-a2ec-4c45-aeab-ffd60fa7ed1c" - }, - { - "parameters": { - "resource": "board", - "operation": "delete", - "id": "={{$node[\"Trello\"].json[\"id\"]}}" - }, - "name": "Trello3", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 3270, - 301 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "bfd73a34-44a6-4067-9e68-47f217a6e96a" - }, - { - "parameters": { - "resource": "list", - "idBoard": "={{$node[\"Trello\"].json[\"id\"]}}", - "name": "To Test", - "additionalFields": {} - }, - "name": "Trello4", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - -160, - 411 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "f539269f-9813-4158-9cfb-3568adc2ad4a" - }, - { - "parameters": { - "resource": "list", - "operation": "update", - "id": "={{$node[\"Trello4\"].json[\"id\"]}}", - "updateFields": {} - }, - "name": "Trello5", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - -10, - 411 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "6cc9eb56-e9ac-48bd-965f-61da503191f8" - }, - { - "parameters": { - "resource": "list", - "operation": "get", - "id": "={{$node[\"Trello4\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello6", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 140, - 411 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "9ee41feb-6b2d-4b76-9e39-13a8a41553e6" - }, - { - "parameters": { - "resource": "list", - "operation": "getAll", - "id": "={{$node[\"Trello\"].json[\"id\"]}}", - "limit": 1, - "additionalFields": {} - }, - "name": "Trello7", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 290, - 411 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "34c2e5be-9ae1-4212-991b-8099e11fedb1" - }, - { - "parameters": { - "resource": "list", - "operation": "getCards", - "id": "={{$node[\"Trello4\"].json[\"id\"]}}", - "limit": 1, - "additionalFields": {} - }, - "name": "Trello8", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2550, - 401 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "6ecf2b95-1431-4ca6-85da-a099c2152169" - }, - { - "parameters": { - "resource": "list", - "operation": "archive", - "id": "={{$node[\"Trello4\"].json[\"id\"]}}" - }, - "name": "Trello9", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2840, - 401 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "92cfc2ec-b2bb-4e00-afae-1a540903886a" - }, - { - "parameters": { - "listId": "={{$node[\"Trello4\"].json[\"id\"]}}", - "name": "TestCard", - "description": "qa test card", - "additionalFields": {} - }, - "name": "Trello10", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 430, - 511 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "3ecf077b-90ae-484b-91f7-a134defb5a9b" - }, - { - "parameters": { - "resource": "cardComment", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "text": "Test comment" - }, - "name": "Trello11", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 590, - 591 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "f60d1db5-08b7-47d3-8e87-c6d6db863400" - }, - { - "parameters": { - "resource": "cardComment", - "operation": "update", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "commentId": "={{$node[\"Trello11\"].json[\"id\"]}}", - "text": "Updated comment" - }, - "name": "Trello12", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 740, - 591 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "b9b78d60-9ac7-47a7-a21d-91c0eea11529" - }, - { - "parameters": { - "resource": "cardComment", - "operation": "delete", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "commentId": "={{$node[\"Trello11\"].json[\"id\"]}}" - }, - "name": "Trello13", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 890, - 591 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "ab58cd8f-6d9c-4d13-9061-e7075baa09a0" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"Trello10\"].json[\"id\"]}}", - "updateFields": { - "name": "UpdateTestCard" - } - }, - "name": "Trello14", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2270, - 501 - ], - "alwaysOutputData": true, - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "4a02293e-8c77-4fec-96d4-b30ef8bef67d" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"Trello10\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello15", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2410, - 501 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "5f3eecb4-bdc3-41ee-8c08-6133996cfe6c" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Trello10\"].json[\"id\"]}}" - }, - "name": "Trello16", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2700, - 501 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "4b372bda-f6ba-4148-af60-7baa2750b199" - }, - { - "parameters": { - "resource": "label", - "operation": "create", - "boardId": "={{$node[\"Trello\"].json[\"id\"]}}", - "name": "TestLabel", - "color": "blue" - }, - "name": "Trello17", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 590, - 431 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "00028ce8-a909-46b7-a39b-2893f039dfb4" - }, - { - "parameters": { - "resource": "label", - "operation": "update", - "id": "={{$node[\"Trello17\"].json[\"id\"]}}", - "updateFields": { - "color": "orange" - } - }, - "name": "Trello18", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 730, - 431 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "4b45bec0-38ea-44fb-b8ce-2bdeb0111749" - }, - { - "parameters": { - "resource": "label", - "boardId": "={{$node[\"Trello\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello19", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 870, - 431 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "a6d224e2-f55b-41a4-9682-27221a17946e" - }, - { - "parameters": { - "resource": "checklist", - "operation": "create", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "name": "TestCheckList", - "additionalFields": {} - }, - "name": "Trello20", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 590, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "59a94a1d-eb67-48bc-82ea-065bd2ef4458" - }, - { - "parameters": { - "resource": "checklist", - "operation": "createCheckItem", - "checklistId": "={{$node[\"Trello20\"].json[\"id\"]}}", - "name": "TestCheckListItem", - "additionalFields": {} - }, - "name": "Trello21", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 740, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "1fd1b5e1-6029-4a2a-972e-43014d5fafc1" - }, - { - "parameters": { - "resource": "checklist", - "operation": "updateCheckItem", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", - "additionalFields": { - "name": "UpdatedCheckListItem", - "state": "complete" - } - }, - "name": "Trello22", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 920, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "8736bed5-3556-44ae-a95f-3bdf353beaab" - }, - { - "parameters": { - "resource": "checklist", - "operation": "getCheckItem", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello23", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1090, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "16a9b8ce-2f76-4bf2-89c0-5adaf2f82c13" - }, - { - "parameters": { - "resource": "checklist", - "operation": "completedCheckItems", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello24", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1270, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "6e2b2fd6-0fa0-44d8-8530-d95043cf117f" - }, - { - "parameters": { - "resource": "checklist", - "operation": "getCheckItem", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello25", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1440, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "0387d97e-31f6-4226-9da6-c029714fd5dd" - }, - { - "parameters": { - "resource": "checklist", - "operation": "deleteCheckItem", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "checkItemId": "={{$node[\"Trello21\"].json[\"id\"]}}" - }, - "name": "Trello26", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1600, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "368bfe8c-797a-4458-90bb-24c54393e038" - }, - { - "parameters": { - "resource": "checklist", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello27", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1740, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "c67011e2-140d-489d-bffd-7e3cd6704fee" - }, - { - "parameters": { - "resource": "checklist", - "operation": "get", - "id": "={{$node[\"Trello20\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello28", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1890, - 281 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "61c6e9e9-d539-43fa-ab8b-836c660a4182" - }, - { - "parameters": { - "resource": "checklist", - "operation": "delete", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "id": "={{$node[\"Trello20\"].json[\"id\"]}}" - }, - "name": "Trello29", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 2040, - 281 - ], - "alwaysOutputData": true, - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "3d78422e-1c16-4ece-8aac-c62178ff0687" - }, - { - "parameters": { - "resource": "attachment", - "operation": "create", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "url": "https://cdn-images-1.medium.com/max/159/1*b9a5qBIsH4Jn2b7Lqq9fHg@2x.png", - "additionalFields": {} - }, - "name": "Trello30", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 590, - 751 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "38fa57aa-5631-469e-9c6f-a2f6fa5e87cf" - }, - { - "parameters": { - "resource": "attachment", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello31", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 730, - 751 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "b6fa8d72-0a6e-471a-bfa9-46c70dc0f1cb" - }, - { - "parameters": { - "resource": "attachment", - "operation": "get", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "id": "={{$node[\"Trello30\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Trello32", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 890, - 751 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "d789d4bf-4a60-43da-963d-41fc5ea923e1" - }, - { - "parameters": { - "resource": "attachment", - "operation": "delete", - "cardId": "={{$node[\"Trello10\"].json[\"id\"]}}", - "id": "={{$node[\"Trello30\"].json[\"id\"]}}" - }, - "name": "Trello33", - "type": "n8n-nodes-base.trello", - "typeVersion": 1, - "position": [ - 1050, - 751 - ], - "credentials": { - "trelloApi": { - "id": "41", - "name": "Trello creds" - } - }, - "id": "7d6b761b-1dc0-45c6-852e-c5a7d1e7d3d7" - } - ], - "connections": { - "Trello": { - "main": [ - [ - { - "node": "Trello4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello1": { - "main": [ - [ - { - "node": "Trello2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello2": { - "main": [ - [ - { - "node": "Trello3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello4": { - "main": [ - [ - { - "node": "Trello5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello5": { - "main": [ - [ - { - "node": "Trello6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello6": { - "main": [ - [ - { - "node": "Trello7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello7": { - "main": [ - [ - { - "node": "Trello10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello8": { - "main": [ - [ - { - "node": "Trello16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello9": { - "main": [ - [ - { - "node": "Trello1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello10": { - "main": [ - [ - { - "node": "Trello30", - "type": "main", - "index": 0 - }, - { - "node": "Trello11", - "type": "main", - "index": 0 - }, - { - "node": "Trello17", - "type": "main", - "index": 0 - }, - { - "node": "Trello20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello11": { - "main": [ - [ - { - "node": "Trello12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello12": { - "main": [ - [ - { - "node": "Trello13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello14": { - "main": [ - [ - { - "node": "Trello15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello15": { - "main": [ - [ - { - "node": "Trello8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello16": { - "main": [ - [ - { - "node": "Trello9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello17": { - "main": [ - [ - { - "node": "Trello18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello18": { - "main": [ - [ - { - "node": "Trello19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello20": { - "main": [ - [ - { - "node": "Trello21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello21": { - "main": [ - [ - { - "node": "Trello22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello22": { - "main": [ - [ - { - "node": "Trello23", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello23": { - "main": [ - [ - { - "node": "Trello24", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello24": { - "main": [ - [ - { - "node": "Trello25", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello25": { - "main": [ - [ - { - "node": "Trello26", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello26": { - "main": [ - [ - { - "node": "Trello27", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello27": { - "main": [ - [ - { - "node": "Trello28", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello28": { - "main": [ - [ - { - "node": "Trello29", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello29": { - "main": [ - [ - { - "node": "Trello14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello30": { - "main": [ - [ - { - "node": "Trello31", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello31": { - "main": [ - [ - { - "node": "Trello32", - "type": "main", - "index": 0 - } - ] - ] - }, - "Trello32": { - "main": [ - [ - { - "node": "Trello33", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Trello", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/57.json b/test-workflows/workflows/57.json deleted file mode 100644 index b6713be8fe..0000000000 --- a/test-workflows/workflows/57.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "createdAt": "2021-02-22T13:24:15.920Z", - "updatedAt": "2021-07-14T13:33:54.633Z", - "id": "57", - "name": "Mindee:receipt:predict:invoice:predict", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 330, - 230 - ], - "id": "a2fb028a-a712-440d-b273-88e18c86f688" - }, - { - "parameters": {}, - "name": "Mindee", - "type": "n8n-nodes-base.mindee", - "typeVersion": 1, - "position": [ - 650, - 150 - ], - "credentials": { - "mindeeReceiptApi": { - "id": "44", - "name": "Mindee Receipt creds" - } - }, - "id": "d1c7c807-0f46-48d7-a6a8-07c6fbd9298e" - }, - { - "parameters": { - "url": "https://upload.wikimedia.org/wikipedia/commons/0/0b/ReceiptSwiss.jpg", - "responseFormat": "file", - "options": {}, - "headerParametersUi": { - "parameter": [ - { - "name": "User-agent", - "value": "n8n-io app" - } - ] - } - }, - "name": "HTTP Request", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 1, - "position": [ - 500, - 150 - ], - "id": "8313ed3a-96d5-4f34-8d5c-76bcdc7be95a" - }, - { - "parameters": { - "resource": "invoice" - }, - "name": "Mindee1", - "type": "n8n-nodes-base.mindee", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "mindeeInvoiceApi": { - "id": "45", - "name": "Mindee Invoice creds" - } - }, - "id": "1632bf97-ed0a-49cc-8c55-be7be333c91b" - }, - { - "parameters": { - "url": "https://www.invoicesimple.com/wp-content/uploads/2018/06/Sample-Invoice-printable.png", - "responseFormat": "file", - "options": {} - }, - "name": "HTTP Request1", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "id": "72d76ab1-1074-42ca-af84-cf8dc7eef32f" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "HTTP Request", - "type": "main", - "index": 0 - }, - { - "node": "HTTP Request1", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "main": [ - [ - { - "node": "Mindee", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request1": { - "main": [ - [ - { - "node": "Mindee1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/58.json b/test-workflows/workflows/58.json deleted file mode 100644 index 85be2be036..0000000000 --- a/test-workflows/workflows/58.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "createdAt": "2021-02-23T09:32:37.389Z", - "updatedAt": "2021-02-23T09:33:19.392Z", - "id": "58", - "name": "Todoist:Task:create get close reopen getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "1756bcfd-e673-45a5-abd8-9ee7b59e6a5c" - }, - { - "parameters": { - "project": 2259097055, - "labels": [ - 2156287483 - ], - "content": "Test Task", - "options": {} - }, - "name": "Todoist", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "9e3c07cc-af99-4d37-a4f4-f2d1786109aa" - }, - { - "parameters": { - "operation": "get", - "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" - }, - "name": "Todoist1", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "b617cd35-9714-4c7e-8913-c3d7819d3ad3" - }, - { - "parameters": { - "operation": "close", - "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" - }, - "name": "Todoist2", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "f9bc971d-a014-4ec9-b701-7fdfbb308454" - }, - { - "parameters": { - "operation": "reopen", - "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" - }, - "name": "Todoist3", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "f6d4be0d-b7c1-4eea-b1eb-ef2f7ed1b6b8" - }, - { - "parameters": { - "operation": "delete", - "taskId": "={{$node[\"Todoist\"].json[\"id\"]}}" - }, - "name": "Todoist4", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "967b63c7-4f60-4598-bdb3-9109ca2df94a" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Todoist5", - "type": "n8n-nodes-base.todoist", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "todoistApi": { - "id": "43", - "name": "Todoist creds" - } - }, - "id": "92240fb4-1d58-4dc9-bb29-db2804189e1d" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Todoist", - "type": "main", - "index": 0 - } - ] - ] - }, - "Todoist": { - "main": [ - [ - { - "node": "Todoist1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Todoist1": { - "main": [ - [ - { - "node": "Todoist2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Todoist2": { - "main": [ - [ - { - "node": "Todoist3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Todoist5": { - "main": [ - [ - { - "node": "Todoist4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Todoist3": { - "main": [ - [ - { - "node": "Todoist5", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/59.json b/test-workflows/workflows/59.json deleted file mode 100644 index 8aff1dd21a..0000000000 --- a/test-workflows/workflows/59.json +++ /dev/null @@ -1,381 +0,0 @@ -{ - "createdAt": "2021-02-23T10:02:06.947Z", - "updatedAt": "2021-06-03T12:24:52.296Z", - "id": "59", - "name": "SendGrid:List:create update get getAll delete:Contact:upsert getAll get delete:mail:send", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 150, - 400 - ], - "id": "cab42b4b-d902-4524-ba7c-a43e35900705" - }, - { - "parameters": { - "name": "=TestList{{Date.now()}}" - }, - "name": "SendGrid", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 350, - 300 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "79f6deca-f925-4162-8d81-14c466ace4ac" - }, - { - "parameters": { - "operation": "update", - "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}", - "name": "=UpdatedTestList{{Date.now()}}" - }, - "name": "SendGrid1", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "80d58751-f59c-4685-b9a8-c8a438171803" - }, - { - "parameters": { - "operation": "get", - "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}" - }, - "name": "SendGrid2", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "5f09a27b-d2f9-4dd2-ad82-1ca7679c0499" - }, - { - "parameters": { - "operation": "delete", - "listId": "={{$node[\"SendGrid\"].json[\"id\"]}}" - }, - "name": "SendGrid3", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "cfa7cafc-72ee-4197-916a-9fbe335eeecd" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "SendGrid4", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "2460a6da-9efa-4613-8083-58b940cefb38" - }, - { - "parameters": { - "resource": "contact", - "email": "=fakeemail{{Date.now()}}@gmail.com", - "additionalFields": { - "firstName": "Fake", - "lastName": "Email" - } - }, - "name": "SendGrid5", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 350, - 450 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "0c1183f8-3849-4019-88cd-0e9498e772ce" - }, - { - "parameters": { - "resource": "contact", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "SendGrid6", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 650, - 450 - ], - "executeOnce": false, - "alwaysOutputData": true, - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "ae3988ef-4046-4a88-81a4-3f9dec1c90f3" - }, - { - "parameters": { - "resource": "contact", - "operation": "get", - "contactId": "={{$node[\"SendGrid6\"].json[\"id\"]}}" - }, - "name": "SendGrid7", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "727c4520-d781-4914-ae55-8413368dfe4a" - }, - { - "parameters": { - "resource": "contact", - "operation": "delete", - "ids": "=undefined" - }, - "name": "SendGrid8", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 950, - 450 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "99abe2ed-524c-482b-9a87-f5043c7568cd" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(1000);\nreturn item;" - }, - "name": "FunctionItem", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "notes": "Sleep function", - "id": "5b5fc626-adc4-47af-811a-3785d04f8b75" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(5000);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 5 Seconds", - "type": "n8n-nodes-base.function", - "position": [ - 1400, - 200 - ], - "typeVersion": 1, - "id": "c1921fc7-275d-4fc9-bb8c-151d5a525b90" - }, - { - "parameters": { - "resource": "mail", - "fromEmail": "node8qa@gmail.com", - "fromName": "node,qa", - "toEmail": "node8qa@gmail.com", - "subject": "SendGrid test workflow", - "contentValue": "=Message at {{(new Date).toUTCString()}}", - "additionalFields": {} - }, - "name": "SendGrid9", - "type": "n8n-nodes-base.sendGrid", - "typeVersion": 1, - "position": [ - 350, - 600 - ], - "credentials": { - "sendGridApi": { - "id": "46", - "name": "SendGrid creds" - } - }, - "id": "189e1b95-2ad7-4c7e-8f87-b6114c4d99cb" - } - ], - "connections": { - "SendGrid": { - "main": [ - [ - { - "node": "SendGrid1", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid1": { - "main": [ - [ - { - "node": "SendGrid2", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid2": { - "main": [ - [ - { - "node": "SendGrid4", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid4": { - "main": [ - [ - { - "node": "SendGrid3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "SendGrid", - "type": "main", - "index": 0 - }, - { - "node": "SendGrid5", - "type": "main", - "index": 0 - }, - { - "node": "SendGrid9", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid5": { - "main": [ - [ - { - "node": "FunctionItem", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid6": { - "main": [ - [ - { - "node": "SendGrid7", - "type": "main", - "index": 0 - } - ] - ] - }, - "SendGrid7": { - "main": [ - [ - { - "node": "SendGrid8", - "type": "main", - "index": 0 - } - ] - ] - }, - "FunctionItem": { - "main": [ - [ - { - "node": "SendGrid6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/6.json b/test-workflows/workflows/6.json deleted file mode 100644 index b37eb33af7..0000000000 --- a/test-workflows/workflows/6.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "createdAt": "2021-04-14T14:13:32.964Z", - "updatedAt": "2021-04-14T14:57:59.464Z", - "id": "6", - "name": "Static files workflow", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "48c3bb01-34b1-416a-a29a-428f46b0b5a0" - }, - { - "parameters": { - "fileName": "=/tmp/{{$node[\"Set files\"].json[\"filename\"]}}", - "dataPropertyName": "binaryfile" - }, - "name": "Write Binary File", - "type": "n8n-nodes-base.writeBinaryFile", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "3975413e-bcd6-4e7a-a57d-a6d16d734dcd" - }, - { - "parameters": { - "functionCode": "files = [\n {\n mimeType: 'image/png',\n data: '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',\n fileName: 'n8n-logo.png',\n },\n\n {\n mimeType: 'application/pdf',\n data: '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3iVUEWUxQu8Tqou1xDr0TqGR2ExsJbYTO4rdxD7l0TMKxSJxojhNnCU+LtriAnGxuFRcIa4RN4hviJsv1nddIR/7zXgoAawCVgUTwSTwElAGLwWDYAiMgAqogTpogFHwcvAK8EqwOvgn8CqwJlgLvA5MAa8H64I3gDeC9cEG4E1gI7AJ2BRsBt4KtgHbgneC7cEOYCrYGUwDu4BdwW5gd7AH2BPsBfYG+4B9wX7g3WB/cAA4EL/QPwl+B34P/hs8Bf4A/sgYJaAAiqAHlEAv5R9On8tpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNqE0yacNuG0CadNOG3CaRNOm3DahNMmnDbhtAmnTThtwmkTTptw2oTTJpw24bQJp004bcJpE06bcNr8w+lzOm3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW384fU6nHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGkHTjtw2oHTDpx24LQDpx047cBpB047cNqB0w6cduC0A6cdOO3AaQdOO3DagdMOnHbgtAOnHTjtwGnnD6fP6bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047cJpF067cNqF0y6cduG0C6ddOO3CaRdOu3DahdMunHbhtAunXTjtwmkXTrtw2oXTLpx24bQLp1047f7enb4Yo7jROmcQ9oQIowR6QR9YBawKJoJ+8BJQBgNgEAyDEVABVdAAo+BlYDXwcvBKsDpYA7wGTAavBeuA14HXg3XBG8AbwfrgTWAjsDHYBGwG3gq2AFuCt4OtwTvAduCdYHvwLrADmAp2BDuBncE0sAvYFewGdgd7gIgfHMW2jSaA2MJRbOEotnA0CcQWjmILRy8FsZ2j2M7REMi29h9On8tpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcNqC0xactuC0BactOG3BaQtOW3DagtMWnLbgtAWnLThtwWkLTltw2oLTFpy24LQFpy04bcFpC05bcPp335++SE7bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG0zactuG0DadtOG3DaRtO23DahtM2nLbhtA2nbThtw2kbTttw2obTNpy24bQNp204bcNpG07bcNqG03b59+GIwhFaHLHY6Ox6hr4CaTpNBZJDGpAFZDFZSlYg8uMbFX6peoKcEqTy54ZrCXWEWmSFUJ9so1ObCq0wnnMPemxkCDls9GP6V0TL2CZMpsfH44JL52K5p4Wlwiq69Dr239vQU6GFtBe9KLSSPWESmUci+A/E5fgPRAr+91AX/3u4Ef97qE9bXorvhUpZ1E/KPLAYHAnafL1ewrt80AULwPngPMyVx8ty+DIO3xazMfU5sAh8Bp+M4/On8/lMnr6ENJfFQkX6AOZaCY7DtAks3ibqmM1rno1RwtkcsdrGY3oR/3wmT0t4OpvFKkUL8D4W1RMp1i2q4l0smmcKiZBmpBWeEe5FBpIMko1IEUV4aiwW27NsH7PnJe4JDyMknB0ezQwJD2QRXikR+zfM+sDs3dDyNDY1GxwCTgRngRMos1BCFi8hC0tm8RKyeAlZKCELJWShhCyU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kYPrt5OXtxSXaxZf+jNV8/IY1Cx6nMM59q+xJrj4U28LwUPKkqiMLlSdsLBPG+x1W7usXXdCsD8qLLTNy2LdXqFSjuSk0+CydwCDYzt/8yB/3Sv+qBSlj27BEMh/ABW4qmINCmVuZHN0cmVhbQ0KZW5kb2JqDQoyMCAwIG9iag0KPDwvVHlwZS9YUmVmL1NpemUgMjAvV1sgMSA0IDJdIC9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDgxPj4NCnN0cmVhbQ0KeJxjYACC//8ZgaQgAwOIqoVQW8EU42EwxcwPobaDKZZlEOo2mGIVYGBgAmoQYGCGUCwQihVCMUEoqBI2kIZfMB4jkMfeATaFI5eBAQACHwkSDQplbmRzdHJlYW0NCmVuZG9iag0KeHJlZg0KMCAyMQ0KMDAwMDAwMDAxMCA2NTUzNSBmDQowMDAwMDAwMDE3IDAwMDAwIG4NCjAwMDAwMDAxMjUgMDAwMDAgbg0KMDAwMDAwMDE4MSAwMDAwMCBuDQowMDAwMDAwNDUxIDAwMDAwIG4NCjAwMDAwMDA3ODMgMDAwMDAgbg0KMDAwMDAwMDk1MSAwMDAwMCBuDQowMDAwMDAxMTkwIDAwMDAwIG4NCjAwMDAwMDEyNDMgMDAwMDAgbg0KMDAwMDAwMTI5NiAwMDAwMCBuDQowMDAwMDAwMDExIDY1NTM1IGYNCjAwMDAwMDAwMTIgNjU1MzUgZg0KMDAwMDAwMDAxMyA2NTUzNSBmDQowMDAwMDAwMDE0IDY1NTM1IGYNCjAwMDAwMDAwMTUgNjU1MzUgZg0KMDAwMDAwMDAxNiA2NTUzNSBmDQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMTkyOCAwMDAwMCBuDQowMDAwMDAyMTU3IDAwMDAwIG4NCjAwMDAxODU1MTkgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dID4+DQpzdGFydHhyZWYNCjE4NTc5OQ0KJSVFT0YNCnhyZWYNCjAgMA0KdHJhaWxlcg0KPDwvU2l6ZSAyMS9Sb290IDEgMCBSL0luZm8gOSAwIFIvSURbPDMyMThENkU0QjEwRjNFNDk4MEE3OTdBQUUxRTVCOTZEPjwzMjE4RDZFNEIxMEYzRTQ5ODBBNzk3QUFFMUU1Qjk2RD5dIC9QcmV2IDE4NTc5OS9YUmVmU3RtIDE4NTUxOT4+DQpzdGFydHhyZWYNCjE4NjM3Ng0KJSVFT0Y=',\n fileName: '05-versions-space.pdf',\n },\n\n {\n mimeType: 'image/png',\n data: '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',\n fileName: 'n8n-screenshot.png',\n }\n]\n\nreturn files.map(file => ({json:{filename:file.fileName},binary:{binaryfile:file}}));\n" - }, - "name": "Set files", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "3f6a46bd-b5e9-4ff3-9562-335c4f540f02" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Set files", - "type": "main", - "index": 0 - } - ] - ] - }, - "Set files": { - "main": [ - [ - { - "node": "Write Binary File", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": {}, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/60.json b/test-workflows/workflows/60.json deleted file mode 100644 index 8da0c063f4..0000000000 --- a/test-workflows/workflows/60.json +++ /dev/null @@ -1,193 +0,0 @@ -{ - "createdAt": "2021-02-23T15:27:09.090Z", - "updatedAt": "2021-07-16T07:21:35.499Z", - "id": "60", - "name": "Taiga:Issue:create update get getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 170, - 350 - ], - "id": "f7f8b0e2-b017-4579-b9e0-3ba533335d3a" - }, - { - "parameters": { - "projectId": 399742, - "subject": "Test", - "additionalFields": { - "description": "TestIssue" - } - }, - "name": "Taiga", - "type": "n8n-nodes-base.taiga", - "typeVersion": 1, - "position": [ - 350, - 350 - ], - "credentials": { - "taigaApi": { - "id": "221", - "name": "taigaApi" - } - }, - "id": "c7b5324f-05d8-4eb7-a4f2-0f0a4c6de1da" - }, - { - "parameters": { - "operation": "update", - "projectId": 399742, - "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}", - "updateFields": { - "subject": "UpdatedTest" - } - }, - "name": "Taiga1", - "type": "n8n-nodes-base.taiga", - "typeVersion": 1, - "position": [ - 500, - 350 - ], - "credentials": { - "taigaApi": { - "id": "221", - "name": "taigaApi" - } - }, - "id": "c156fd69-32cb-4b38-b85a-aeac05032c23" - }, - { - "parameters": { - "operation": "get", - "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}" - }, - "name": "Taiga2", - "type": "n8n-nodes-base.taiga", - "typeVersion": 1, - "position": [ - 650, - 350 - ], - "credentials": { - "taigaApi": { - "id": "221", - "name": "taigaApi" - } - }, - "id": "2f3418a5-b09a-4db3-9cb8-c8d10b31a4b6" - }, - { - "parameters": { - "operation": "getAll", - "projectId": 399742, - "limit": 1, - "filters": {} - }, - "name": "Taiga3", - "type": "n8n-nodes-base.taiga", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "credentials": { - "taigaApi": { - "id": "221", - "name": "taigaApi" - } - }, - "id": "a100f3a0-d4ae-41f3-81d5-21101a91eef6" - }, - { - "parameters": { - "operation": "delete", - "issueId": "={{$node[\"Taiga\"].json[\"id\"]}}" - }, - "name": "Taiga4", - "type": "n8n-nodes-base.taiga", - "typeVersion": 1, - "position": [ - 950, - 350 - ], - "credentials": { - "taigaApi": { - "id": "221", - "name": "taigaApi" - } - }, - "id": "a1c664cd-c0f0-44af-94ce-6c650aee489c" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Taiga", - "type": "main", - "index": 0 - } - ] - ] - }, - "Taiga": { - "main": [ - [ - { - "node": "Taiga1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Taiga1": { - "main": [ - [ - { - "node": "Taiga2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Taiga2": { - "main": [ - [ - { - "node": "Taiga3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Taiga3": { - "main": [ - [ - { - "node": "Taiga4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/61.json b/test-workflows/workflows/61.json deleted file mode 100644 index 4ef0aaff54..0000000000 --- a/test-workflows/workflows/61.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "createdAt": "2021-02-23T16:32:02.682Z", - "updatedAt": "2021-07-14T13:38:50.003Z", - "id": "61", - "name": "Spotify:Artist:get getAlbums getRelatedArtists getTopTracks:Album:get getNewReleases getTracks:Track:get getAudioFeatures:Playlist:create getUserPlaylists get add getTracks delete:Player:recentylPlayed currentlyPlaying:Library:getLikedTracks", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "4509b9ad-036c-4042-9094-565f3831b616" - }, - { - "parameters": { - "resource": "artist", - "id": "0dwFxqYkvZLSA6U6XfQcDV" - }, - "name": "Spotify", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 440, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "1d211521-bf07-43d1-a537-76a43689659f" - }, - { - "parameters": { - "resource": "artist", - "operation": "getAlbums", - "id": "0dwFxqYkvZLSA6U6XfQcDV", - "limit": 1 - }, - "name": "Spotify1", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "5335e14c-1580-43cf-ab02-e0a6ff3a8682" - }, - { - "parameters": { - "resource": "artist", - "operation": "getRelatedArtists", - "id": "0dwFxqYkvZLSA6U6XfQcDV" - }, - "name": "Spotify2", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "87c2549e-56ae-4bce-94aa-f6a28da0a87c" - }, - { - "parameters": { - "resource": "artist", - "operation": "getTopTracks", - "id": "0dwFxqYkvZLSA6U6XfQcDV" - }, - "name": "Spotify3", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 600, - 460 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "69240ec6-ad37-46b3-80d2-b1656c2f1334" - }, - { - "parameters": { - "resource": "album", - "id": "={{$node[\"Spotify1\"].json[\"id\"]}}" - }, - "name": "Spotify4", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 810, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "00066fda-fa7f-4070-a687-fe253bfdd1cb" - }, - { - "parameters": { - "resource": "album", - "operation": "getTracks", - "id": "={{$node[\"Spotify1\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Spotify5", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 1100, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "a2a42efb-f876-4612-acfd-2325108cea84" - }, - { - "parameters": { - "resource": "track", - "operation": "get", - "id": "={{$node[\"Spotify5\"].json[\"id\"]}}" - }, - "name": "Spotify6", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "be6c985b-88be-424f-b7c3-76126a347140" - }, - { - "parameters": { - "resource": "track", - "operation": "getAudioFeatures", - "id": "={{$node[\"Spotify5\"].json[\"id\"]}}" - }, - "name": "Spotify7", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 1400, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "6c05d655-43c2-456d-a9d0-a80ac251c1f6" - }, - { - "parameters": { - "resource": "playlist", - "operation": "getUserPlaylists", - "limit": 1 - }, - "name": "Spotify8", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 450, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "36defd84-29a1-4f39-896e-4885daaec151" - }, - { - "parameters": { - "resource": "playlist", - "operation": "get", - "id": "={{$node[\"Spotify8\"].json[\"id\"]}}" - }, - "name": "Spotify9", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 600, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "61c3c3dd-c263-4f2d-bd2d-c30ee5cd24ed" - }, - { - "parameters": { - "resource": "playlist", - "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", - "trackID": "spotify:track:2ea6bt302Bq8Hiulp8Bn2C", - "additionalFields": {} - }, - "name": "Spotify10", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 750, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "1aba2540-e5c6-4e19-9afb-1ce402ee9e63" - }, - { - "parameters": { - "resource": "playlist", - "operation": "getTracks", - "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", - "limit": 1 - }, - "name": "Spotify11", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 900, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "b73d97e3-8689-4d5a-b63a-798b841f97df" - }, - { - "parameters": { - "resource": "playlist", - "operation": "delete", - "id": "={{$node[\"Spotify8\"].json[\"id\"]}}", - "trackID": "spotify:track:2ea6bt302Bq8Hiulp8Bn2C" - }, - "name": "Spotify12", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 1050, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "0a06cad9-d378-4206-8974-4a32f47c3ca2" - }, - { - "parameters": { - "operation": "recentlyPlayed", - "limit": 1 - }, - "name": "Spotify14", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 450, - 0 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "e053e2f6-6166-4642-aae0-45c9e1fd7e8a" - }, - { - "parameters": { - "operation": "currentlyPlaying" - }, - "name": "Spotify15", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 600, - 0 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "3f6ce69d-fe20-4ae8-9e0f-2fd6819829b8" - }, - { - "parameters": { - "resource": "album", - "operation": "getNewReleases", - "limit": 1, - "filters": { - "country": "DE" - } - }, - "name": "Spotify13", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "56209a90-208b-427e-91a6-2afeed0a2637" - }, - { - "parameters": { - "resource": "playlist", - "operation": "create", - "name": "=Playlist{{Date.now()}}", - "additionalFields": { - "public": true - } - }, - "name": "Spotify16", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 1200, - 610 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "59830b10-56b4-49b0-b2fd-c21829acb8f6" - }, - { - "parameters": { - "resource": "library", - "limit": 1 - }, - "name": "Spotify17", - "type": "n8n-nodes-base.spotify", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "spotifyOAuth2Api": { - "id": "223", - "name": "Spotify OAuth2 creds" - } - }, - "id": "8ffb18bc-7e7a-403c-bcb1-60732c28f358" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Spotify", - "type": "main", - "index": 0 - }, - { - "node": "Spotify8", - "type": "main", - "index": 0 - }, - { - "node": "Spotify14", - "type": "main", - "index": 0 - }, - { - "node": "Spotify17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify": { - "main": [ - [ - { - "node": "Spotify1", - "type": "main", - "index": 0 - }, - { - "node": "Spotify3", - "type": "main", - "index": 0 - }, - { - "node": "Spotify2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify1": { - "main": [ - [ - { - "node": "Spotify4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify4": { - "main": [ - [ - { - "node": "Spotify13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify5": { - "main": [ - [ - { - "node": "Spotify6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify6": { - "main": [ - [ - { - "node": "Spotify7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify8": { - "main": [ - [ - { - "node": "Spotify9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify9": { - "main": [ - [ - { - "node": "Spotify10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify10": { - "main": [ - [ - { - "node": "Spotify11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify11": { - "main": [ - [ - { - "node": "Spotify12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify14": { - "main": [ - [ - { - "node": "Spotify15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify13": { - "main": [ - [ - { - "node": "Spotify5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spotify12": { - "main": [ - [ - { - "node": "Spotify16", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/62.json b/test-workflows/workflows/62.json deleted file mode 100644 index 7f62ba0ca2..0000000000 --- a/test-workflows/workflows/62.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "createdAt": "2021-02-25T08:31:03.195Z", - "updatedAt": "2021-02-25T08:32:00.908Z", - "id": "62", - "name": "ProfitWell:Company:getSetting:Metric:getMontly getDaily", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 300, - 350 - ], - "id": "4dbeace0-2f7c-4987-b559-b94bf635956b" - }, - { - "parameters": { - "resource": "company" - }, - "name": "ProfitWell", - "type": "n8n-nodes-base.profitWell", - "typeVersion": 1, - "position": [ - 500, - 270 - ], - "credentials": { - "profitWellApi": { - "id": "51", - "name": "ProfitWell creds" - } - }, - "id": "641ae41a-7ffd-4644-af38-336ae09074eb" - }, - { - "parameters": { - "type": "monthly", - "options": {} - }, - "name": "ProfitWell1", - "type": "n8n-nodes-base.profitWell", - "typeVersion": 1, - "position": [ - 500, - 420 - ], - "credentials": { - "profitWellApi": { - "id": "51", - "name": "ProfitWell creds" - } - }, - "id": "fa1e6b3f-6aee-43da-a1a5-7a5f5e820430" - }, - { - "parameters": { - "type": "daily", - "month": "={{(new Date()).toISOString().slice(0,7)}}", - "simple": false, - "options": {} - }, - "name": "ProfitWell2", - "type": "n8n-nodes-base.profitWell", - "typeVersion": 1, - "position": [ - 650, - 420 - ], - "credentials": { - "profitWellApi": { - "id": "51", - "name": "ProfitWell creds" - } - }, - "id": "fba5b0a1-1e81-473c-9973-2d7f21a646d3" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ProfitWell", - "type": "main", - "index": 0 - }, - { - "node": "ProfitWell1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ProfitWell1": { - "main": [ - [ - { - "node": "ProfitWell2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/63.json b/test-workflows/workflows/63.json deleted file mode 100644 index 6866f74b1e..0000000000 --- a/test-workflows/workflows/63.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "createdAt": "2021-02-25T09:15:01.281Z", - "updatedAt": "2021-03-10T14:03:08.426Z", - "id": "63", - "name": "Segment:Identify:create:Track:event page", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 400 - ], - "id": "238a4bec-9ecf-47ad-a99b-98ac07a426da" - }, - { - "parameters": { - "userId": "rzfu5AbHm7U3rj7jMdqsjW", - "traits": { - "traitsUi": [ - { - "key": "type", - "value": "test" - } - ] - } - }, - "name": "Segment", - "type": "n8n-nodes-base.segment", - "typeVersion": 1, - "position": [ - 500, - 250 - ], - "credentials": { - "segmentApi": { - "id": "52", - "name": "Segment creds" - } - }, - "id": "228fb339-6315-4c04-bce3-18d4c16019ad" - }, - { - "parameters": { - "resource": "track", - "userId": "rzfu5AbHm7U3rj7jMdqsjW", - "event": "click" - }, - "name": "Segment1", - "type": "n8n-nodes-base.segment", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "segmentApi": { - "id": "52", - "name": "Segment creds" - } - }, - "id": "09f95724-5ae1-4bc3-9aa0-7010129aa7da" - }, - { - "parameters": { - "resource": "track", - "operation": "page", - "userId": "rzfu5AbHm7U3rj7jMdqsjW", - "name": "landing" - }, - "name": "Segment2", - "type": "n8n-nodes-base.segment", - "typeVersion": 1, - "position": [ - 650, - 400 - ], - "credentials": { - "segmentApi": { - "id": "52", - "name": "Segment creds" - } - }, - "id": "f80c0402-ca47-417c-bc0c-b5d4b0b463fc" - }, - { - "parameters": { - "resource": "group", - "userId": "rzfu5AbHm7U3rj7jMdqsjW", - "groupId": "=FixedGroupID", - "traits": { - "traitsUi": [ - { - "key": "mode", - "value": "test" - } - ] - } - }, - "name": "Segment3", - "type": "n8n-nodes-base.segment", - "typeVersion": 1, - "position": [ - 500, - 550 - ], - "credentials": { - "segmentApi": { - "id": "52", - "name": "Segment creds" - } - }, - "id": "58a1a209-2fbe-48aa-8b8f-186ce492cd12" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Segment", - "type": "main", - "index": 0 - }, - { - "node": "Segment1", - "type": "main", - "index": 0 - }, - { - "node": "Segment3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Segment1": { - "main": [ - [ - { - "node": "Segment2", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/64.json b/test-workflows/workflows/64.json deleted file mode 100644 index 8ca2540690..0000000000 --- a/test-workflows/workflows/64.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "createdAt": "2021-02-25T09:24:41.132Z", - "updatedAt": "2021-02-25T09:24:41.132Z", - "id": "64", - "name": "SIGNL4:Alert:send resolve", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e54d4fc1-752f-436e-8c86-139e373a54de" - }, - { - "parameters": { - "message": "=test{{Date.now()}}", - "additionalFields": { - "title": "=Title{{Date.now()}}" - } - }, - "name": "SIGNL4", - "type": "n8n-nodes-base.signl4", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "signl4Api": { - "id": "53", - "name": "Signal4 creds" - } - }, - "id": "870742ca-8ae9-44f6-a2e0-b6ec40298cd2" - }, - { - "parameters": { - "operation": "resolve", - "externalId": "={{$node[\"SIGNL4\"].json[\"eventId\"]}}" - }, - "name": "SIGNL", - "type": "n8n-nodes-base.signl4", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "signl4Api": { - "id": "53", - "name": "Signal4 creds" - } - }, - "id": "95ab047b-4159-45fd-9ec6-2d1b9c326a5f" - } - ], - "connections": { - "SIGNL4": { - "main": [ - [ - { - "node": "SIGNL", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "SIGNL4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/65.json b/test-workflows/workflows/65.json deleted file mode 100644 index 5e156df25b..0000000000 --- a/test-workflows/workflows/65.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "createdAt": "2021-02-25T09:43:01.461Z", - "updatedAt": "2021-02-25T09:43:01.461Z", - "id": "65", - "name": "Spontit:Push:create", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "e33d511e-ced8-4880-a890-e943c6aab5dc" - }, - { - "parameters": { - "content": "=Content {{Date.now()}}", - "additionalFields": { - "pushTitle": "=TestNotif {{Date.now()}}" - } - }, - "name": "Spontit", - "type": "n8n-nodes-base.spontit", - "typeVersion": 1, - "position": [ - 470, - 300 - ], - "credentials": { - "spontitApi": { - "id": "54", - "name": "Spontit creds" - } - }, - "id": "06d02833-8870-4d12-a60f-59c1763f0361" - }, - { - "parameters": { - "url": "={{$node[\"Spontit\"].json[\"message\"].replace(\"Pushed! Available at \",\"\")}}", - "responseFormat": "string", - "options": {} - }, - "name": "HTTP Request", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "e22a1da8-01dc-476f-b449-527888f5d58e" - }, - { - "parameters": { - "extractionValues": { - "values": [ - { - "key": "data-subscription", - "cssSelector": "#loadApp_script[data-subscription]", - "returnValue": "attribute", - "attribute": "data-subscription" - } - ] - }, - "options": {} - }, - "name": "HTML Extract", - "type": "n8n-nodes-base.htmlExtract", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "641a91ef-f7a2-4f1a-8876-bd0b0cf133cb" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Spontit", - "type": "main", - "index": 0 - } - ] - ] - }, - "Spontit": { - "main": [ - [ - { - "node": "HTTP Request", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "main": [ - [ - { - "node": "HTML Extract", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/66.json b/test-workflows/workflows/66.json deleted file mode 100644 index bb67cf78b5..0000000000 --- a/test-workflows/workflows/66.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "createdAt": "2021-02-25T10:14:44.063Z", - "updatedAt": "2021-02-25T10:14:44.063Z", - "id": "66", - "name": "Storyblok:Story:get getAll publish unpublish", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "0da0a738-e19c-4837-af8b-0a1ae6cd7943" - }, - { - "parameters": { - "source": "managementApi", - "operation": "getAll", - "space": 106530, - "returnAll": true, - "filters": {} - }, - "name": "Storyblok", - "type": "n8n-nodes-base.storyblok", - "typeVersion": 1, - "position": [ - 440, - 300 - ], - "credentials": { - "storyblokManagementApi": { - "id": "56", - "name": "Storyblok Management creds" - } - }, - "id": "76bbeb75-0065-41cf-943e-2cdf4cdc53b1" - }, - { - "parameters": { - "source": "managementApi", - "space": 106530, - "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}" - }, - "name": "Storyblok1", - "type": "n8n-nodes-base.storyblok", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "storyblokManagementApi": { - "id": "56", - "name": "Storyblok Management creds" - } - }, - "id": "27852b2f-f00f-4dee-8df5-30f7aaabbfc2" - }, - { - "parameters": { - "source": "managementApi", - "operation": "publish", - "space": 106530, - "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}", - "options": {} - }, - "name": "Storyblok2", - "type": "n8n-nodes-base.storyblok", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "storyblokManagementApi": { - "id": "56", - "name": "Storyblok Management creds" - } - }, - "id": "fa39cb57-fe77-46c3-9ac9-82d3c3b6fced" - }, - { - "parameters": { - "source": "managementApi", - "operation": "unpublish", - "space": 106530, - "storyId": "={{$node[\"Storyblok\"].json[\"id\"]}}" - }, - "name": "Storyblok3", - "type": "n8n-nodes-base.storyblok", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "storyblokManagementApi": { - "id": "56", - "name": "Storyblok Management creds" - } - }, - "id": "12a65877-f3a5-46ae-b033-0296c9c23314" - } - ], - "connections": { - "Storyblok": { - "main": [ - [ - { - "node": "Storyblok1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Storyblok1": { - "main": [ - [ - { - "node": "Storyblok2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Storyblok2": { - "main": [ - [ - { - "node": "Storyblok3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Storyblok", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/67.json b/test-workflows/workflows/67.json deleted file mode 100644 index c0215c9c97..0000000000 --- a/test-workflows/workflows/67.json +++ /dev/null @@ -1,791 +0,0 @@ -{ - "createdAt": "2021-02-25T11:13:34.019Z", - "updatedAt": "2021-05-03T07:55:48.432Z", - "id": "67", - "name": " Twist:Channel:create update get getAll archive unarchive delete:MessageConversation:create get getAll update delete:Thread:create get update getAll delete:Comment:create get update getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "27f84602-beb4-4f88-8218-2a97b75c2224" - }, - { - "parameters": { - "resource": "channel", - "workspaceId": 164330, - "name": "=TestChannel{{Date.now()}}", - "additionalFields": {} - }, - "name": "Twist", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "5f8b0940-95b9-4ceb-b582-978ecc2a3054" - }, - { - "parameters": { - "resource": "channel", - "operation": "update", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdatedChannel{{Date.now()}}" - } - }, - "name": "Twist1", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "ae38c81e-4500-4794-a2be-dd13baec5a12" - }, - { - "parameters": { - "resource": "channel", - "operation": "get", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" - }, - "name": "Twist2", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1450, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "13a50551-66d2-41c8-a223-b668d1760bb9" - }, - { - "parameters": { - "resource": "channel", - "operation": "getAll", - "workspaceId": 164330, - "limit": 1, - "filters": {} - }, - "name": "Twist3", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1600, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "ccd8ba04-a775-4726-8fd5-6bd7aab479be" - }, - { - "parameters": { - "workspaceId": 164330, - "conversationId": 1067233, - "content": "=Message {{Date.now()}}", - "additionalFields": {} - }, - "name": "Twist4", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 400, - 450 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "d71aab63-c8fc-4707-b1ef-e65c86b57889" - }, - { - "parameters": { - "resource": "channel", - "operation": "archive", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" - }, - "name": "Twist5", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1750, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "ad43fda9-1a8c-4742-a6f4-e06fd9ca6b71" - }, - { - "parameters": { - "resource": "channel", - "operation": "unarchive", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" - }, - "name": "Twist6", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1900, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "7694c0d8-a552-4447-b596-4fc4028286ca" - }, - { - "parameters": { - "resource": "channel", - "operation": "archive", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" - }, - "name": "Twist7", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 2050, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "117e67bf-96e6-45e2-815a-39a061c0b70f" - }, - { - "parameters": { - "resource": "channel", - "operation": "delete", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}" - }, - "name": "Twist8", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 2200, - 300 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "9f2ac87f-563d-46ea-9e84-20106ae3d298" - }, - { - "parameters": { - "operation": "get", - "id": "={{$node[\"Twist4\"].json[\"id\"]}}" - }, - "name": "Twist9", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "f18044fe-f54c-4508-8d7b-fd207d7592d7" - }, - { - "parameters": { - "operation": "getAll", - "workspaceId": 164330, - "conversationId": 1067233, - "additionalFields": { - "limit": 1 - } - }, - "name": "Twist10", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "9af8b264-9fd4-42d2-adb3-11c31cc4a2bc" - }, - { - "parameters": { - "operation": "update", - "id": "={{$node[\"Twist4\"].json[\"id\"]}}", - "updateFields": { - "actionsUi": { - "actionValues": [ - { - "action": "open_url", - "button_text": "community ?", - "type": "action", - "url": "http://community.n8n.io" - } - ] - } - } - }, - "name": "Twist11", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1000, - 450 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "bee483bf-33e8-4dda-992a-facd5cf7e678" - }, - { - "parameters": { - "operation": "delete", - "id": "={{$node[\"Twist4\"].json[\"id\"]}}" - }, - "name": "Twist12", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1200, - 450 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "7069faaa-b9f0-4a53-8a0f-8496697b8a0c" - }, - { - "parameters": { - "resource": "thread", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", - "title": "=Thread{{Date.now()}}", - "content": "test", - "additionalFields": {} - }, - "name": "Twist13", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 550, - 150 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "b7484a76-76e7-4b7f-9702-efd247ce3b7f" - }, - { - "parameters": { - "resource": "thread", - "operation": "get", - "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}" - }, - "name": "Twist14", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 700, - 150 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "6d2214c7-4046-48ad-8968-bd94b4fead5f" - }, - { - "parameters": { - "resource": "thread", - "operation": "update", - "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", - "updateFields": { - "content": "Updated Content" - } - }, - "name": "Twist15", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 850, - 150 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "f18cc9f8-8019-45a6-b129-4503d5e8aabe" - }, - { - "parameters": { - "resource": "thread", - "operation": "delete", - "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}" - }, - "name": "Twist16", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1150, - 150 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "0d712781-9323-48c6-9cc7-72cb43bb73d1" - }, - { - "parameters": { - "resource": "thread", - "operation": "getAll", - "channelId": "={{$node[\"Twist\"].json[\"id\"]}}", - "limit": 1, - "filters": {} - }, - "name": "Twist17", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1000, - 150 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "6921bbfc-1f9c-4939-874d-d507221603f1" - }, - { - "parameters": { - "resource": "comment", - "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", - "content": "=Comment{{Date.now()}}", - "additionalFields": {} - }, - "name": "Twist18", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 700, - 0 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "0c6fb7ef-6ed1-4361-860e-757cbfcaf1d6" - }, - { - "parameters": { - "resource": "comment", - "operation": "get", - "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}" - }, - "name": "Twist19", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 850, - 0 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "6a268279-ca4a-4a06-ab80-79a9a7eb46bd" - }, - { - "parameters": { - "resource": "comment", - "operation": "update", - "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}", - "updateFields": { - "content": "Updated Content" - } - }, - "name": "Twist20", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1000, - 0 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "21e3d0e7-7334-4540-88ed-bacb111bb3c4" - }, - { - "parameters": { - "resource": "comment", - "operation": "getAll", - "threadId": "={{$node[\"Twist13\"].json[\"id\"]}}", - "limit": 1, - "filters": {} - }, - "name": "Twist21", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1150, - 0 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "1a4f872d-f05f-474f-a7d9-97f2f046533b" - }, - { - "parameters": { - "resource": "comment", - "operation": "delete", - "commentId": "={{$node[\"Twist18\"].json[\"id\"]}}" - }, - "name": "Twist22", - "type": "n8n-nodes-base.twist", - "typeVersion": 1, - "position": [ - 1300, - 0 - ], - "credentials": { - "twistOAuth2Api": { - "id": "58", - "name": "Twist OAuth2 creds" - } - }, - "id": "d2496300-155c-4bd3-8acd-1d3c068dba37" - } - ], - "connections": { - "Twist": { - "main": [ - [ - { - "node": "Twist13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist1": { - "main": [ - [ - { - "node": "Twist2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist2": { - "main": [ - [ - { - "node": "Twist3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Twist", - "type": "main", - "index": 0 - }, - { - "node": "Twist4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist3": { - "main": [ - [ - { - "node": "Twist5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist5": { - "main": [ - [ - { - "node": "Twist6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist6": { - "main": [ - [ - { - "node": "Twist7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist7": { - "main": [ - [ - { - "node": "Twist8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist4": { - "main": [ - [ - { - "node": "Twist9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist9": { - "main": [ - [ - { - "node": "Twist10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist10": { - "main": [ - [ - { - "node": "Twist11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist11": { - "main": [ - [ - { - "node": "Twist12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist13": { - "main": [ - [ - { - "node": "Twist18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist14": { - "main": [ - [ - { - "node": "Twist15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist15": { - "main": [ - [ - { - "node": "Twist17", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist16": { - "main": [ - [ - { - "node": "Twist1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist17": { - "main": [ - [ - { - "node": "Twist16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist18": { - "main": [ - [ - { - "node": "Twist19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist19": { - "main": [ - [ - { - "node": "Twist20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist20": { - "main": [ - [ - { - "node": "Twist21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist21": { - "main": [ - [ - { - "node": "Twist22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Twist22": { - "main": [ - [ - { - "node": "Twist14", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/68.json b/test-workflows/workflows/68.json deleted file mode 100644 index f1ef09ab26..0000000000 --- a/test-workflows/workflows/68.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "createdAt": "2021-02-25T12:44:44.483Z", - "updatedAt": "2021-02-25T12:44:52.927Z", - "id": "68", - "name": "CircleCI:Pipeline:getAll get trigger", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "ccd210e8-4155-4e27-bcda-8ecde0543afe" - }, - { - "parameters": { - "operation": "getAll", - "vcs": "github", - "projectSlug": "nodemationqa/nodeQA", - "limit": 1, - "filters": {} - }, - "name": "CircleCI", - "type": "n8n-nodes-base.circleCi", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "circleCiApi": { - "id": "59", - "name": "CircleCI creds" - } - }, - "id": "72b39f65-9aef-4dd2-9887-a68e247e5c0d" - }, - { - "parameters": { - "vcs": "github", - "projectSlug": "nodemationqa/nodeQA" - }, - "name": "CircleCI1", - "type": "n8n-nodes-base.circleCi", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "circleCiApi": { - "id": "59", - "name": "CircleCI creds" - } - }, - "id": "094f3916-c071-47af-9d66-d54d88a826ff" - }, - { - "parameters": { - "operation": "trigger", - "vcs": "github", - "projectSlug": "nodemationqa/nodeQA", - "additionalFields": { - "branch": "main" - } - }, - "name": "CircleCI2", - "type": "n8n-nodes-base.circleCi", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "circleCiApi": { - "id": "59", - "name": "CircleCI creds" - } - }, - "id": "eeb564f3-d08d-4fdb-8c7a-19937bcb2817" - } - ], - "connections": { - "CircleCI": { - "main": [ - [ - { - "node": "CircleCI1", - "type": "main", - "index": 0 - } - ] - ] - }, - "CircleCI1": { - "main": [ - [ - { - "node": "CircleCI2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "CircleCI", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/69.json b/test-workflows/workflows/69.json deleted file mode 100644 index ff12c491bd..0000000000 --- a/test-workflows/workflows/69.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "createdAt": "2021-02-25T13:03:37.942Z", - "updatedAt": "2021-07-14T13:44:25.847Z", - "id": "69", - "name": "CoinGecko:Coin:get getAll history candlesick market marketChart price ticker:Event:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 230, - 430 - ], - "id": "a288470d-d151-4273-a50d-31c76cd1a2ce" - }, - { - "parameters": { - "resource": "event", - "limit": 1, - "options": { - "upcoming_events_only": false - } - }, - "name": "CoinGecko", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 400, - 290 - ], - "notes": "CAP_RESULTS_LENGTH=1", - "id": "b3b33313-3b7b-4569-aec4-77854b0c1980" - }, - { - "parameters": { - "limit": 1 - }, - "name": "CoinGecko1", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 400, - 550 - ], - "alwaysOutputData": true, - "id": "e8e650b8-2122-4974-ba3e-74889528cd74" - }, - { - "parameters": { - "operation": "history", - "coinId": "bitcoin", - "date": "2021-02-24T23:00:00.000Z", - "options": { - "localization": false - } - }, - "name": "CoinGecko2", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 770, - 330 - ], - "alwaysOutputData": true, - "id": "725e7306-f2dc-4c05-b6d8-ed75a394953b" - }, - { - "parameters": { - "operation": "get", - "coinId": "bitcoin", - "options": { - "localization": false - } - }, - "name": "CoinGecko3", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 630, - 330 - ], - "alwaysOutputData": true, - "id": "635e5c09-c4ca-4c05-ae93-7613f12c608a" - }, - { - "parameters": { - "operation": "candlestick", - "baseCurrency": "bitcoin", - "quoteCurrency": "eur", - "days": "1" - }, - "name": "CoinGecko4", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 910, - 330 - ], - "alwaysOutputData": true, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "54fc5a2b-34a8-4f41-a9dc-b4b156b2448f" - }, - { - "parameters": { - "operation": "market", - "baseCurrency": "btc", - "limit": 1, - "options": {} - }, - "name": "CoinGecko5", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 630, - 480 - ], - "id": "43972652-a7ac-4eb2-92b3-d5ea6328b135" - }, - { - "parameters": { - "operation": "marketChart", - "baseCurrency": "oxbitcoin", - "quoteCurrency": "btc", - "days": "1" - }, - "name": "CoinGecko6", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 630, - 630 - ], - "notes": "CAP_RESULTS_LENGTH=1", - "id": "857b16d9-deab-4a5c-9d6d-d79f83cc566e" - }, - { - "parameters": { - "operation": "price", - "baseCurrencies": [ - "ethereum-classic" - ], - "quoteCurrencies": [ - "btc" - ], - "options": {} - }, - "name": "CoinGecko7", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 630, - 780 - ], - "id": "c6d8a963-5bac-4841-a612-3d21b6ea71b6" - }, - { - "parameters": { - "operation": "ticker", - "coinId": "bitcoin", - "limit": 1, - "options": {} - }, - "name": "CoinGecko8", - "type": "n8n-nodes-base.coinGecko", - "typeVersion": 1, - "position": [ - 630, - 930 - ], - "notes": "IGNORED_PROPERTIES=target_coin_id", - "id": "16097486-6aaf-476a-8c93-8bfbbd25b056" - } - ], - "connections": { - "CoinGecko1": { - "main": [ - [ - { - "node": "CoinGecko3", - "type": "main", - "index": 0 - }, - { - "node": "CoinGecko5", - "type": "main", - "index": 0 - }, - { - "node": "CoinGecko6", - "type": "main", - "index": 0 - }, - { - "node": "CoinGecko7", - "type": "main", - "index": 0 - }, - { - "node": "CoinGecko8", - "type": "main", - "index": 0 - } - ] - ] - }, - "CoinGecko3": { - "main": [ - [ - { - "node": "CoinGecko2", - "type": "main", - "index": 0 - } - ] - ] - }, - "CoinGecko2": { - "main": [ - [ - { - "node": "CoinGecko4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "CoinGecko1", - "type": "main", - "index": 0 - }, - { - "node": "CoinGecko", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/70.json b/test-workflows/workflows/70.json deleted file mode 100644 index d32fbd88e2..0000000000 --- a/test-workflows/workflows/70.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "createdAt": "2021-02-25T13:38:22.940Z", - "updatedAt": "2021-02-25T13:38:22.940Z", - "id": "70", - "name": "Contentful-delivery-api:locale:getAll:entry:getAll:ContentType:get:Asset:getAll get:Space:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 260, - 390 - ], - "id": "92fcb1c3-e481-4350-910b-99de6956a87d" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": { - "content_type": "blogPost" - } - }, - "name": "Contentful", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 550, - 250 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "e85d9486-96dc-4f89-9ab6-b0b91b1968df" - }, - { - "parameters": { - "resource": "contentType", - "contentTypeId": "blogPost", - "additionalFields": {} - }, - "name": "Contentful1", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 550, - 420 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "4958d8ff-37dd-4086-a90b-fcf608a48d26" - }, - { - "parameters": { - "resource": "asset", - "limit": 1, - "additionalFields": {} - }, - "name": "Contentful2", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 550, - 570 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "4dabb763-4379-4d65-b484-0dc528535896" - }, - { - "parameters": { - "resource": "asset", - "operation": "get", - "assetId": "5UvpPFo279OoVXHLRXqlo9" - }, - "name": "Contentful3", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 700, - 570 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "disabled": true, - "id": "cd08d703-328c-4f6e-a0e5-5681f2aa208a" - }, - { - "parameters": { - "entryId": "={{$node[\"Contentful\"].json[\"author\"][\"sys\"][\"id\"]}}" - }, - "name": "Contentful4", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 700, - 250 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "disabled": true, - "id": "f53c8f63-386c-491a-b5f9-119f27aaa421" - }, - { - "parameters": { - "resource": "locale", - "limit": 1 - }, - "name": "Contentful5", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 550, - 100 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "429edf92-f2cf-4897-ba31-9413f57b0a46" - }, - { - "parameters": { - "resource": "space" - }, - "name": "Contentful6", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 550, - 730 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "36e76b3d-fb38-4abe-a4b9-81c8604f87f8" - } - ], - "connections": { - "Contentful": { - "main": [ - [ - { - "node": "Contentful4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Contentful2": { - "main": [ - [ - { - "node": "Contentful3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Contentful5", - "type": "main", - "index": 0 - }, - { - "node": "Contentful", - "type": "main", - "index": 0 - }, - { - "node": "Contentful1", - "type": "main", - "index": 0 - }, - { - "node": "Contentful2", - "type": "main", - "index": 0 - }, - { - "node": "Contentful6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/71.json b/test-workflows/workflows/71.json deleted file mode 100644 index b3a25cd4c4..0000000000 --- a/test-workflows/workflows/71.json +++ /dev/null @@ -1,235 +0,0 @@ -{ - "createdAt": "2021-02-25T13:44:10.456Z", - "updatedAt": "2021-02-25T13:44:14.960Z", - "id": "71", - "name": "Contentful-preview-api:locale:getAll:entry:getAll:ContentType:get:Asset:getAll get:Space:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 300, - 450 - ], - "id": "b4ecfdaf-3dd8-4462-a893-00fcf0965acb" - }, - { - "parameters": { - "source": "previewApi", - "operation": "getAll", - "limit": 1, - "additionalFields": { - "content_type": "blogPost" - } - }, - "name": "Contentful", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 510, - 130 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "6f0e510a-f47b-406b-a3e4-50160a3837f8" - }, - { - "parameters": { - "source": "previewApi", - "resource": "contentType", - "contentTypeId": "blogPost", - "additionalFields": {} - }, - "name": "Contentful1", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 510, - 450 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "f667eb16-7c5e-42a8-b94a-465a0c17de0a" - }, - { - "parameters": { - "source": "previewApi", - "resource": "asset", - "limit": 1, - "additionalFields": {} - }, - "name": "Contentful2", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 510, - 300 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "9b9910ed-bcbb-4126-8625-d5599ff716a3" - }, - { - "parameters": { - "source": "previewApi", - "resource": "asset", - "operation": "get", - "assetId": "5UvpPFo279OoVXHLRXqlo9" - }, - "name": "Contentful3", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "disabled": true, - "id": "0c26e50d-0829-41dc-8477-b93a812ff7cd" - }, - { - "parameters": { - "source": "previewApi", - "entryId": "={{$node[\"Contentful\"].json[\"author\"][\"sys\"][\"id\"]}}" - }, - "name": "Contentful4", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 660, - 130 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "disabled": true, - "id": "c6c48d22-6a1f-4c2c-82eb-2c7c0a43d3e6" - }, - { - "parameters": { - "source": "previewApi", - "resource": "locale", - "limit": 1 - }, - "name": "Contentful5", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 510, - 750 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "0ff365a7-b88e-4bc2-965f-4198dc2287ca" - }, - { - "parameters": { - "source": "previewApi", - "resource": "space" - }, - "name": "Contentful6", - "type": "n8n-nodes-base.contentful", - "typeVersion": 1, - "position": [ - 510, - 610 - ], - "credentials": { - "contentfulApi": { - "id": "47", - "name": "Contenful creds" - } - }, - "id": "43ab9aa7-dcef-416b-92fc-690040a35086" - } - ], - "connections": { - "Contentful": { - "main": [ - [ - { - "node": "Contentful4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Contentful2": { - "main": [ - [ - { - "node": "Contentful3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Contentful1", - "type": "main", - "index": 0 - }, - { - "node": "Contentful", - "type": "main", - "index": 0 - }, - { - "node": "Contentful5", - "type": "main", - "index": 0 - }, - { - "node": "Contentful2", - "type": "main", - "index": 0 - }, - { - "node": "Contentful6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/72.json b/test-workflows/workflows/72.json deleted file mode 100644 index 5a80032f38..0000000000 --- a/test-workflows/workflows/72.json +++ /dev/null @@ -1,589 +0,0 @@ -{ - "createdAt": "2021-02-25T14:32:07.257Z", - "updatedAt": "2021-11-12T13:03:17.136Z", - "id": "72", - "name": "Zulip:Message:sendPrivate update updateFile sendStream get delete:Stream:create getAll getSubscribed update delete:user:getAll get update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 460 - ], - "id": "b29fb793-aa1e-4659-a887-a6444a072274" - }, - { - "parameters": { - "to": [ - "nodeqa@n8n.io" - ], - "content": "=Message {{Date.now()}}" - }, - "name": "Zulip", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 430, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "2eafb3ef-51ac-4153-ba65-f1c736be64f3" - }, - { - "parameters": { - "operation": "update", - "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}", - "updateFields": { - "content": "=Update content {{Date.now()}}" - } - }, - "name": "Zulip1", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 590, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "70a21ba0-3781-4598-86c8-24fa97d813b2" - }, - { - "parameters": { - "operation": "sendStream", - "stream": 278954, - "topic": "topic demonstration", - "content": "Test Stream message {{Date.now()}}" - }, - "name": "Zulip2", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 740, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "b631cfd9-4085-4a3f-9898-f3a2dd6053cc" - }, - { - "parameters": { - "operation": "get", - "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}" - }, - "name": "Zulip3", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 890, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "bbfcd095-ab13-47d0-8826-cad588bb4269" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Zulip\"].json[\"id\"]}}" - }, - "name": "Zulip4", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 1040, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "af456d26-456e-4c8a-9df4-4dd5a9bd4f66" - }, - { - "parameters": { - "operation": "delete", - "messageId": "={{$node[\"Zulip2\"].json[\"id\"]}}" - }, - "name": "Zulip5", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "8167982f-4c29-4767-9b2f-4c41d3c1d6da" - }, - { - "parameters": { - "operation": "updateFile" - }, - "name": "Zulip6", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 590, - 470 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "27e360f0-add1-4478-b971-47cfaee55374" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 430, - 470 - ], - "id": "ca173086-6491-4487-a201-8e7b6ec08c3a" - }, - { - "parameters": { - "resource": "stream", - "subscriptions": { - "properties": [ - { - "name": "StreamTest", - "description": "testing stream from n8n" - } - ] - }, - "additionalFields": {} - }, - "name": "Zulip7", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 430, - 620 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "53b92b41-c256-45d1-af57-73cdc927e4ad" - }, - { - "parameters": { - "resource": "stream", - "operation": "getAll", - "additionalFields": { - "includeAllActive": false, - "includeDefault": false, - "includePublic": false - } - }, - "name": "Zulip8", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 600, - 620 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "95060b52-7fca-4fe6-89b7-3b95630d3876" - }, - { - "parameters": { - "resource": "stream", - "operation": "update", - "streamId": "={{$node[\"Function\"].json[\"stream_id\"]}}", - "additionalFields": { - "newName": "=UpdateStream{{Date.now()}}" - } - }, - "name": "Zulip9", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 910, - 620 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "afcf6e21-92b0-4b87-8de3-0fc7a309ab45" - }, - { - "parameters": { - "functionCode": "\nreturn [items[0]];" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 750, - 620 - ], - "notesInFlow": true, - "notes": "Convert multiple result into one", - "id": "281d2d4f-d8d9-4b9f-a150-f8650775d89f" - }, - { - "parameters": { - "resource": "stream", - "operation": "getSubscribed", - "additionalFields": {} - }, - "name": "Zulip10", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 590, - 760 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "6193ce51-b480-44e4-ab58-4c4045432e7d" - }, - { - "parameters": { - "resource": "stream", - "operation": "delete", - "streamId": "={{$node[\"Function\"].json[\"stream_id\"]}}" - }, - "name": "Zulip11", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 1050, - 620 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "8922c332-3948-4b92-a947-b06327a7cc95" - }, - { - "parameters": { - "resource": "user", - "operation": "getAll", - "additionalFields": {} - }, - "name": "Zulip12", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 440, - 910 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "c2eb822b-4473-46ca-a70e-0ab4b7e59647" - }, - { - "parameters": { - "resource": "user", - "operation": "get", - "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", - "additionalFields": {} - }, - "name": "Zulip13", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 590, - 910 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "id": "77661e37-ad74-4274-9bdb-c809305369a5" - }, - { - "parameters": { - "resource": "user", - "operation": "update", - "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", - "additionalFields": { - "fullName": "mario" - } - }, - "name": "Zulip14", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 750, - 910 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "disabled": true, - "id": "cb5c1ade-b500-48a9-a572-08b57316739f" - }, - { - "parameters": { - "resource": "user", - "operation": "update", - "userId": "={{$node[\"Zulip12\"].json[\"user_id\"]}}", - "additionalFields": { - "fullName": "nodeqa" - } - }, - "name": "Zulip15", - "type": "n8n-nodes-base.zulip", - "typeVersion": 1, - "position": [ - 890, - 910 - ], - "credentials": { - "zulipApi": { - "id": "60", - "name": "Zulip creds" - } - }, - "disabled": true, - "id": "bd6174d3-edf6-438c-b60b-b18312458624" - } - ], - "connections": { - "Zulip": { - "main": [ - [ - { - "node": "Zulip1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip1": { - "main": [ - [ - { - "node": "Zulip2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip2": { - "main": [ - [ - { - "node": "Zulip3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip3": { - "main": [ - [ - { - "node": "Zulip4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip4": { - "main": [ - [ - { - "node": "Zulip5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Zulip6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - }, - { - "node": "Zulip", - "type": "main", - "index": 0 - }, - { - "node": "Zulip7", - "type": "main", - "index": 0 - }, - { - "node": "Zulip12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip7": { - "main": [ - [ - { - "node": "Zulip8", - "type": "main", - "index": 0 - }, - { - "node": "Zulip10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip8": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Function": { - "main": [ - [ - { - "node": "Zulip9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip9": { - "main": [ - [ - { - "node": "Zulip11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip12": { - "main": [ - [ - { - "node": "Zulip13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip13": { - "main": [ - [ - { - "node": "Zulip14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zulip14": { - "main": [ - [ - { - "node": "Zulip15", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/73.json b/test-workflows/workflows/73.json deleted file mode 100644 index 459790ef77..0000000000 --- a/test-workflows/workflows/73.json +++ /dev/null @@ -1,857 +0,0 @@ -{ - "createdAt": "2021-02-25T15:49:55.037Z", - "updatedAt": "2021-06-07T14:53:16.628Z", - "id": "73", - "name": "Youtube:Channel:get getAll update:Playlist:create update getAll get delete:PlaylistItem:add getAll get delete:videoCategory:getAll:Video:rate get upload update delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 310, - 550 - ], - "id": "2ee04975-ff22-40e0-a3a9-d2542266c3bf" - }, - { - "parameters": { - "limit": 1, - "filters": { - "id": "UCkdph8FDLpq2UD2i_OlwErA" - }, - "options": {} - }, - "name": "YouTube", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "8688bf50-6db1-432a-851e-fa4cb2f33439" - }, - { - "parameters": { - "operation": "get", - "channelId": "UCiHVTkJtWSdc9N3h0nUGWLg" - }, - "name": "YouTube1", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "18508d2b-7662-4eb0-bb2b-82eebcd49f11" - }, - { - "parameters": { - "operation": "update", - "channelId": "={{$node[\"YouTube\"].json[\"id\"]}}", - "updateFields": { - "brandingSettingsUi": { - "channelSettingsValues": { - "channel": { - "description": "=Update description {{Date.now()}}" - } - } - } - } - }, - "name": "YouTube2", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "83fcbb4e-5ce7-470d-8b11-8f02964774f6" - }, - { - "parameters": { - "operation": "uploadBanner", - "channelId": "UCkdph8FDLpq2UD2i_OlwErA" - }, - "name": "YouTube3", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1250, - 300 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "disabled": true, - "id": "94865deb-30fa-4250-8637-ce93c0bc12d7" - }, - { - "parameters": { - "resource": "playlist", - "operation": "create", - "title": "=Test{{Date.now()}}", - "options": {} - }, - "name": "YouTube4", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 500, - 450 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "ca4cb125-1083-4e44-a05a-76191b2c6dd4" - }, - { - "parameters": { - "resource": "playlist", - "operation": "update", - "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", - "title": "=UpdatePlaylist{{Date.now()}}", - "updateFields": {} - }, - "name": "YouTube5", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 800, - 450 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "55cdf544-6908-4fc8-afad-2752f2373a14" - }, - { - "parameters": { - "resource": "playlist", - "limit": 1, - "filters": {}, - "options": {} - }, - "name": "YouTube6", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1860, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "7275ae09-2a2b-4a79-8a11-6b37b51c3426" - }, - { - "parameters": { - "resource": "playlistItem", - "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", - "videoId": "sJO3b0WXm8I", - "options": {} - }, - "name": "YouTube9", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 950, - 550 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "ed7dcec9-c5d5-4627-a859-0475ab304c88" - }, - { - "parameters": { - "resource": "playlistItem", - "operation": "getAll", - "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", - "part": [ - "id", - "status", - "contentDetails" - ], - "limit": 1, - "options": {} - }, - "name": "YouTube10", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1250, - 550 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "c02c85b3-59e4-4fcf-ad40-1fd9cad8c2f7" - }, - { - "parameters": { - "resource": "playlistItem", - "operation": "get", - "playlistItemId": "={{$node[\"YouTube9\"].json[\"id\"]}}", - "part": [ - "contentDetails", - "id", - "status" - ], - "options": {} - }, - "name": "YouTube11", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1400, - 550 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "13002ca6-7817-41c3-b1fe-0d078c8e82f9" - }, - { - "parameters": { - "resource": "playlistItem", - "operation": "delete", - "playlistItemId": "={{$node[\"YouTube9\"].json[\"id\"]}}", - "options": {} - }, - "name": "YouTube12", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1700, - 550 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "b0e8f742-b143-4eab-b227-482b3f772e3e" - }, - { - "parameters": { - "resource": "video", - "operation": "rate", - "videoId": "sJO3b0WXm8I", - "rating": "like" - }, - "name": "YouTube13", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 500, - 800 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "c13bc29b-3e16-4d0b-ba98-24156e1d64b0" - }, - { - "parameters": { - "resource": "video", - "operation": "get", - "videoId": "sJO3b0WXm8I", - "part": [ - "status", - "id", - "snippet" - ], - "options": {} - }, - "name": "YouTube14", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 800, - 800 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "dd846141-f074-41a3-b9f0-4e32ec04639e" - }, - { - "parameters": { - "resource": "video", - "operation": "upload", - "title": "Earth spin", - "regionCode": "DE", - "categoryId": "27", - "options": {} - }, - "name": "YouTube15", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1250, - 800 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "disabled": true, - "id": "4bd4cca1-e76c-4889-b5df-5d2eefe7d74c" - }, - { - "parameters": { - "url": "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4", - "responseFormat": "file", - "options": {} - }, - "name": "HTTP Request", - "type": "n8n-nodes-base.httpRequest", - "typeVersion": 1, - "position": [ - 950, - 800 - ], - "disabled": true, - "id": "b78b84af-4759-42b8-812a-af46ab04d6fb" - }, - { - "parameters": { - "resource": "video", - "operation": "update", - "videoId": "={{$node[\"YouTube15\"].json[\"id\"]}}", - "title": "=Updated Earth spin", - "regionCode": "DE", - "categoryId": "27", - "updateFields": {} - }, - "name": "YouTube16", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1400, - 800 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "disabled": true, - "id": "cdb2885f-ab9a-41b1-8e84-071aa040e91a" - }, - { - "parameters": { - "resource": "video", - "operation": "delete", - "videoId": "={{$node[\"YouTube15\"].json[\"id\"]}}", - "options": {} - }, - "name": "YouTube17", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 1690, - 800 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "disabled": true, - "id": "15ebb1e6-b8f5-458c-803a-ddd62105b07c" - }, - { - "parameters": { - "resource": "videoCategory", - "regionCode": "DE", - "limit": 1 - }, - "name": "YouTube18", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 500, - 630 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "8ec4326f-f615-4acd-bedf-7d138051058a" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 1100, - 300 - ], - "disabled": true, - "id": "01e62fe7-5350-4def-9640-18171cbde303" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 300 - ], - "typeVersion": 1, - "id": "bea9b966-028f-4891-892b-30415cb38452" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second1", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 450 - ], - "typeVersion": 1, - "id": "74460a7d-956c-4a9c-8357-de6b2d1e6076" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1100, - 550 - ], - "typeVersion": 1, - "id": "a565a893-fdb1-45f5-96b9-846146a10c14" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1550, - 550 - ], - "typeVersion": 1, - "id": "4659b2a6-7c8d-4290-9f57-b17e9c566c50" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second4", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 800 - ], - "typeVersion": 1, - "id": "15cca754-b296-4cb5-93d1-efd315175e9e" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second5", - "type": "n8n-nodes-base.function", - "position": [ - 1110, - 800 - ], - "typeVersion": 1, - "disabled": true, - "id": "caf5b31c-9e80-4796-8ded-c9e1401adbd8" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(500);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.5 second6", - "type": "n8n-nodes-base.function", - "position": [ - 1550, - 800 - ], - "typeVersion": 1, - "disabled": true, - "id": "8b08f732-62ba-48d3-980b-30b225c6a029" - }, - { - "parameters": { - "resource": "playlist", - "operation": "delete", - "playlistId": "={{$node[\"YouTube4\"].json[\"id\"]}}", - "options": {} - }, - "name": "YouTube7", - "type": "n8n-nodes-base.youTube", - "typeVersion": 1, - "position": [ - 2030, - 450 - ], - "credentials": { - "youTubeOAuth2Api": { - "id": "62", - "name": "YouTube OAuth2 creds" - } - }, - "id": "2b8b1d2f-5864-481d-a735-700380ccb2ea" - } - ], - "connections": { - "YouTube": { - "main": [ - [ - { - "node": "YouTube2", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube1": { - "main": [ - [ - { - "node": "Sleep 0.5 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube4": { - "main": [ - [ - { - "node": "Sleep 0.5 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube5": { - "main": [ - [ - { - "node": "YouTube9", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube6": { - "main": [ - [ - { - "node": "YouTube7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "YouTube13", - "type": "main", - "index": 0 - }, - { - "node": "YouTube18", - "type": "main", - "index": 0 - }, - { - "node": "YouTube4", - "type": "main", - "index": 0 - }, - { - "node": "YouTube1", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube9": { - "main": [ - [ - { - "node": "Sleep 0.5 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube10": { - "main": [ - [ - { - "node": "YouTube11", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube11": { - "main": [ - [ - { - "node": "Sleep 0.5 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube12": { - "main": [ - [ - { - "node": "YouTube6", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube13": { - "main": [ - [ - { - "node": "Sleep 0.5 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTTP Request": { - "main": [ - [ - { - "node": "Sleep 0.5 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube14": { - "main": [ - [ - { - "node": "HTTP Request", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube15": { - "main": [ - [ - { - "node": "YouTube16", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube16": { - "main": [ - [ - { - "node": "Sleep 0.5 second6", - "type": "main", - "index": 0 - } - ] - ] - }, - "YouTube2": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "YouTube3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second": { - "main": [ - [ - { - "node": "YouTube", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second1": { - "main": [ - [ - { - "node": "YouTube5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second2": { - "main": [ - [ - { - "node": "YouTube10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second3": { - "main": [ - [ - { - "node": "YouTube12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second4": { - "main": [ - [ - { - "node": "YouTube14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second5": { - "main": [ - [ - { - "node": "YouTube15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.5 second6": { - "main": [ - [ - { - "node": "YouTube17", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/74.json b/test-workflows/workflows/74.json deleted file mode 100644 index c841426c36..0000000000 --- a/test-workflows/workflows/74.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "createdAt": "2021-02-26T08:35:26.228Z", - "updatedAt": "2021-02-26T08:37:00.970Z", - "id": "74", - "name": "E-goi:Contact:create get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "dc6a5a64-8c22-4032-aace-0dea668a571c" - }, - { - "parameters": { - "list": 1, - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "E-goi", - "type": "n8n-nodes-base.egoi", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "egoiApi": { - "id": "63", - "name": "E-goi creds" - } - }, - "id": "25e5ee3b-abfb-427f-afc3-55b27e204f17" - }, - { - "parameters": { - "operation": "get", - "list": 1, - "contactId": "={{$node[\"E-goi\"].json[\"base\"][\"contact_id\"]}}" - }, - "name": "E-goi1", - "type": "n8n-nodes-base.egoi", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "egoiApi": { - "id": "63", - "name": "E-goi creds" - } - }, - "id": "13e4101f-896b-4786-b9b7-ac5a31ad06f5" - }, - { - "parameters": { - "operation": "getAll", - "list": 1, - "limit": 1 - }, - "name": "E-goi2", - "type": "n8n-nodes-base.egoi", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "egoiApi": { - "id": "63", - "name": "E-goi creds" - } - }, - "id": "39aa7752-aa1b-4db5-b1ed-988fa169b544" - }, - { - "parameters": { - "operation": "update", - "list": 1, - "contactId": "={{$node[\"E-goi\"].json[\"base\"][\"contact_id\"]}}", - "updateFields": { - "status": "inactive" - } - }, - "name": "E-goi3", - "type": "n8n-nodes-base.egoi", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "egoiApi": { - "id": "63", - "name": "E-goi creds" - } - }, - "id": "d9cf87e8-dff7-4b74-adbf-8bdf5c22f541" - } - ], - "connections": { - "E-goi": { - "main": [ - [ - { - "node": "E-goi1", - "type": "main", - "index": 0 - } - ] - ] - }, - "E-goi1": { - "main": [ - [ - { - "node": "E-goi2", - "type": "main", - "index": 0 - } - ] - ] - }, - "E-goi2": { - "main": [ - [ - { - "node": "E-goi3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "E-goi", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/75.json b/test-workflows/workflows/75.json deleted file mode 100644 index 2465c014eb..0000000000 --- a/test-workflows/workflows/75.json +++ /dev/null @@ -1,574 +0,0 @@ -{ - "createdAt": "2021-02-26T09:26:39.448Z", - "updatedAt": "2021-02-26T10:58:10.897Z", - "id": "75", - "name": "Harvest:Client:create update getAll get delete:Invoice:create update getAll get delete:Contact:create update get getAll delete:Company:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 150, - 300 - ], - "id": "2e356688-aa17-4377-99a8-85bdf89f4804" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "create", - "name": "=Client{{Date.now()}}", - "additionalFields": {} - }, - "name": "Harvest", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 230 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "9dff6c6e-f6e9-4754-9dd5-b68c3adf590f" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdatedClient{{Date.now()}}" - } - }, - "name": "Harvest1", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1310, - 230 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "239a0f84-f452-4d2b-b208-3024f68e2104" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest2", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1460, - 230 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "fb51704a-377b-4d9b-ad37-0f7dfac320c2" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest\"].json[\"id\"]}}" - }, - "name": "Harvest3", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1610, - 230 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "b1c22046-82ed-41a2-961b-fc2fc864a23c" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest\"].json[\"id\"]}}" - }, - "name": "Harvest4", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1760, - 230 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "5b049ab1-8091-4a1c-94b9-57b2239cfacf" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "company", - "accountId": 1416330 - }, - "name": "Harvest5", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 440 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "7119f466-ef7a-4ced-bef5-8deefbab4c79" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "contact", - "accountId": 1416330, - "operation": "create", - "firstName": "=FirstName{{Date.now()}}", - "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Harvest6", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "51db9f70-0f68-4722-8ebc-3edf8f342f47" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "contact", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest6\"].json[\"id\"]}}", - "updateFields": { - "first_name": "=FirstNameUpdated{{Date.now()}}" - } - }, - "name": "Harvest7", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "ee3d8921-fe23-4feb-a70b-6695cb2271cb" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "contact", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest6\"].json[\"id\"]}}" - }, - "name": "Harvest8", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e585c5d8-71f7-433a-ae83-70e0a24bed2d" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "contact", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest9", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e113e7b0-c8c2-4f11-a767-462b6a519c5c" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "contact", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest6\"].json[\"id\"]}}" - }, - "name": "Harvest10", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "7820c685-f762-4f66-b602-e20e4dda437a" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "invoice", - "accountId": 1416330, - "operation": "create", - "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", - "additionalFields": { - "subject": "=Subject{{Date.now()}}" - } - }, - "name": "Harvest11", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 140 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "6ffb33ca-58ba-456b-a9ac-d33f3f2e2eee" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "invoice", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}", - "updateFields": { - "subject": "=UpdatedSubject{{Date.now()}}" - } - }, - "name": "Harvest12", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 140 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "bb9bb3dc-ca74-4572-8c44-7bcaca67bd52" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "invoice", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest13", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 140 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "fd41f71c-0899-4887-ab85-8ba208e60b55" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "invoice", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" - }, - "name": "Harvest14", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1000, - 140 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "0b68daaf-464e-4e04-bdca-3b67ad74b33e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "invoice", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" - }, - "name": "Harvest15", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1150, - 140 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "270d7f79-c97f-4e4e-a0b7-596635eabf8c" - } - ], - "connections": { - "Harvest": { - "main": [ - [ - { - "node": "Harvest11", - "type": "main", - "index": 0 - }, - { - "node": "Harvest6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest1": { - "main": [ - [ - { - "node": "Harvest2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest2": { - "main": [ - [ - { - "node": "Harvest3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest3": { - "main": [ - [ - { - "node": "Harvest4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Harvest", - "type": "main", - "index": 0 - }, - { - "node": "Harvest5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest6": { - "main": [ - [ - { - "node": "Harvest7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest7": { - "main": [ - [ - { - "node": "Harvest8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest8": { - "main": [ - [ - { - "node": "Harvest9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest9": { - "main": [ - [ - { - "node": "Harvest10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest10": { - "main": [ - [ - { - "node": "Harvest1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest11": { - "main": [ - [ - { - "node": "Harvest12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest12": { - "main": [ - [ - { - "node": "Harvest13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest13": { - "main": [ - [ - { - "node": "Harvest14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest14": { - "main": [ - [ - { - "node": "Harvest15", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/76.json b/test-workflows/workflows/76.json deleted file mode 100644 index 9c9dfeca29..0000000000 --- a/test-workflows/workflows/76.json +++ /dev/null @@ -1,836 +0,0 @@ -{ - "createdAt": "2021-02-26T09:54:20.362Z", - "updatedAt": "2021-03-29T15:02:36.931Z", - "id": "76", - "name": "Harvest:Project:create update getAll get delete:Task:getAll get:TimeEntry:createByDuration createByStartEnd update getAll restartTime stopTime delete:User:me get getAll update", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 160, - 650 - ], - "id": "8833cc21-1b21-4e79-b6c7-4393f7466b69" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "create", - "name": "=RandomClient{{Date.now()}}", - "additionalFields": {} - }, - "name": "Harvest", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "1a1ea2ec-520a-4086-b786-358e6f6ee5d1" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest\"].json[\"id\"]}}" - }, - "name": "Harvest1", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "0e833b0d-00e0-4be1-a578-e73017f5065b" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "project", - "accountId": 1416330, - "operation": "create", - "name": "=Project{{Date.now()}}", - "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "Harvest2", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 350 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "4cd6a29d-0972-4169-af76-7b631f35a730" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "project", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}", - "updateFields": {} - }, - "name": "Harvest3", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 350 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e8ef59df-d4e2-4e27-91cc-f192082c7115" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "project", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest4", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 350 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "cabf6a20-aeda-435a-9290-0457d8c92e7d" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "project", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" - }, - "name": "Harvest5", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1000, - 350 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "48e37176-9c45-4e1f-943c-58fcc338b060" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "project", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" - }, - "name": "Harvest6", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1150, - 350 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "0618ef71-88d4-4e88-9114-59f98596768a" - }, - { - "parameters": { - "authentication": "oAuth2", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest7", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 500 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "8e653471-6477-4538-9691-f7c5f053798e" - }, - { - "parameters": { - "authentication": "oAuth2", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" - }, - "name": "Harvest8", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 500 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e0934891-d965-418d-88bc-13d10ef16171" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "createByDuration", - "projectId": "27925524", - "taskId": "16181821", - "spentDate": "2021-02-26T10:20:56.825Z", - "additionalFields": {} - }, - "name": "Harvest11", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "99c627a7-eb16-4e0b-8288-218fd2ff3f11" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}", - "updateFields": {} - }, - "name": "Harvest12", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "584e3df4-1d4c-4f2a-b2b9-3b5bd7ec47f9" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest13", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "4fc58913-81bf-45f9-8d2f-042898629b9e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "restartTime", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" - }, - "name": "Harvest14", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "c83b2bda-8290-4580-bbfc-cf94e922d90c" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "stopTime", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" - }, - "name": "Harvest15", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1000, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "dd9a6234-40c1-43e8-b901-b5580e1fa8b7" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest11\"].json[\"id\"]}}" - }, - "name": "Harvest16", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1150, - 650 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "77ebc40f-31b7-4a18-8461-e6508f5a28fc" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "createByStartEnd", - "projectId": "27925524", - "taskId": "16181821", - "spentDate": "2021-02-26T10:20:56.825Z", - "additionalFields": { - "ended_time": "5:00pm", - "started_time": "8:00am" - } - }, - "name": "Harvest17", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 800 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "57840c65-51d5-423f-a3c3-879093551e8e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "timeEntry", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest17\"].json[\"id\"]}}" - }, - "name": "Harvest18", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 800 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "1235197c-ef59-43fb-804b-6398c4cc1a1e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "accountId": 1416330 - }, - "name": "Harvest19", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 400, - 950 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "8a2caa48-eae1-4386-8a08-5977a03ad855" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest19\"].json[\"id\"]}}" - }, - "name": "Harvest20", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 550, - 950 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "bcd17478-d82d-45fc-bc97-5d06fddacb36" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "accountId": 1416330, - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Harvest21", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 950 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "f0c8258d-c081-48f1-b276-5cb95e147c7b" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest19\"].json[\"id\"]}}", - "updateFields": { - "timezone": "Berlin" - } - }, - "name": "Harvest22", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 950 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "efad7fea-318e-4125-8fdc-025c60629fbe" - }, - { - "parameters": { - "authentication": "oAuth2", - "accountId": 1416330, - "operation": "create", - "name": "=Task{{Date.now()}}", - "additionalFields": {} - }, - "name": "Harvest9", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 700, - 500 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "2fcd0aed-3cf8-4516-808d-74bc63b99373" - }, - { - "parameters": { - "authentication": "oAuth2", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest9\"].json[\"id\"]}}", - "updateFields": { - "name": "=Update{{$node[\"Harvest9\"].json[\"name\"]}}" - } - }, - "name": "Harvest10", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 850, - 500 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "0a403014-8e17-4efd-8c36-8b7edd360cfe" - }, - { - "parameters": { - "authentication": "oAuth2", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest9\"].json[\"id\"]}}" - }, - "name": "Harvest23", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 990, - 500 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "27bb65f0-6868-437b-b254-269442300f67" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Harvest", - "type": "main", - "index": 0 - }, - { - "node": "Harvest11", - "type": "main", - "index": 0 - }, - { - "node": "Harvest17", - "type": "main", - "index": 0 - }, - { - "node": "Harvest7", - "type": "main", - "index": 0 - }, - { - "node": "Harvest19", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest": { - "main": [ - [ - { - "node": "Harvest2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest2": { - "main": [ - [ - { - "node": "Harvest3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest3": { - "main": [ - [ - { - "node": "Harvest4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest4": { - "main": [ - [ - { - "node": "Harvest5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest5": { - "main": [ - [ - { - "node": "Harvest6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest6": { - "main": [ - [ - { - "node": "Harvest1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest7": { - "main": [ - [ - { - "node": "Harvest8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest11": { - "main": [ - [ - { - "node": "Harvest12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest12": { - "main": [ - [ - { - "node": "Harvest13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest13": { - "main": [ - [ - { - "node": "Harvest14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest14": { - "main": [ - [ - { - "node": "Harvest15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest15": { - "main": [ - [ - { - "node": "Harvest16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest17": { - "main": [ - [ - { - "node": "Harvest18", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest19": { - "main": [ - [ - { - "node": "Harvest20", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest20": { - "main": [ - [ - { - "node": "Harvest21", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest21": { - "main": [ - [ - { - "node": "Harvest22", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest8": { - "main": [ - [ - { - "node": "Harvest9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest9": { - "main": [ - [ - { - "node": "Harvest10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest10": { - "main": [ - [ - { - "node": "Harvest23", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/77.json b/test-workflows/workflows/77.json deleted file mode 100644 index f859517a2e..0000000000 --- a/test-workflows/workflows/77.json +++ /dev/null @@ -1,446 +0,0 @@ -{ - "createdAt": "2021-02-26T10:47:07.557Z", - "updatedAt": "2021-02-26T10:54:33.074Z", - "id": "77", - "name": "Harvest:Expense:create update get getAll delete:Estimate:create update get getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 220 - ], - "id": "2bb0bfe5-a448-40ae-a4be-0689032e87e9" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "create", - "name": "=Client{{Date.now()}}", - "additionalFields": {} - }, - "name": "Harvest", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "31ef3552-d142-4338-89a9-830f488aaee2" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "client", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest\"].json[\"id\"]}}" - }, - "name": "Harvest1", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1340, - 300 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "ea99bdb4-a747-4ab0-ac0a-9be4ae96549c" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "estimate", - "accountId": 1416330, - "operation": "create", - "clientId": "={{$node[\"Harvest\"].json[\"id\"]}}", - "additionalFields": { - "subject": "=Estimate{{Date.now()}}" - } - }, - "name": "Harvest2", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 600, - 400 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e1f7a876-0103-4b73-8669-81ef0994da09" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "estimate", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}", - "updateFields": { - "subject": "=UpdateSubject{{Date.now()}}" - } - }, - "name": "Harvest3", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 750, - 400 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "7989bc34-0e2d-4add-af9c-3fd7f69d3219" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "estimate", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" - }, - "name": "Harvest4", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 900, - 400 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "20378436-76b0-430d-94cf-e034f3534ad8" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "estimate", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest5", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1050, - 400 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "7bbdbf6e-2741-463f-8b1d-31c17d53972f" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "estimate", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest2\"].json[\"id\"]}}" - }, - "name": "Harvest6", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1200, - 400 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "c3c439b0-e7bf-4896-b948-77037cea12fa" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "expense", - "accountId": 1416330, - "operation": "create", - "projectId": "27925524", - "expenseCategoryId": "7737171", - "spentDate": "2021-02-26T10:51:40.112Z", - "additionalFields": { - "total_cost": "101" - } - }, - "name": "Harvest7", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 460, - 150 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "09619bf1-f1f8-425a-b24f-cdbaa294bda2" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "expense", - "accountId": 1416330, - "operation": "update", - "id": "={{$node[\"Harvest7\"].json[\"id\"]}}", - "updateFields": { - "total_cost": "201" - } - }, - "name": "Harvest8", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 600, - 150 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "ff10db35-ec3d-4684-85fa-682272052a4e" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "expense", - "accountId": 1416330, - "operation": "get", - "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" - }, - "name": "Harvest9", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 750, - 150 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "7788ca40-e46d-4332-ac73-1e4f8a6adddd" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "expense", - "accountId": 1416330, - "limit": 1, - "filters": {} - }, - "name": "Harvest10", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 900, - 150 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "e7595ae1-7392-4f84-b18c-3097d47ddff4" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "expense", - "accountId": 1416330, - "operation": "delete", - "id": "={{$node[\"Harvest7\"].json[\"id\"]}}" - }, - "name": "Harvest11", - "type": "n8n-nodes-base.harvest", - "typeVersion": 1, - "position": [ - 1050, - 150 - ], - "credentials": { - "harvestOAuth2Api": { - "id": "64", - "name": "Harvest OAuth2 creds" - } - }, - "id": "eb9f74f8-d780-4c55-9ffd-e3540adfe808" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Harvest", - "type": "main", - "index": 0 - }, - { - "node": "Harvest7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest": { - "main": [ - [ - { - "node": "Harvest2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest2": { - "main": [ - [ - { - "node": "Harvest3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest3": { - "main": [ - [ - { - "node": "Harvest4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest4": { - "main": [ - [ - { - "node": "Harvest5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest5": { - "main": [ - [ - { - "node": "Harvest6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest6": { - "main": [ - [ - { - "node": "Harvest1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest7": { - "main": [ - [ - { - "node": "Harvest8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest8": { - "main": [ - [ - { - "node": "Harvest9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest9": { - "main": [ - [ - { - "node": "Harvest10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Harvest10": { - "main": [ - [ - { - "node": "Harvest11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/78.json b/test-workflows/workflows/78.json deleted file mode 100644 index 1ab0e5170b..0000000000 --- a/test-workflows/workflows/78.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "createdAt": "2021-02-26T13:19:21.412Z", - "updatedAt": "2021-06-07T09:10:58.362Z", - "id": "78", - "name": "NASA:ALL:", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 140, - 530 - ], - "id": "58ef3e12-49b0-40f0-a5d1-264dfe9b0e17" - }, - { - "parameters": { - "resource": "asteroidNeoBrowse", - "limit": 1 - }, - "name": "NASA", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 220 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "bb5be736-03e5-46d7-997d-e64f6673b783" - }, - { - "parameters": { - "resource": "asteroidNeoLookup", - "asteroidId": "={{$node[\"NASA\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "NASA1", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 620, - 220 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "e6cee073-75cd-4ff0-9c2d-a6c8287bcf0e" - }, - { - "parameters": { - "resource": "asteroidNeoFeed", - "additionalFields": { - "startDate": "2020-08-10T22:00:00.000Z", - "endDate": "2020-08-10T22:00:00.000Z" - } - }, - "name": "NASA2", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 790, - 220 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "3b6fad60-3b18-46c8-89d9-7097d678c124" - }, - { - "parameters": { - "resource": "donkiCoronalMassEjection", - "additionalFields": {} - }, - "name": "NASA3", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 370 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "d3ec4cda-449e-476f-ac32-0d31a8a96f58" - }, - { - "parameters": { - "resource": "donkiInterplanetaryShock", - "additionalFields": { - "location": "STEREO A" - } - }, - "name": "NASA4", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 680 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "0d290992-c9b2-411f-bba0-1bc420a412f1" - }, - { - "parameters": { - "resource": "donkiSolarFlare", - "additionalFields": {} - }, - "name": "NASA5", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 520 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "188fe560-87ec-4f60-a844-c0c48b7de306" - }, - { - "parameters": { - "resource": "donkiSolarEnergeticParticle", - "additionalFields": {} - }, - "name": "NASA6", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 650, - 670 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "741adc5a-c4c6-48c8-bced-41b14831092e" - }, - { - "parameters": { - "resource": "donkiMagnetopauseCrossing", - "additionalFields": {} - }, - "name": "NASA7", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 650, - 370 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "7ce89dd3-c364-49dd-9542-fd0bcfff9d63" - }, - { - "parameters": { - "resource": "donkiRadiationBeltEnhancement", - "additionalFields": {} - }, - "name": "NASA8", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 650, - 520 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "ed4e394b-49ed-4c92-9a54-6fc065723251" - }, - { - "parameters": { - "resource": "donkiHighSpeedStream", - "additionalFields": {} - }, - "name": "NASA9", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 830 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "4c483b64-1315-4531-ae03-12a825bdaf33" - }, - { - "parameters": { - "resource": "donkiWsaEnlilSimulation", - "additionalFields": {} - }, - "name": "NASA10", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 650, - 830 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "3e8ad703-1880-45df-b95b-309dba2f63ad" - }, - { - "parameters": { - "resource": "donkiNotifications", - "additionalFields": {} - }, - "name": "NASA11", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 980 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "e650443b-32c4-49dc-beee-49e361494158" - }, - { - "parameters": { - "resource": "earthImagery", - "lat": 52.52, - "lon": 13.405, - "additionalFields": { - "date": "=2019-05-05" - } - }, - "name": "NASA12", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 620, - 980 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "86c4b0a2-7a39-4794-b3e0-a6dd188496e9" - }, - { - "parameters": { - "additionalFields": { - "date": "=2019-05-05" - } - }, - "name": "NASA14", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 450, - 70 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "id": "5d726ffa-d7b5-46dc-9e78-a2e550cbe145" - }, - { - "parameters": { - "resource": "earthAssets", - "lat": 0, - "lon": 0, - "additionalFields": { - "date": "2021-01-31T23:00:00.000Z" - } - }, - "name": "NASA13", - "type": "n8n-nodes-base.nasa", - "typeVersion": 1, - "position": [ - 160, - 790 - ], - "credentials": { - "nasaApi": { - "id": "49", - "name": "Nasa creds" - } - }, - "disabled": true, - "id": "1483c3eb-ca7b-4908-a454-4b573e56ed3a" - } - ], - "connections": { - "NASA": { - "main": [ - [ - { - "node": "NASA1", - "type": "main", - "index": 0 - } - ] - ] - }, - "NASA1": { - "main": [ - [ - { - "node": "NASA2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "NASA", - "type": "main", - "index": 0 - }, - { - "node": "NASA3", - "type": "main", - "index": 0 - }, - { - "node": "NASA7", - "type": "main", - "index": 0 - }, - { - "node": "NASA5", - "type": "main", - "index": 0 - }, - { - "node": "NASA8", - "type": "main", - "index": 0 - }, - { - "node": "NASA6", - "type": "main", - "index": 0 - }, - { - "node": "NASA4", - "type": "main", - "index": 0 - }, - { - "node": "NASA9", - "type": "main", - "index": 0 - }, - { - "node": "NASA10", - "type": "main", - "index": 0 - }, - { - "node": "NASA11", - "type": "main", - "index": 0 - }, - { - "node": "NASA12", - "type": "main", - "index": 0 - }, - { - "node": "NASA14", - "type": "main", - "index": 0 - }, - { - "node": "NASA13", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/79.json b/test-workflows/workflows/79.json deleted file mode 100644 index edc5d9782b..0000000000 --- a/test-workflows/workflows/79.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "createdAt": "2021-02-26T15:36:21.900Z", - "updatedAt": "2021-02-26T15:40:43.297Z", - "id": "79", - "name": "ZohoCRM:Lead:create update get getAll delete getFields", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "08024b38-dc6e-48be-917a-96cba2a48960" - }, - { - "parameters": { - "lastName": "=Last{{Date.now()}}", - "additionalFields": {} - }, - "name": "Zoho CRM", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "4496eb6a-f9a8-4e82-b160-7afe3ca37483" - }, - { - "parameters": { - "operation": "update", - "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}", - "additionalFields": { - "lastName": "=UpdatedLast{{Date.now()}}" - } - }, - "name": "Zoho CRM1", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "e34f782e-6772-4fbe-b332-8d9ecfbae345" - }, - { - "parameters": { - "operation": "get", - "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}" - }, - "name": "Zoho CRM2", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "b225d319-d025-408c-9414-b665fc807993" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Zoho CRM3", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "0c08ddd8-cacd-49b6-b2e0-0ab54013e93b" - }, - { - "parameters": { - "operation": "delete", - "leadId": "={{$node[\"Zoho CRM\"].json[\"id\"]}}" - }, - "name": "Zoho CRM4", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 1050, - 300 - ], - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "5e6706ca-53f4-4b90-ab9d-1396f59f5461" - }, - { - "parameters": { - "operation": "getFields" - }, - "name": "Zoho CRM5", - "type": "n8n-nodes-base.zohoCrm", - "typeVersion": 1, - "position": [ - 1200, - 300 - ], - "credentials": { - "zohoOAuth2Api": { - "id": "67", - "name": "Zoho OAuth2 creds" - } - }, - "id": "6deb175d-2b56-4bef-a5fe-f8b77181520b" - } - ], - "connections": { - "Zoho CRM": { - "main": [ - [ - { - "node": "Zoho CRM1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoho CRM1": { - "main": [ - [ - { - "node": "Zoho CRM2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoho CRM2": { - "main": [ - [ - { - "node": "Zoho CRM3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoho CRM3": { - "main": [ - [ - { - "node": "Zoho CRM4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zoho CRM4": { - "main": [ - [ - { - "node": "Zoho CRM5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Zoho CRM", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/80.json b/test-workflows/workflows/80.json deleted file mode 100644 index 747916a293..0000000000 --- a/test-workflows/workflows/80.json +++ /dev/null @@ -1,449 +0,0 @@ -{ - "createdAt": "2021-02-26T16:19:59.941Z", - "updatedAt": "2021-02-26T16:20:47.874Z", - "id": "80", - "name": "Zendesk:Ticket:create update get getAll delete:TicketField:getAll get:User:create update getAll search get delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 200, - 460 - ], - "id": "4b8759d6-5b80-4936-93a5-b13fb5796186" - }, - { - "parameters": { - "authentication": "oAuth2", - "description": "=Description{{Date.now()}}", - "additionalFields": {} - }, - "name": "Zendesk", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "d19f346d-1951-48ac-a774-6816c8547a9d" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "update", - "id": "={{$node[\"Zendesk\"].json[\"id\"]}}", - "updateFields": { - "subject": "=UpdatedSubject{{Date.now()}}" - } - }, - "name": "Zendesk1", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "f5ff3626-892b-44ad-8eda-f5c753520a17" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "get", - "id": "={{$node[\"Zendesk\"].json[\"id\"]}}" - }, - "name": "Zendesk2", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "6a72a337-f588-4c4b-844f-f96b68b2c464" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "getAll", - "limit": 1, - "options": {} - }, - "name": "Zendesk3", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "a9590bd0-c6da-4d3a-9c8d-c86c00924373" - }, - { - "parameters": { - "authentication": "oAuth2", - "operation": "delete", - "id": "={{$node[\"Zendesk\"].json[\"id\"]}}" - }, - "name": "Zendesk4", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "0ea03844-4270-4aad-a614-e60d2008e773" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "ticketField", - "operation": "getAll", - "limit": 1 - }, - "name": "Zendesk5", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 400, - 450 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "714ab216-9da0-496d-acfa-3c82f16a22f4" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "ticketField", - "ticketFieldId": "={{$node[\"Zendesk5\"].json[\"id\"]}}" - }, - "name": "Zendesk6", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 550, - 450 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "8ee850ce-35e2-435b-8abb-e2a8820362b3" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "name": "=Name{{Date.now()}}", - "additionalFields": {} - }, - "name": "Zendesk7", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 400, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "999a937f-cb90-448f-abe1-49efa8b5c6e4" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "operation": "update", - "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}", - "updateFields": { - "name": "=UpdatedName{{Date.now()}}" - } - }, - "name": "Zendesk8", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 550, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "3ca61e62-ea9e-4431-b099-e6185c7546bb" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "Zendesk9", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 700, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "6ab5a5c4-715e-4db4-9e60-44ffc3d7858b" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "operation": "search", - "limit": 1, - "filters": {} - }, - "name": "Zendesk10", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 850, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "1c032158-0872-4518-b7d9-c41cd7402baf" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "operation": "get", - "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}" - }, - "name": "Zendesk11", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 1000, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "5b713747-e0ff-4918-bfa9-daac79899b90" - }, - { - "parameters": { - "authentication": "oAuth2", - "resource": "user", - "operation": "delete", - "id": "={{$node[\"Zendesk7\"].json[\"id\"]}}" - }, - "name": "Zendesk12", - "type": "n8n-nodes-base.zendesk", - "typeVersion": 1, - "position": [ - 1150, - 600 - ], - "credentials": { - "zendeskOAuth2Api": { - "id": "68", - "name": "Zendesk OAuth2 " - } - }, - "id": "e8af8a3e-7cc0-4f30-9498-aca3837919cd" - } - ], - "connections": { - "Zendesk": { - "main": [ - [ - { - "node": "Zendesk1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk1": { - "main": [ - [ - { - "node": "Zendesk2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk2": { - "main": [ - [ - { - "node": "Zendesk3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk3": { - "main": [ - [ - { - "node": "Zendesk4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk5": { - "main": [ - [ - { - "node": "Zendesk6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Zendesk", - "type": "main", - "index": 0 - }, - { - "node": "Zendesk5", - "type": "main", - "index": 0 - }, - { - "node": "Zendesk7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk7": { - "main": [ - [ - { - "node": "Zendesk8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk8": { - "main": [ - [ - { - "node": "Zendesk9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk9": { - "main": [ - [ - { - "node": "Zendesk10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk10": { - "main": [ - [ - { - "node": "Zendesk11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Zendesk11": { - "main": [ - [ - { - "node": "Zendesk12", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/81.json b/test-workflows/workflows/81.json deleted file mode 100644 index 324c5ed66e..0000000000 --- a/test-workflows/workflows/81.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "createdAt": "2021-03-01T09:51:34.123Z", - "updatedAt": "2021-06-02T11:29:56.485Z", - "id": "81", - "name": "PhantomBuster:getAll get launch getOutput", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "85fb6aa2-9869-4db4-bd9a-daf1db2bf96e" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1 - }, - "name": "Phantombuster", - "type": "n8n-nodes-base.phantombuster", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "phantombusterApi": { - "id": "70", - "name": "Phantombuster creds" - } - }, - "id": "1b0bda87-f6ec-42a9-84db-af15ec98c377" - }, - { - "parameters": { - "operation": "get", - "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}" - }, - "name": "Phantombuster1", - "type": "n8n-nodes-base.phantombuster", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "phantombusterApi": { - "id": "70", - "name": "Phantombuster creds" - } - }, - "id": "1c0d3094-59c7-4f8c-b7d6-3544dcde6bcc" - }, - { - "parameters": { - "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}", - "resolveData": false, - "jsonParameters": true, - "additionalFields": { - "argumentsJson": "{\n\t\"urls\": [\n\t\t\"https://n8n.io/\"\n\t],\n\t\"timeToWait\": 5000,\n\t\"pagesPerLaunch\": 1,\n\t\"onlyGetOneEmail\": false\n}" - } - }, - "name": "Phantombuster2", - "type": "n8n-nodes-base.phantombuster", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "credentials": { - "phantombusterApi": { - "id": "70", - "name": "Phantombuster creds" - } - }, - "id": "932b8b9f-b118-401c-9164-aac9942631a9" - }, - { - "parameters": { - "operation": "getOutput", - "agentId": "={{$node[\"Phantombuster\"].json[\"id\"]}}", - "resolveData": false, - "additionalFields": { - "prevContainerId": "={{$node[\"Phantombuster2\"].json[\"containerId\"]}}" - } - }, - "name": "Phantombuster3", - "type": "n8n-nodes-base.phantombuster", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "credentials": { - "phantombusterApi": { - "id": "70", - "name": "Phantombuster creds" - } - }, - "notes": "IGNORED_PROPERTIES=mostRecentEndedAt", - "id": "803d6c12-a407-4037-ae9f-62b90d17ceac" - } - ], - "connections": { - "Phantombuster": { - "main": [ - [ - { - "node": "Phantombuster1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Phantombuster1": { - "main": [ - [ - { - "node": "Phantombuster2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Phantombuster2": { - "main": [ - [ - { - "node": "Phantombuster3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Phantombuster", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/82.json b/test-workflows/workflows/82.json deleted file mode 100644 index 211675162c..0000000000 --- a/test-workflows/workflows/82.json +++ /dev/null @@ -1,563 +0,0 @@ -{ - "createdAt": "2021-03-01T10:15:48.446Z", - "updatedAt": "2021-06-04T14:49:07.640Z", - "id": "82", - "name": "Microsoft OneDrive:Folder:create getChildren share search delete:File:upload get share download copy delete search", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "8dd4b3f2-e8ad-481a-8a37-6fc5cad4eb8e" - }, - { - "parameters": { - "resource": "folder", - "operation": "create", - "name": "=TestFolder{{Date.now()}}", - "options": {} - }, - "name": "Microsoft OneDrive", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 490, - 300 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "60b3c5f1-1a49-4961-9d3b-7a8681b882fc" - }, - { - "parameters": { - "resource": "folder", - "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}" - }, - "name": "Microsoft OneDrive1", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 2410, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "1fea4cc3-5693-470e-b04b-630bfc994fce" - }, - { - "parameters": { - "resource": "folder", - "operation": "search", - "query": "TestFolder" - }, - "name": "Microsoft OneDrive2", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 2850, - 150 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "notes": "CAP_RESULTS_LENGTH=1", - "id": "d04119ed-853d-421e-a872-c02d3ab34b6d" - }, - { - "parameters": { - "resource": "folder", - "operation": "share", - "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}", - "type": "view", - "scope": "anonymous" - }, - "name": "Microsoft OneDrive3", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 2560, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "2fd0be17-d65a-4c47-ada6-ed83a84a8a9c" - }, - { - "parameters": { - "fileName": "=FileName{{Date.now()}}", - "parentId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}", - "fileContent": "=Test written at {{Date()}}" - }, - "name": "Microsoft OneDrive4", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 770, - 450 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "88d28811-6fdc-4d81-8d64-225c857efe27" - }, - { - "parameters": { - "operation": "get", - "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" - }, - "name": "Microsoft OneDrive5", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 1070, - 450 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "cdf9a69d-e4e0-4c8d-a154-e57910ed9c9e" - }, - { - "parameters": { - "operation": "share", - "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}", - "type": "view", - "scope": "anonymous" - }, - "name": "Microsoft OneDrive6", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 1220, - 450 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "35ac9411-ebea-4929-a4b8-5fab696507c0" - }, - { - "parameters": { - "operation": "search", - "query": "Test" - }, - "name": "Microsoft OneDrive7", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 2120, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "d4cf2dbf-430b-4af9-a478-78f9d63c0f4e" - }, - { - "parameters": { - "operation": "download", - "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" - }, - "name": "Microsoft OneDrive8", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 1520, - 450 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "b22405f7-c624-4f51-b72f-2cd6fba6055c" - }, - { - "parameters": { - "operation": "copy", - "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}", - "additionalFields": { - "name": "=CopiedFile{{Date.now()}}" - }, - "parentReference": { - "name": "=CopiedFile{{Date.now()}}", - "path": "=/drive/root:/{{$node[\"Microsoft OneDrive\"].json[\"name\"]}}" - } - }, - "name": "Microsoft OneDrive9", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 1670, - 450 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "0a8c8d20-cc43-4a4d-a1d4-acebd6742cdd" - }, - { - "parameters": { - "operation": "delete", - "fileId": "={{$node[\"Microsoft OneDrive4\"].json[\"id\"]}}" - }, - "name": "Microsoft OneDrive10", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 1970, - 450 - ], - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "9cbe23a3-6e32-45a8-9e9f-60c9ed5cea4e" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "folderId": "={{$node[\"Microsoft OneDrive\"].json[\"id\"]}}" - }, - "name": "Microsoft OneDrive11", - "type": "n8n-nodes-base.microsoftOneDrive", - "typeVersion": 1, - "position": [ - 2850, - 300 - ], - "alwaysOutputData": true, - "credentials": { - "microsoftOneDriveOAuth2Api": { - "id": "69", - "name": "Microsoft Drive OAuth2 creds" - } - }, - "id": "c33517a8-7045-45c7-8e49-e778313d2ce7" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second", - "type": "n8n-nodes-base.function", - "position": [ - 2700, - 300 - ], - "typeVersion": 1, - "id": "47de5dd5-9705-4186-a0f4-9579467897e3" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second1", - "type": "n8n-nodes-base.function", - "position": [ - 2280, - 300 - ], - "typeVersion": 1, - "id": "0987168a-7db4-4e81-bde8-4a6961f514a1" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second2", - "type": "n8n-nodes-base.function", - "position": [ - 1820, - 450 - ], - "typeVersion": 1, - "id": "eb7f14c0-6925-4c32-89f6-835e09498bce" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second3", - "type": "n8n-nodes-base.function", - "position": [ - 1370, - 450 - ], - "typeVersion": 1, - "id": "04e7f940-2bd4-4191-8157-89a3c067fdd1" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second4", - "type": "n8n-nodes-base.function", - "position": [ - 920, - 450 - ], - "typeVersion": 1, - "id": "6977a587-99f4-4998-953f-7ea20768a92b" - }, - { - "parameters": { - "functionCode": "function sleep(milliseconds) {\n return new Promise(\n resolve => setTimeout(resolve, milliseconds)\n );\n}\n\nawait sleep(800);\n\n// Output data\nreturn items;" - }, - "name": "Sleep 0.8 second5", - "type": "n8n-nodes-base.function", - "position": [ - 650, - 450 - ], - "typeVersion": 1, - "id": "7e920caf-326c-44ad-9f49-bb11d8378d12" - } - ], - "connections": { - "Microsoft OneDrive": { - "main": [ - [ - { - "node": "Sleep 0.8 second5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive1": { - "main": [ - [ - { - "node": "Microsoft OneDrive3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive3": { - "main": [ - [ - { - "node": "Sleep 0.8 second", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive4": { - "main": [ - [ - { - "node": "Sleep 0.8 second4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive5": { - "main": [ - [ - { - "node": "Microsoft OneDrive6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive6": { - "main": [ - [ - { - "node": "Sleep 0.8 second3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive7": { - "main": [ - [ - { - "node": "Sleep 0.8 second1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive8": { - "main": [ - [ - { - "node": "Microsoft OneDrive9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive9": { - "main": [ - [ - { - "node": "Sleep 0.8 second2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Microsoft OneDrive10": { - "main": [ - [ - { - "node": "Microsoft OneDrive7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Microsoft OneDrive", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second": { - "main": [ - [ - { - "node": "Microsoft OneDrive11", - "type": "main", - "index": 0 - }, - { - "node": "Microsoft OneDrive2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second1": { - "main": [ - [ - { - "node": "Microsoft OneDrive1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second2": { - "main": [ - [ - { - "node": "Microsoft OneDrive10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second3": { - "main": [ - [ - { - "node": "Microsoft OneDrive8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second4": { - "main": [ - [ - { - "node": "Microsoft OneDrive5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Sleep 0.8 second5": { - "main": [ - [ - { - "node": "Microsoft OneDrive4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/83.json b/test-workflows/workflows/83.json deleted file mode 100644 index 7ba6410671..0000000000 --- a/test-workflows/workflows/83.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "createdAt": "2021-03-01T10:49:40.953Z", - "updatedAt": "2021-03-01T10:49:40.953Z", - "id": "83", - "name": "RSS Feed", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "2abda6cf-70a8-40c3-9446-4f7f8233e54a" - }, - { - "parameters": { - "url": "https://www.producthunt.com/feed" - }, - "name": "RSS Feed Read", - "type": "n8n-nodes-base.rssFeedRead", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "46f4bb0e-011d-499c-92bd-7b1e6c814133" - }, - { - "parameters": { - "functionCode": "if(items.length !== 50){\n throw new Error('Invalid RSS feed result');\n}else{\nreturn [];\n}\n" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "notesInFlow": true, - "notes": "Throw error if result.length !=50", - "id": "f4a98301-2dbe-45b2-ac1d-97df0ac58b94" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "RSS Feed Read", - "type": "main", - "index": 0 - } - ] - ] - }, - "RSS Feed Read": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/84.json b/test-workflows/workflows/84.json deleted file mode 100644 index 0a422ac433..0000000000 --- a/test-workflows/workflows/84.json +++ /dev/null @@ -1,407 +0,0 @@ -{ - "createdAt": "2021-03-01T11:14:09.665Z", - "updatedAt": "2021-03-01T11:21:28.506Z", - "id": "84", - "name": "Matrix:Room:create invite kick leave:RoomMember:getAll:Message:create getAll:Account:me:Media:upload:Event:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "4653989b-2d73-400a-b9e3-05248cca34be" - }, - { - "parameters": { - "resource": "account" - }, - "name": "Matrix", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 450, - 100 - ], - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "47305d8a-ba2e-4bc3-8021-1abf32a300ae" - }, - { - "parameters": { - "resource": "room", - "roomName": "=Room{{Date.now()}}" - }, - "name": "Matrix1", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "5d6f2b69-6762-4376-b1bb-6b3d8b823c37" - }, - { - "parameters": { - "resource": "room", - "operation": "invite", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "userId": "@node8qa:matrix.org" - }, - "name": "Matrix2", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 1000, - 200 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "939b7824-2a25-4b5a-9d11-57ee9107578c" - }, - { - "parameters": { - "resource": "room", - "operation": "kick", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "userId": "@node8qa:matrix.org", - "reason": "test" - }, - "name": "Matrix3", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 1200, - 200 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "e5d85928-b775-4eb5-9976-18075db86af0" - }, - { - "parameters": { - "resource": "room", - "operation": "leave", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}" - }, - "name": "Matrix4", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 1440, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "7e684d64-ab4c-4de9-bd5b-ab1e8571c0d9" - }, - { - "parameters": { - "resource": "roomMember", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "filters": {} - }, - "name": "Matrix5", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 700, - 420 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "a3cd7697-4db7-4cc2-a8bf-68625273a76a" - }, - { - "parameters": { - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "text": "=Test {{Date.now()}}" - }, - "name": "Matrix6", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 600, - 200 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "9cbac5a1-e829-40d3-acd7-ad4fdb03c1ac" - }, - { - "parameters": { - "operation": "getAll", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "limit": 1, - "otherOptions": {} - }, - "name": "Matrix7", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 800, - 200 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "205d5ab7-64ae-4722-b4bd-bb2a687de4b4" - }, - { - "parameters": { - "resource": "media", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}" - }, - "name": "Matrix8", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 820, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "6aa74367-4d6a-495f-885e-14568c493ca1" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 600, - 620 - ], - "id": "07201442-b394-41cb-90e7-1a3f3f5e414f" - }, - { - "parameters": { - "resource": "event", - "roomId": "={{$node[\"Matrix1\"].json[\"room_id\"]}}", - "eventId": "={{$node[\"Matrix8\"].json[\"event_id\"]}}" - }, - "name": "Matrix9", - "type": "n8n-nodes-base.matrix", - "typeVersion": 1, - "position": [ - 1020, - 620 - ], - "alwaysOutputData": true, - "credentials": { - "matrixApi": { - "id": "71", - "name": "Matrix creds" - } - }, - "id": "a0c2d949-47f2-49a4-90fd-7ca465c2c579" - }, - { - "parameters": { - "mode": "chooseBranch" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 2.1, - "position": [ - 1240, - 420 - ], - "id": "a3b8276c-5961-4508-a8c1-5d9144436ff5" - } - ], - "connections": { - "Matrix1": { - "main": [ - [ - { - "node": "Matrix6", - "type": "main", - "index": 0 - }, - { - "node": "Matrix5", - "type": "main", - "index": 0 - }, - { - "node": "Read Binary File", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix2": { - "main": [ - [ - { - "node": "Matrix3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix3": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix6": { - "main": [ - [ - { - "node": "Matrix7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix7": { - "main": [ - [ - { - "node": "Matrix2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "Matrix8", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix8": { - "main": [ - [ - { - "node": "Matrix9", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Matrix1", - "type": "main", - "index": 0 - }, - { - "node": "Matrix", - "type": "main", - "index": 0 - } - ] - ] - }, - "Matrix5": { - "main": [ - [] - ] - }, - "Matrix9": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Matrix4": { - "main": [ - [] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "Matrix4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/85.json b/test-workflows/workflows/85.json deleted file mode 100644 index 7cbe2afbb1..0000000000 --- a/test-workflows/workflows/85.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "createdAt": "2021-03-02T10:23:05.991Z", - "updatedAt": "2021-05-25T13:21:54.785Z", - "id": "85", - "name": "Linkedin:Post:create", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 200, - 300 - ], - "id": "92f57774-0f92-4eaf-89e9-e8c33dd21cfe" - }, - { - "parameters": { - "postAs": "person", - "person": "gpZ0alGajT", - "text": "=Test Post created by person at {{new Date()}}", - "additionalFields": { - "visibility": "CONNECTIONS" - } - }, - "name": "LinkedIn", - "type": "n8n-nodes-base.linkedIn", - "typeVersion": 1, - "position": [ - 550, - 200 - ], - "credentials": { - "linkedInOAuth2Api": { - "id": "74", - "name": "LinkedIn OAuth2 creds" - } - }, - "id": "63e56abf-2054-4691-99d7-e639d2a1af45" - }, - { - "parameters": { - "postAs": "person", - "person": "gpZ0alGajT", - "text": "=Test Post created by person at {{new Date()}}", - "shareMediaCategory": "IMAGE", - "additionalFields": { - "title": "=ImagePost {{Date.now()}}", - "visibility": "CONNECTIONS" - } - }, - "name": "LinkedIn1", - "type": "n8n-nodes-base.linkedIn", - "typeVersion": 1, - "position": [ - 560, - 350 - ], - "credentials": { - "linkedInOAuth2Api": { - "id": "74", - "name": "LinkedIn OAuth2 creds" - } - }, - "id": "a6a0d2d6-f399-41a3-88fe-a4b0c2d5512e" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 420, - 350 - ], - "id": "e80c32c0-f983-46cd-becc-e030b93732c7" - } - ], - "connections": { - "Read Binary File": { - "main": [ - [ - { - "node": "LinkedIn1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - }, - { - "node": "LinkedIn", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/86.json b/test-workflows/workflows/86.json deleted file mode 100644 index 8e27999147..0000000000 --- a/test-workflows/workflows/86.json +++ /dev/null @@ -1,610 +0,0 @@ -{ - "createdAt": "2021-03-02T16:28:15.682Z", - "updatedAt": "2021-03-02T16:51:15.335Z", - "id": "86", - "name": "ActiveCampaign:Contact:create update get getAll delete:Account:create update get getAll delete:AccountContact:create update delete:ContactTag:add remove:ContactList:add remove", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 240, - 250 - ], - "id": "5e0c4a10-4f4c-4d7e-ac88-cfb0e0147e6d" - }, - { - "parameters": { - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "ActiveCampaign", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 400, - 250 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "218c5b2e-6051-4f23-ba62-8d5b9deee1c6" - }, - { - "parameters": { - "operation": "update", - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}", - "updateFields": { - "email": "=updatedFake{{Date.now()}}@gmail.com" - } - }, - "name": "ActiveCampaign1", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1860, - 420 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "305a7c81-ca92-4e98-af9e-16793b4ef154" - }, - { - "parameters": { - "operation": "get", - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign2", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2060, - 420 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "0793b6d4-3d35-49c9-ac08-783568dcbaf7" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": {} - }, - "name": "ActiveCampaign3", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2240, - 420 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "577ef13f-7105-4d8a-bed7-e032a4dbd41e" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign4", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2700, - 580 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "fa91c140-0213-4490-b9d5-8bc7f58f076c" - }, - { - "parameters": { - "resource": "contactList", - "listId": 1, - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign5", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1800, - 600 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "9ec94695-33dd-4b2d-afa5-275f25c5519d" - }, - { - "parameters": { - "resource": "contactList", - "operation": "remove", - "listId": 1, - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign6", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2040, - 600 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "b1f7a747-06a7-4e0c-9492-da2b0d0058ee" - }, - { - "parameters": { - "resource": "contactTag", - "tagId": "1", - "contactId": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign7", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1800, - 160 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "2fd08b2d-5fcc-4e53-ab07-0a4ccceb4343" - }, - { - "parameters": { - "resource": "contactTag", - "operation": "remove", - "contactTagId": "={{$node[\"ActiveCampaign7\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign8", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1950, - 160 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "7a5a5918-0d77-4244-bfda-81fa9a16bb4a" - }, - { - "parameters": { - "resource": "account", - "name": "=Name{{Date.now()}}", - "additionalFields": {} - }, - "name": "ActiveCampaign9", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "c27e3344-ae6d-4c50-9b68-fbe0cc933bff" - }, - { - "parameters": { - "resource": "account", - "operation": "update", - "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", - "updateFields": { - "name": "=updatedName{{Date.now()}}" - } - }, - "name": "ActiveCampaign10", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "f0488b6f-4e0a-4314-8748-0107fe6615f0" - }, - { - "parameters": { - "resource": "account", - "operation": "get", - "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign11", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1300, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "323985d0-1ee6-40c3-ac86-7ddd93755d92" - }, - { - "parameters": { - "resource": "account", - "operation": "getAll", - "limit": 1, - "filters": {} - }, - "name": "ActiveCampaign12", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1450, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "0056df12-007e-49fe-a03f-b784e4c05354" - }, - { - "parameters": { - "resource": "account", - "operation": "delete", - "accountId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign13", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1600, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "4149b2f7-c778-40d5-9e91-a652148bdb0f" - }, - { - "parameters": { - "resource": "accountContact", - "account": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", - "contact": "={{$node[\"ActiveCampaign\"].json[\"id\"]}}", - "additionalFields": {} - }, - "name": "ActiveCampaign14", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 700, - 400 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "88202473-515f-443d-bdc2-79a79bf72228" - }, - { - "parameters": { - "resource": "accountContact", - "operation": "update", - "accountContactId": "={{$node[\"ActiveCampaign14\"].json[\"id\"]}}", - "updateFields": { - "jobTitle": "TestJobTitle" - } - }, - "name": "ActiveCampaign15", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 850, - 400 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "d5c849a3-4bd3-4d31-80f4-b842e725620a" - }, - { - "parameters": { - "resource": "accountContact", - "operation": "delete", - "accountContactId": "={{$node[\"ActiveCampaign14\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign16", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1000, - 400 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "3fadb7d0-4353-4bc9-9099-269db90d56e9" - }, - { - "parameters": { - "mode": "chooseBranch" - }, - "name": "Merge", - "type": "n8n-nodes-base.merge", - "typeVersion": 2.1, - "position": [ - 2480, - 580 - ], - "id": "e48d6833-8e96-4fd9-ba59-e6aef2d6dfba" - } - ], - "connections": { - "ActiveCampaign": { - "main": [ - [ - { - "node": "ActiveCampaign9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign1": { - "main": [ - [ - { - "node": "ActiveCampaign2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign2": { - "main": [ - [ - { - "node": "ActiveCampaign3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign3": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign5": { - "main": [ - [ - { - "node": "ActiveCampaign6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign7": { - "main": [ - [ - { - "node": "ActiveCampaign8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign8": { - "main": [ - [ - { - "node": "ActiveCampaign1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "ActiveCampaign", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign9": { - "main": [ - [ - { - "node": "ActiveCampaign14", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign10": { - "main": [ - [ - { - "node": "ActiveCampaign11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign11": { - "main": [ - [ - { - "node": "ActiveCampaign12", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign12": { - "main": [ - [ - { - "node": "ActiveCampaign13", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign14": { - "main": [ - [ - { - "node": "ActiveCampaign15", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign15": { - "main": [ - [ - { - "node": "ActiveCampaign16", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign16": { - "main": [ - [ - { - "node": "ActiveCampaign10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign13": { - "main": [ - [ - { - "node": "ActiveCampaign5", - "type": "main", - "index": 0 - }, - { - "node": "ActiveCampaign7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign6": { - "main": [ - [ - { - "node": "Merge", - "type": "main", - "index": 1 - } - ] - ] - }, - "Merge": { - "main": [ - [ - { - "node": "ActiveCampaign4", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/87.json b/test-workflows/workflows/87.json deleted file mode 100644 index f2e5ab49bd..0000000000 --- a/test-workflows/workflows/87.json +++ /dev/null @@ -1,667 +0,0 @@ -{ - "createdAt": "2021-03-02T17:11:06.700Z", - "updatedAt": "2021-03-02T17:38:14.995Z", - "id": "87", - "name": "ActiveCampaign:Deal:create update get createNote updateNote getAll delete:Tag:create update get getAll delete:Connection:create update get getAll delete:List:getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 50, - 550 - ], - "id": "a2295ea9-244a-4306-8154-22eb9bbcb44e" - }, - { - "parameters": { - "resource": "connection", - "service": "n8n", - "externalid": "={{Date.now()}}", - "name": "=Name{{Date.now()}}", - "logoUrl": "https://n8n.io/_nuxt/img/df5be1c.png", - "linkUrl": "https://n8n.io/" - }, - "name": "ActiveCampaign", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "5a58849c-68a7-4df6-afc6-15bfcf9e542a" - }, - { - "parameters": { - "resource": "connection", - "operation": "update", - "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}", - "updateFields": { - "syncStatus": 0 - } - }, - "name": "ActiveCampaign1", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "90f92758-d9a4-4c9f-95b6-a0dfce8ad0a6" - }, - { - "parameters": { - "resource": "connection", - "operation": "get", - "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" - }, - "name": "ActiveCampaign2", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "2c023901-6976-4e87-a1cd-5578e1b0e39e" - }, - { - "parameters": { - "resource": "connection", - "operation": "getAll", - "limit": 1 - }, - "name": "ActiveCampaign3", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "3ac46999-9c81-4d69-b5af-b302cbf17495" - }, - { - "parameters": { - "resource": "connection", - "operation": "delete", - "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" - }, - "name": "ActiveCampaign4", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "6ee06c8c-76b8-421e-a663-1749ab15173c" - }, - { - "parameters": { - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "ActiveCampaign5", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 250, - 470 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "7b0271b5-ffde-4e57-9389-e35cdc23f7a3" - }, - { - "parameters": { - "resource": "deal", - "title": "=Title{{Date.now()}}", - "contact": "={{$node[\"ActiveCampaign5\"].json[\"id\"]}}", - "value": 101, - "currency": "usd", - "group": "1", - "stage": "0", - "owner": "1", - "additionalFields": {} - }, - "name": "ActiveCampaign7", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 400, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "90219b3a-7ebc-497f-b757-f03f7267b82a" - }, - { - "parameters": { - "resource": "list", - "limit": 1 - }, - "name": "ActiveCampaign8", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 250, - 650 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "0311b73b-b4d4-4e26-a527-f853bbb6e919" - }, - { - "parameters": { - "resource": "tag", - "name": "=Tag{{Date.now()}}", - "additionalFields": {} - }, - "name": "ActiveCampaign9", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 250, - 800 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "f9cb63f2-8f09-4588-b72c-454a2d46d254" - }, - { - "parameters": { - "resource": "tag", - "operation": "update", - "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}", - "updateFields": {} - }, - "name": "ActiveCampaign10", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 400, - 800 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "518317dc-7765-4bf6-9430-9bb38bd15427" - }, - { - "parameters": { - "resource": "tag", - "operation": "get", - "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign11", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 550, - 800 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "b8fa4436-7059-467f-b38e-32d1fb0d1322" - }, - { - "parameters": { - "resource": "tag", - "operation": "getAll", - "limit": 1 - }, - "name": "ActiveCampaign12", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 700, - 800 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "8c8fda95-bd1d-41c4-9b56-7946e4f8f246" - }, - { - "parameters": { - "resource": "tag", - "operation": "delete", - "tagId": "={{$node[\"ActiveCampaign9\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign13", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 850, - 800 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "1e3f23a3-4905-43f3-bace-5c3bc340e6f1" - }, - { - "parameters": { - "resource": "deal", - "operation": "update", - "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", - "updateFields": { - "value": 201 - } - }, - "name": "ActiveCampaign14", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 550, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "a4c82ca4-f15b-4b4a-9f0c-4fff2720db1f" - }, - { - "parameters": { - "resource": "deal", - "operation": "get", - "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}" - }, - "name": "ActiveCampaign15", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 700, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "900af275-1075-41e6-983d-f8522ea792c7" - }, - { - "parameters": { - "resource": "deal", - "operation": "createNote", - "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", - "dealNote": "TestNote" - }, - "name": "ActiveCampaign16", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 850, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "e2fcb50a-69e9-4588-958d-d9d55863bc6d" - }, - { - "parameters": { - "resource": "deal", - "operation": "updateNote", - "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}", - "dealNoteId": "={{$node[\"ActiveCampaign16\"].json[\"note\"][\"id\"]}}", - "dealNote": "UpdatedNote" - }, - "name": "ActiveCampaign17", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1000, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "eeddfcc2-e580-4f0f-80ad-382a38ef4f31" - }, - { - "parameters": { - "resource": "deal", - "operation": "getAll", - "limit": 1 - }, - "name": "ActiveCampaign18", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1150, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "ad04ac82-0369-4006-aacd-e87b8dbbc6f8" - }, - { - "parameters": { - "resource": "deal", - "operation": "delete", - "dealId": "={{$node[\"ActiveCampaign7\"].json[\"deal\"][\"id\"]}}" - }, - "name": "ActiveCampaign19", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1300, - 550 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "83432217-ae3f-4ecb-8cbb-fe21e1105146" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"ActiveCampaign5\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign6", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1450, - 470 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "7492e380-426b-4c06-98bd-13a5a10b3232" - } - ], - "connections": { - "ActiveCampaign": { - "main": [ - [ - { - "node": "ActiveCampaign1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign1": { - "main": [ - [ - { - "node": "ActiveCampaign2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign2": { - "main": [ - [ - { - "node": "ActiveCampaign3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign3": { - "main": [ - [ - { - "node": "ActiveCampaign4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "ActiveCampaign", - "type": "main", - "index": 0 - }, - { - "node": "ActiveCampaign5", - "type": "main", - "index": 0 - }, - { - "node": "ActiveCampaign8", - "type": "main", - "index": 0 - }, - { - "node": "ActiveCampaign9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign5": { - "main": [ - [ - { - "node": "ActiveCampaign7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign9": { - "main": [ - [ - { - "node": "ActiveCampaign10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign10": { - "main": [ - [ - { - "node": "ActiveCampaign11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign11": { - "main": [ - [ - { - "node": "ActiveCampaign12", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign12": { - "main": [ - [ - { - "node": "ActiveCampaign13", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign7": { - "main": [ - [ - { - "node": "ActiveCampaign14", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign14": { - "main": [ - [ - { - "node": "ActiveCampaign15", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign15": { - "main": [ - [ - { - "node": "ActiveCampaign16", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign16": { - "main": [ - [ - { - "node": "ActiveCampaign17", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign17": { - "main": [ - [ - { - "node": "ActiveCampaign18", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign18": { - "main": [ - [ - { - "node": "ActiveCampaign19", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign19": { - "main": [ - [ - { - "node": "ActiveCampaign6", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/88.json b/test-workflows/workflows/88.json deleted file mode 100644 index 6e0da6d560..0000000000 --- a/test-workflows/workflows/88.json +++ /dev/null @@ -1,600 +0,0 @@ -{ - "createdAt": "2021-03-02T17:43:57.153Z", - "updatedAt": "2021-03-02T18:24:50.151Z", - "id": "88", - "name": "ActiveCampaign:EcommerceCustomer:create update get getAll delete:EcommerceOrder:create update get getAll delete:EcommerceOrderProduct:getByProductId getByOrderId getAll", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "d98ebf73-d4b9-4f3c-8959-09921d971af4" - }, - { - "parameters": { - "resource": "connection", - "service": "n8n", - "externalid": "=account{{Date.now()}}", - "name": "=AccountName{{Date.now()}}", - "logoUrl": "https://n8n.io/_nuxt/img/df5be1c.png", - "linkUrl": "https://n8n.io" - }, - "name": "ActiveCampaign", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "06f9b5c8-7772-4e1f-aa36-cff61ad6d9c7" - }, - { - "parameters": { - "resource": "ecommerceCustomer", - "connectionid": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}", - "externalid": "=customer{{Date.now()}}", - "email": "=fake{{Date.now()}}@gmail.com", - "additionalFields": {} - }, - "name": "ActiveCampaign1", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 600, - 350 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "3bc4598b-fbad-4f70-afbf-24094a92c3ac" - }, - { - "parameters": { - "resource": "ecommerceCustomer", - "operation": "update", - "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}", - "updateFields": { - "acceptsMarketing": true - } - }, - "name": "ActiveCampaign2", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1930, - 350 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "177ccb5e-64cb-4614-9d06-d03391a99606" - }, - { - "parameters": { - "resource": "ecommerceCustomer", - "operation": "get", - "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}" - }, - "name": "ActiveCampaign3", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2080, - 350 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "d0aac97c-66df-498b-b350-75a5b43db790" - }, - { - "parameters": { - "resource": "ecommerceCustomer", - "operation": "getAll", - "limit": 1 - }, - "name": "ActiveCampaign4", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2230, - 350 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "01924984-0fd8-4aad-9c87-d672d22062f9" - }, - { - "parameters": { - "resource": "ecommerceCustomer", - "operation": "delete", - "ecommerceCustomerId": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}" - }, - "name": "ActiveCampaign5", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2700, - 350 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "c0d51d56-316e-4c3a-902e-e2806b357e49" - }, - { - "parameters": { - "resource": "connection", - "operation": "delete", - "connectionId": "={{$node[\"ActiveCampaign\"].json[\"connection\"][\"id\"]}}" - }, - "name": "ActiveCampaign6", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2960, - 310 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "0e5e9588-0159-4573-8a12-80c28597d5d2" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "externalid": "=externalOrderId{{Date.now()}}", - "email": "=customerEmail{{Date.now()}}@gmail.com", - "totalPrice": 101, - "connectionid": "={{$node[\"ActiveCampaign1\"].json[\"connections\"][0][\"id\"]}}", - "customerid": "={{$node[\"ActiveCampaign1\"].json[\"ecomCustomer\"][\"id\"]}}", - "externalCreatedDate": "2021-03-02T17:48:16.000Z", - "orderProducts": [ - { - "name": "=Product{{Date.now()}}", - "price": 101, - "externalid": "=ProductId{{Date.now()}}", - "category": "Test", - "quantity": 1 - } - ], - "additionalFields": {} - }, - "name": "ActiveCampaign7", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 750, - 500 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "625154fe-1a64-4d75-aaf8-98acd9e9ada7" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "update", - "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}", - "updateFields": { - "totalPrice": 201 - } - }, - "name": "ActiveCampaign8", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1330, - 500 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "426277b4-5376-46fb-a536-685e850db4f2" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "get", - "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" - }, - "name": "ActiveCampaign9", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1480, - 500 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "9f79b204-ac2e-4bc9-ba28-88f26e4361e0" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "getAll", - "limit": 1 - }, - "name": "ActiveCampaign10", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1630, - 500 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "55383188-29bf-4d80-aea0-643f2944e449" - }, - { - "parameters": { - "resource": "ecommerceOrder", - "operation": "delete", - "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" - }, - "name": "ActiveCampaign11", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1780, - 500 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "9adb900b-6822-40b3-972b-8c3dba51d737" - }, - { - "parameters": { - "resource": "ecommerceOrderProducts", - "operation": "getByProductId", - "procuctId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrderProducts\"][0][\"id\"]}}" - }, - "name": "ActiveCampaign12", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 900, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "6b7ec0c7-d112-40b7-87ab-92a16261a0d6" - }, - { - "parameters": { - "resource": "ecommerceOrderProducts", - "operation": "getByOrderId", - "orderId": "={{$node[\"ActiveCampaign7\"].json[\"ecomOrder\"][\"id\"]}}" - }, - "name": "ActiveCampaign13", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1050, - 630 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "eb9239ee-e92e-438b-9301-4f91297067ee" - }, - { - "parameters": { - "resource": "ecommerceOrderProducts", - "limit": 1 - }, - "name": "ActiveCampaign14", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 1200, - 630 - ], - "alwaysOutputData": true, - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "7ea53540-9953-40a7-bcb9-0fb103bfb66a" - }, - { - "parameters": { - "operation": "getAll", - "limit": 1, - "additionalFields": { - "email": "={{$node[\"ActiveCampaign3\"].json[\"ecomCustomer\"][\"email\"]}}" - } - }, - "name": "ActiveCampaign15", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2400, - 200 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "39812fca-6913-46d6-8210-0ec0319fd590" - }, - { - "parameters": { - "operation": "delete", - "contactId": "={{$node[\"ActiveCampaign15\"].json[\"id\"]}}" - }, - "name": "ActiveCampaign16", - "type": "n8n-nodes-base.activeCampaign", - "typeVersion": 1, - "position": [ - 2550, - 200 - ], - "credentials": { - "activeCampaignApi": { - "id": "75", - "name": "ActiveCampaign creds" - } - }, - "id": "59d52f2b-810a-437e-b5ce-885cc1ff746b" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "ActiveCampaign", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign": { - "main": [ - [ - { - "node": "ActiveCampaign1", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign1": { - "main": [ - [ - { - "node": "ActiveCampaign7", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign2": { - "main": [ - [ - { - "node": "ActiveCampaign3", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign3": { - "main": [ - [ - { - "node": "ActiveCampaign4", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign4": { - "main": [ - [ - { - "node": "ActiveCampaign15", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign5": { - "main": [ - [ - { - "node": "ActiveCampaign6", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign7": { - "main": [ - [ - { - "node": "ActiveCampaign12", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign8": { - "main": [ - [ - { - "node": "ActiveCampaign9", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign9": { - "main": [ - [ - { - "node": "ActiveCampaign10", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign10": { - "main": [ - [ - { - "node": "ActiveCampaign11", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign11": { - "main": [ - [ - { - "node": "ActiveCampaign2", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign12": { - "main": [ - [ - { - "node": "ActiveCampaign13", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign13": { - "main": [ - [ - { - "node": "ActiveCampaign14", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign14": { - "main": [ - [ - { - "node": "ActiveCampaign8", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign15": { - "main": [ - [ - { - "node": "ActiveCampaign16", - "type": "main", - "index": 0 - } - ] - ] - }, - "ActiveCampaign16": { - "main": [ - [ - { - "node": "ActiveCampaign5", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/89.json b/test-workflows/workflows/89.json deleted file mode 100644 index c1d0946389..0000000000 --- a/test-workflows/workflows/89.json +++ /dev/null @@ -1,438 +0,0 @@ -{ - "createdAt": "2021-03-03T09:10:46.509Z", - "updatedAt": "2021-03-03T09:14:14.253Z", - "id": "89", - "name": "S3:Bucket:create getAll search:File:upload getAll download copy delete:Folder:create getAll delete", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 100, - 450 - ], - "id": "5f0064e0-df3f-4b86-9ff6-5914642a97b3" - }, - { - "parameters": { - "resource": "bucket", - "name": "=Bucket{{Date.now()}}", - "additionalFields": {} - }, - "name": "S3", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 300, - 300 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "48d6cb9a-a344-4be5-919e-3221f2f8a240" - }, - { - "parameters": { - "resource": "bucket", - "operation": "getAll", - "limit": 1 - }, - "name": "S", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "49b3346f-3156-4c9e-af2d-73387c596049" - }, - { - "parameters": { - "resource": "bucket", - "operation": "search", - "bucketName": "={{$node[\"S\"].json[\"Name\"]}}", - "limit": 1, - "additionalFields": {} - }, - "name": "S1", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "81e8284f-6314-473b-8eb4-8c3fbbdd88e6" - }, - { - "parameters": { - "operation": "upload", - "bucketName": "fixedbucket", - "fileName": "=File{{Date.now()}}", - "additionalFields": {}, - "tagsUi": { - "tagsValues": [] - } - }, - "name": "S2", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 450, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "25ce2a12-596f-4a9e-b406-3810ccba7db7" - }, - { - "parameters": { - "filePath": "/tmp/n8n-logo.png" - }, - "name": "Read Binary File", - "type": "n8n-nodes-base.readBinaryFile", - "typeVersion": 1, - "position": [ - 300, - 450 - ], - "id": "c8f464bb-d963-449f-8ee7-ad8d29e70271" - }, - { - "parameters": { - "operation": "getAll", - "bucketName": "fixedbucket", - "limit": 1, - "options": {} - }, - "name": "S4", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 600, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "349ae355-80cd-492d-b08c-2d75ccb35382" - }, - { - "parameters": { - "bucketName": "fixedbucket", - "fileKey": "={{$node[\"S4\"].json[\"Key\"]}}" - }, - "name": "S5", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 750, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "e8e125d4-e4dc-44ef-8a80-0d7643cbe7e7" - }, - { - "parameters": { - "operation": "copy", - "sourcePath": "=/fixedbucket/{{$node[\"S4\"].json[\"Key\"]}}", - "destinationPath": "=/fixedbucket/Copied{{$node[\"S4\"].json[\"Key\"]}}", - "additionalFields": {} - }, - "name": "S6", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 900, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "f9fee53d-4c4d-43db-9d90-e128929800ee" - }, - { - "parameters": { - "operation": "delete", - "bucketName": "fixedbucket", - "fileKey": "={{$node[\"S4\"].json[\"Key\"]}}", - "options": {} - }, - "name": "S7", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 1050, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "2125301b-ec39-4590-91a6-b72f18f8bdfd" - }, - { - "parameters": { - "operation": "delete", - "bucketName": "fixedbucket", - "fileKey": "=Copied{{$node[\"S4\"].json[\"Key\"]}}", - "options": {} - }, - "name": "S8", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 1200, - 450 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "19563d5e-0131-40be-afac-d9c71ae9a4b6" - }, - { - "parameters": { - "resource": "folder", - "bucketName": "fixedbucket", - "folderName": "=Folder{{Date.now()}}", - "additionalFields": {} - }, - "name": "S9", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 300, - 600 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "7171d305-06da-4448-934a-b6fc78a1a7f4" - }, - { - "parameters": { - "resource": "folder", - "operation": "getAll", - "bucketName": "fixedbucket", - "limit": 1, - "options": {} - }, - "name": "S10", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 450, - 600 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "ff9b78fb-9d66-4ec0-a096-2cf4d183baae" - }, - { - "parameters": { - "resource": "folder", - "operation": "delete", - "bucketName": "fixedbucket", - "folderKey": "={{$node[\"S10\"].json[\"Key\"]}}" - }, - "name": "S11", - "type": "n8n-nodes-base.s3", - "typeVersion": 1, - "position": [ - 600, - 600 - ], - "credentials": { - "s3": { - "id": "76", - "name": "S3 creds" - } - }, - "id": "8b2e8c9a-a7be-4c86-b3f5-d3f03c18a8e0" - } - ], - "connections": { - "S3": { - "main": [ - [ - { - "node": "S", - "type": "main", - "index": 0 - } - ] - ] - }, - "S": { - "main": [ - [ - { - "node": "S1", - "type": "main", - "index": 0 - } - ] - ] - }, - "S2": { - "main": [ - [ - { - "node": "S4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Read Binary File": { - "main": [ - [ - { - "node": "S2", - "type": "main", - "index": 0 - } - ] - ] - }, - "S4": { - "main": [ - [ - { - "node": "S5", - "type": "main", - "index": 0 - } - ] - ] - }, - "S5": { - "main": [ - [ - { - "node": "S6", - "type": "main", - "index": 0 - } - ] - ] - }, - "S6": { - "main": [ - [ - { - "node": "S7", - "type": "main", - "index": 0 - } - ] - ] - }, - "S7": { - "main": [ - [ - { - "node": "S8", - "type": "main", - "index": 0 - } - ] - ] - }, - "S9": { - "main": [ - [ - { - "node": "S10", - "type": "main", - "index": 0 - } - ] - ] - }, - "S10": { - "main": [ - [ - { - "node": "S11", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Read Binary File", - "type": "main", - "index": 0 - }, - { - "node": "S3", - "type": "main", - "index": 0 - }, - { - "node": "S9", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/90.json b/test-workflows/workflows/90.json deleted file mode 100644 index 971225d878..0000000000 --- a/test-workflows/workflows/90.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "createdAt": "2021-03-03T09:55:59.197Z", - "updatedAt": "2021-03-03T09:56:30.684Z", - "id": "90", - "name": "Date&Time:formatDate", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9f4c1cf1-66f7-4a2e-86a3-0ef54cff1666" - }, - { - "parameters": { - "value": "1614764492648", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 400, - 300 - ], - "id": "c1251fbd-cd97-4d51-bbf0-4ecce33e588a" - }, - { - "parameters": { - "value": "1614764492648", - "toFormat": "YYYY/MM/DD", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time1", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 550, - 300 - ], - "id": "57ab6614-af49-4555-8158-11ee5771b2e7" - }, - { - "parameters": { - "value": "1614764492648", - "toFormat": "MMMM DD YYYY", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time2", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 700, - 300 - ], - "id": "bf0a4b07-62ce-4234-8dfe-a2f582d40bd8" - }, - { - "parameters": { - "value": "1614764492648", - "toFormat": "MM-DD-YYYY", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time3", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "id": "8b429a06-bce9-49d0-9277-038bc06c8463" - }, - { - "parameters": { - "value": "1614764492648", - "toFormat": "YYYY-MM-DD", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time4", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 1000, - 300 - ], - "id": "8e0681ff-dd9f-4e6d-83cf-18a1e72fe1e1" - }, - { - "parameters": { - "value": "1614764492648", - "toFormat": "X", - "options": { - "fromFormat": "x" - } - }, - "name": "Date & Time5", - "type": "n8n-nodes-base.dateTime", - "typeVersion": 1, - "position": [ - 1150, - 300 - ], - "id": "4917a56c-7455-4354-a018-cec74552e203" - }, - { - "parameters": { - "functionCode": "\n// mm/dd/yyyy\nif($node[\"Date & Time\"].json[\"data\"] !== \"03/03/2021\")\n{\n throw new Error(\"Error convert date to mm/dd/yyyy\");\n}\n// yyyy/mm/dd\nif($node[\"Date & Time1\"].json[\"data\"] !== \"2021/03/03\")\n{\n throw new Error(\"Error convert date to yyyy/mm/dd\");\n}\n// mmmm dd yyyy\nif($node[\"Date & Time2\"].json[\"data\"] !== \"March 03 2021\")\n{\n throw new Error(\"Error convert date to mmmm dd yyyy\");\n}\n// mm-dd-yyyy\nif($node[\"Date & Time3\"].json[\"data\"] !== \"03-03-2021\")\n{\n throw new Error(\"Error convert date to mm-dd-yyyy\");\n}\n// yyyy-mm-dd\nif($node[\"Date & Time4\"].json[\"data\"] !== \"2021-03-03\")\n{ \n throw new Error(\"Error convert date to yyyy-mm-dd\");\n}\n// unix timestamp\nif($node[\"Date & Time5\"].json[\"data\"] !== \"1614764492\")\n{ \n throw new Error(\"Error convert date to unix timestamp\");\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1350, - 300 - ], - "id": "fe192bd8-40ce-4b2d-b467-837c1c208ee3" - } - ], - "connections": { - "Date & Time": { - "main": [ - [ - { - "node": "Date & Time1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time1": { - "main": [ - [ - { - "node": "Date & Time2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time2": { - "main": [ - [ - { - "node": "Date & Time3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time3": { - "main": [ - [ - { - "node": "Date & Time4", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time4": { - "main": [ - [ - { - "node": "Date & Time5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Date & Time5": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Date & Time", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/91.json b/test-workflows/workflows/91.json deleted file mode 100644 index 7d5813a167..0000000000 --- a/test-workflows/workflows/91.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "createdAt": "2021-03-03T10:18:29.938Z", - "updatedAt": "2021-03-03T10:18:35.288Z", - "id": "91", - "name": "HTML Extract:json binary", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "51f39bec-0696-4ff7-93a8-26d105a5edfc" - }, - { - "parameters": { - "functionCode": "item.data = `\n\n\n\n
\"background
\"background
\"background

\n\t\t\t\t\t\tExtendable workflow automation\n\t\t\t\t\t

\"n8n
\n\t\tGithub\n\t
\"Play

\n\t\t\t\t\t\tWatch how simple it is to design a\n\t\t\t\t\t\tTypeform +\n\t\t\t\t\t\tGoogle Sheets +\n\t\t\t\t\t\tSlack workflow\n\t\t\t\t\t

Open icon

Open

\n\t\t\t\t\t\tThanks to our fair-code license, run n8n locally, or the cloud.\n\t\t\t\t\t\tDecide who gets access and where your data is stored.\n\t\t\t\t\t

Extendable icon

Extendable

\n\t\t\t\t\t\tEasy to augment with custom functions logic, and apps with minimal\n\t\t\t\t\t\tengineering effort.\n\t\t\t\t\t

Powerful icon

Powerful

\n\t\t\t\t\t\tn8n's node based editor lets you map anything to everything and go\n\t\t\t\t\t\tbeyond basic ETL.\n\t\t\t\t\t

What can I do with n8n?

Sync data between 150+ apps

\n\t\t\t\t\t\t\tMove and transform data between different apps and databases without getting caught up in API docs and troubleshooting CORS errors.\n\t\t\t\t\t\t

Design powerful workflows

Create custom integrations

\n\t\t\t\t\t\t\tSee what else you can do with n8n! Visit our\n\t\t\t\t\t\t\tMedium publication

How to get started?

\n\t\t\t\t\t\tCLI\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\tClick to copy\n\t

\n\t\t\t\t\t\tDocker\n\t\t\t\t\t

\n\t\tClick to copy\n\t
\n\t\t\t\t\t\t\t\tn8n.cloud - our hosted offering is now in early access\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\tGet updates from n8n\n\t\t\t\t\t

Subscribe to our newsletter

\n\t\tBy submitting your email address you agree to your personal data being\n\t\tstored and used to provide you with information and commercial offers\n\t\tabout n8n.\n\t

\n
\n\n`;\nreturn item;" - }, - "name": "FunctionItem", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "notesInFlow": true, - "notes": "Set html data", - "id": "70ab3e66-cac8-45fd-917d-838e2538ad69" - }, - { - "parameters": { - "extractionValues": { - "values": [ - { - "key": "extracted", - "cssSelector": "li>a", - "returnArray": true - } - ] - }, - "options": { - "trimValues": true - } - }, - "name": "HTML Extract", - "type": "n8n-nodes-base.htmlExtract", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "f27a2f9c-1946-4cac-96fe-d980fe2e5077" - }, - { - "parameters": { - "functionCode": "testData = [ \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\", \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\" ].join('');\nresultData = $node[\"HTML Extract\"].json[\"extracted\"].join('')\nif(testData !== resultData){\n throw new Error('Error in extracting html from json data');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 850, - 300 - ], - "notesInFlow": true, - "notes": "Verify the result", - "id": "97bc0163-8d74-4f5b-b65c-ec1354333908" - }, - { - "parameters": { - "mode": "jsonToBinary", - "convertAllData": false, - "options": { - "useRawData": true - } - }, - "name": "Move Binary Data", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 650, - 500 - ], - "id": "c25511ef-8cbc-4d29-bc2f-3983d900e802" - }, - { - "parameters": { - "sourceData": "binary", - "extractionValues": { - "values": [ - { - "key": "extracted", - "cssSelector": "li>a", - "returnArray": true - } - ] - }, - "options": { - "trimValues": true - } - }, - "name": "HTML Extract1", - "type": "n8n-nodes-base.htmlExtract", - "typeVersion": 1, - "position": [ - 850, - 500 - ], - "id": "9df0c1ed-008b-4820-958f-c87330a9000d" - }, - { - "parameters": { - "functionCode": "testData = [ \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\", \"Quickstart\", \"Apps & nodes\", \"Workflows\", \"Docs\", \"Github\", \"Forum\", \"Blog\", \"Contribute\", \"n8n.cloud\", \"Sign in\", \"Register\" ].join('');\nresultData = $node[\"HTML Extract1\"].json[\"extracted\"].join('')\nif(testData !== resultData){\n throw new Error('Error in extracting html from binary data');\n}\nreturn items;" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1050, - 500 - ], - "notesInFlow": true, - "notes": "Verify the result", - "id": "a36ed52d-5256-4cbf-b96f-596574b092fc" - } - ], - "connections": { - "FunctionItem": { - "main": [ - [ - { - "node": "HTML Extract", - "type": "main", - "index": 0 - }, - { - "node": "Move Binary Data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "FunctionItem", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTML Extract": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Move Binary Data": { - "main": [ - [ - { - "node": "HTML Extract1", - "type": "main", - "index": 0 - } - ] - ] - }, - "HTML Extract1": { - "main": [ - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/92.json b/test-workflows/workflows/92.json deleted file mode 100644 index fd073c27c5..0000000000 --- a/test-workflows/workflows/92.json +++ /dev/null @@ -1,864 +0,0 @@ -{ - "createdAt": "2021-03-03T12:12:08.076Z", - "updatedAt": "2021-03-03T12:18:09.812Z", - "id": "92", - "name": "IF", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 260, - 300 - ], - "id": "6ae1c6d7-2986-491e-9657-e173e8c700e0" - }, - { - "parameters": { - "conditions": { - "boolean": [ - { - "value1": true, - "operation": "notEqual" - } - ] - } - }, - "name": "IF", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 450, - 100 - ], - "id": "744cd7d3-fe05-416b-afe4-3fd9f02d684b" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [ - { - "value1": "2021-03-01T23:00:00.000Z", - "value2": "2021-02-28T23:00:00.000Z" - } - ] - } - }, - "name": "IF1", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 450, - 250 - ], - "id": "d9d7145d-0f47-4ac1-b51d-cae45a77cbab" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 5, - "value2": 10 - } - ] - } - }, - "name": "IF2", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 450, - 410 - ], - "id": "dceb69ae-c2d9-4a0a-aeb9-3ef388e64005" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n.io", - "operation": "contains", - "value2": "io" - } - ] - } - }, - "name": "IF3", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 450, - 670 - ], - "id": "9c377027-9b03-4d11-8405-f13c773efff1" - }, - { - "parameters": { - "conditions": { - "boolean": [ - { - "value1": true, - "value2": true - } - ] - } - }, - "name": "IF4", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 620, - 100 - ], - "id": "c790a2e9-20de-45b9-b5be-f7d78e8f8e01" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [ - { - "value1": "2021-02-27T23:00:00.000Z", - "operation": "before", - "value2": "2021-02-28T23:00:00.000Z" - } - ] - } - }, - "name": "IF5", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 610, - 250 - ], - "id": "acc6b0b6-539c-4fdb-8275-da2ad32e18e5" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 5, - "operation": "smallerEqual", - "value2": 5 - } - ] - } - }, - "name": "IF6", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 600, - 410 - ], - "id": "2132f7b3-cebc-4873-9eff-8b17e678947f" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 5, - "operation": "equal", - "value2": 5 - } - ] - } - }, - "name": "IF7", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 750, - 410 - ], - "id": "668ff49b-0ab6-476e-987c-23ad3e31f01a" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 6, - "operation": "notEqual", - "value2": 5 - } - ] - } - }, - "name": "IF8", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 900, - 410 - ], - "id": "86cb816b-0a96-4e04-baca-6fd0b81963bd" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 6, - "operation": "larger", - "value2": 5 - } - ] - } - }, - "name": "IF9", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1050, - 410 - ], - "id": "c7b5d37c-ef3d-4e52-b577-61e07b741943" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": 6, - "operation": "largerEqual", - "value2": 5 - } - ] - } - }, - "name": "IF10", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1200, - 410 - ], - "id": "9058992b-0369-43fb-b03b-566a891e111b" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n.io", - "operation": "endsWith", - "value2": "io" - } - ] - } - }, - "name": "IF11", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 600, - 670 - ], - "id": "e59a8821-d56d-445f-948f-cdbf113d7185" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n", - "value2": "n8n" - } - ] - } - }, - "name": "IF12", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 750, - 670 - ], - "id": "e30e0fda-749f-4fa1-84d3-f662b35d14cd" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n", - "operation": "notContains", - "value2": "9" - } - ] - } - }, - "name": "IF13", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 900, - 670 - ], - "id": "680373c4-912e-4c35-8dd4-6682cc215914" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n", - "operation": "notEqual", - "value2": "n9n" - } - ] - } - }, - "name": "IF14", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1050, - 670 - ], - "id": "1883b843-2bd0-44f1-8e1f-f371dcbb6276" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n", - "operation": "regex", - "value2": "/n[1-8]n/i" - } - ] - } - }, - "name": "IF15", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1200, - 670 - ], - "id": "7b167295-0811-4aa6-a769-beaac7f91a24" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "value1": "n8n.io", - "operation": "startsWith", - "value2": "n8n" - } - ] - } - }, - "name": "IF16", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1350, - 670 - ], - "id": "39c6a9fd-c9ea-4528-b8ac-c9461e053ef5" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [], - "string": [ - { - "operation": "isEmpty" - } - ] - } - }, - "name": "IF17", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1500, - 670 - ], - "id": "e0b3a955-6f8d-4a7b-bd09-8eb779d9bd42" - }, - { - "parameters": { - "conditions": { - "boolean": [], - "dateTime": [], - "number": [ - { - "value1": "={{}}", - "operation": "isEmpty" - } - ] - } - }, - "name": "IF18", - "type": "n8n-nodes-base.if", - "typeVersion": 1, - "position": [ - 1350, - 410 - ], - "id": "1b87e5de-dd4e-40b5-b54c-4402edd94462" - }, - { - "parameters": { - "functionCode": "throw Error('Problem in boolean statement');\n" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 800, - 90 - ], - "notesInFlow": true, - "notes": "Boolean Error", - "id": "a2347b9b-db80-4e15-8863-32288e42f3d1" - }, - { - "parameters": { - "functionCode": "throw Error('Problem in Date&Time statement');\n" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 790, - 250 - ], - "notesInFlow": true, - "notes": "Date&Time Error", - "id": "95f68b92-15db-48db-89a4-9c8e0465be49" - }, - { - "parameters": { - "functionCode": "throw Error('Problem in Number statement');\n" - }, - "name": "Function2", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 840, - 540 - ], - "notesInFlow": true, - "notes": "Number Error", - "id": "33a9a8db-7c54-4154-ad8c-b03050b9341c" - }, - { - "parameters": { - "functionCode": "throw Error('Problem in String comparison statement');\n" - }, - "name": "Function3", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 970, - 840 - ], - "notesInFlow": true, - "notes": "String Error", - "id": "919cfdb2-72b2-41b5-aaaf-5df780fe57ba" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "IF", - "type": "main", - "index": 0 - }, - { - "node": "IF1", - "type": "main", - "index": 0 - }, - { - "node": "IF2", - "type": "main", - "index": 0 - }, - { - "node": "IF3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF": { - "main": [ - [ - { - "node": "IF4", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF1": { - "main": [ - [ - { - "node": "IF5", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF2": { - "main": [ - [ - { - "node": "IF6", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF4": { - "main": [ - [], - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF5": { - "main": [ - [], - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF10": { - "main": [ - [ - { - "node": "IF18", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF9": { - "main": [ - [ - { - "node": "IF10", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF8": { - "main": [ - [ - { - "node": "IF9", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF7": { - "main": [ - [ - { - "node": "IF8", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF6": { - "main": [ - [ - { - "node": "IF7", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF3": { - "main": [ - [ - { - "node": "IF11", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF11": { - "main": [ - [ - { - "node": "IF12", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF12": { - "main": [ - [ - { - "node": "IF13", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF13": { - "main": [ - [ - { - "node": "IF14", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF14": { - "main": [ - [ - { - "node": "IF15", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF15": { - "main": [ - [ - { - "node": "IF16", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF16": { - "main": [ - [ - { - "node": "IF17", - "type": "main", - "index": 0 - } - ], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF18": { - "main": [ - [], - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "IF17": { - "main": [ - [], - [ - { - "node": "Function3", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/93.json b/test-workflows/workflows/93.json deleted file mode 100644 index 124dd0f7d5..0000000000 --- a/test-workflows/workflows/93.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "createdAt": "2021-03-03T13:27:06.481Z", - "updatedAt": "2021-03-03T13:32:50.258Z", - "id": "93", - "name": "Move Binary Data:toJSON:toBinary", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "490486f2-7ea9-410e-9281-84cd27836115" - }, - { - "parameters": { - "mode": "jsonToBinary", - "options": {} - }, - "name": "Move Binary Data", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "id": "9ddb3642-7086-4f67-8b20-9255bc2b99cc" - }, - { - "parameters": { - "functionCode": "item = {\n name:'test',\n indexes:[1,2,3],\n subobj:{\n name:'subtest'\n }\n};\nreturn item;" - }, - "name": "FunctionItem", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "notesInFlow": true, - "notes": "Set json data", - "id": "8c99a563-2438-4822-b35d-3016c7524c50" - }, - { - "parameters": { - "options": {} - }, - "name": "Move Binary Data1", - "type": "n8n-nodes-base.moveBinaryData", - "typeVersion": 1, - "position": [ - 750, - 300 - ], - "id": "43d6faba-afc5-45bd-b477-a28054b75ddf" - }, - { - "parameters": { - "functionCode": "if(JSON.stringify($node['FunctionItem'].json)!==JSON.stringify($node['Move Binary Data1'].json)){\n throw new Error('Problem in move binary node');\n}\n\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 900, - 300 - ], - "notesInFlow": true, - "notes": "Evaluate the conversion result", - "id": "e4fbc1b7-b88e-49c3-bb0c-9dda8a447617" - } - ], - "connections": { - "Move Binary Data": { - "main": [ - [ - { - "node": "Move Binary Data1", - "type": "main", - "index": 0 - } - ] - ] - }, - "FunctionItem": { - "main": [ - [ - { - "node": "Move Binary Data", - "type": "main", - "index": 0 - } - ] - ] - }, - "Move Binary Data1": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "FunctionItem", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/94.json b/test-workflows/workflows/94.json deleted file mode 100644 index 48f6898537..0000000000 --- a/test-workflows/workflows/94.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "createdAt": "2021-03-03T14:18:03.010Z", - "updatedAt": "2021-03-03T14:18:09.549Z", - "id": "94", - "name": "XML:toJSON:toXML", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "50d8428b-c132-49cb-8f4c-2eeba448d666" - }, - { - "parameters": { - "mode": "jsonToxml", - "options": {} - }, - "name": "XML", - "type": "n8n-nodes-base.xml", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "id": "664b8c25-5107-4715-a463-9a954965c096" - }, - { - "parameters": { - "functionCode": "item= {\n name:'testing xml',\n arr:[{key:'item1'},{key:'item2'}],\n subobj:{\n arr:[1,2,3,4,5],\n secondarr:[{key:'subitem1'},{key:'subitem2'},{key:'subitem3'}]\n }\n};\nreturn item;" - }, - "name": "FunctionItem", - "type": "n8n-nodes-base.functionItem", - "typeVersion": 1, - "position": [ - 450, - 300 - ], - "id": "dfb38369-2fb3-4d92-b843-b663b3a4675a" - }, - { - "parameters": { - "options": { - "explicitRoot": false - } - }, - "name": "XML1", - "type": "n8n-nodes-base.xml", - "typeVersion": 1, - "position": [ - 800, - 350 - ], - "id": "7085c1d8-a216-47a7-98d1-2f5e9e3eda47" - }, - { - "parameters": { - "functionCode": "if(JSON.stringify($node['FunctionItem'].json) !== JSON.stringify($node['XML1'].json) ){\n throw new Error('Problem in XML conversion');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 990, - 350 - ], - "id": "f03b8331-fa37-4aeb-97c9-0a3514942f96" - } - ], - "connections": { - "XML": { - "main": [ - [ - { - "node": "XML1", - "type": "main", - "index": 0 - } - ] - ] - }, - "FunctionItem": { - "main": [ - [ - { - "node": "XML", - "type": "main", - "index": 0 - } - ] - ] - }, - "XML1": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "FunctionItem", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/95.json b/test-workflows/workflows/95.json deleted file mode 100644 index 0ccca2a152..0000000000 --- a/test-workflows/workflows/95.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "createdAt": "2021-03-03T14:28:28.227Z", - "updatedAt": "2021-03-03T14:28:29.476Z", - "id": "95", - "name": "Set", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "32be2fcf-b143-442e-877f-96b51b0b5148" - }, - { - "parameters": { - "values": { - "string": [ - { - "name": "name", - "value": "test" - } - ] - }, - "options": {} - }, - "name": "Set", - "type": "n8n-nodes-base.set", - "typeVersion": 1, - "position": [ - 430, - 300 - ], - "id": "17c6fa30-1a0e-4d29-8c73-ef9357d5f877" - }, - { - "parameters": { - "functionCode": "testData = JSON.stringify({\n name: \"test\"\n});\n\nif(JSON.stringify($node['Set'].json)!==testData){\n throw new Error('Error in Set node');\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 600, - 300 - ], - "notesInFlow": true, - "notes": "Verify the result of set node", - "id": "c6e9a289-5551-4db5-8d32-a11953bc92d6" - } - ], - "connections": { - "Set": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Set", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/96.json b/test-workflows/workflows/96.json deleted file mode 100644 index c962fcb822..0000000000 --- a/test-workflows/workflows/96.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "createdAt": "2021-03-03T14:48:52.147Z", - "updatedAt": "2021-03-03T14:49:01.728Z", - "id": "96", - "name": "MessageBird:Sms:send:Balance:get", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "a19a2b96-9d4e-40dc-ae19-ffa7d1de094c" - }, - { - "parameters": { - "resource": "balance" - }, - "name": "MessageBird", - "type": "n8n-nodes-base.messageBird", - "typeVersion": 1, - "position": [ - 500, - 240 - ], - "credentials": { - "messageBirdApi": { - "id": "61", - "name": "MessageBird creds" - } - }, - "id": "ab3e0402-21cc-4699-8ba3-b995dd5f17bc" - }, - { - "parameters": { - "originator": "4930270504079 ", - "recipients": "4930270504079 ", - "message": "TestMessage", - "additionalFields": {} - }, - "name": "MessageBird1", - "type": "n8n-nodes-base.messageBird", - "typeVersion": 1, - "position": [ - 500, - 400 - ], - "credentials": { - "messageBirdApi": { - "id": "61", - "name": "MessageBird creds" - } - }, - "id": "67922f27-a0c3-49c9-a48f-98495a45e9e3" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "MessageBird", - "type": "main", - "index": 0 - }, - { - "node": "MessageBird1", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/97.json b/test-workflows/workflows/97.json deleted file mode 100644 index e61733b956..0000000000 --- a/test-workflows/workflows/97.json +++ /dev/null @@ -1,500 +0,0 @@ -{ - "createdAt": "2024-02-14T09:47:52.295Z", - "updatedAt": "2024-02-14T09:47:52.295Z", - "id": "97", - "name": "Crypto", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 880, - 760 - ], - "id": "17f0290e-2fc4-4bb8-a8fe-da8b0ad82d11" - }, - { - "parameters": { - "type": "SHA256", - "value": "n8n" - }, - "name": "Crypto1", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1380, - 560 - ], - "id": "8853a37b-fcf3-4ac7-913e-964a48497339" - }, - { - "parameters": { - "type": "SHA384", - "value": "n8n" - }, - "name": "Crypto2", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1530, - 560 - ], - "id": "cf4718ee-852d-48f0-b96e-048283221cbd" - }, - { - "parameters": { - "type": "SHA512", - "value": "n8n" - }, - "name": "Crypto3", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1680, - 560 - ], - "id": "8d05e80a-e7ff-4ae8-9f04-8a4f33579308" - }, - { - "parameters": { - "functionCode": "testData = ['5877e26c078d6409fde54d508bf25721','636396f02b6571e40d8fe91cba550515c0cdc0e7d314c210e00b02256375a796','c7049c8950ea211bec236edffb37cbecf2aa338443c5e048c1cbb4e2ee20eb60fa9a1d34699d7a86e7362b010bb4ffe7','a8a7eec953f1f31484a479c84982d52847de602d7f220ac3903518369a7536693d60882e5eb782599e72024fb649cc03aa0a19ebce632e9039b4f604335834af']\n\nfor(let i=0;i<4;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i]){\n throw new Error(`Error in HASH: ${$node[`Crypto${i}`].parameter[\"type\"]} operation`);\n }\n}\nreturn items;" - }, - "name": "Function", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1880, - 560 - ], - "notesInFlow": true, - "id": "d4232a52-6eed-494e-b99a-13668c58f05b", - "notes": "Verify hash values" - }, - { - "parameters": { - "value": "n8n" - }, - "name": "Crypto0", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1230, - 560 - ], - "id": "3c6f13f3-1202-4629-be6d-8a2ecd973752" - }, - { - "parameters": { - "action": "hmac", - "value": "n8n", - "secret": "secrect" - }, - "name": "Crypto4", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1230, - 710 - ], - "id": "9cc4ea7c-2c71-4a2c-bdb8-208576381724" - }, - { - "parameters": { - "action": "hmac", - "type": "SHA256", - "value": "n8n", - "secret": "secrect" - }, - "name": "Crypto5", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1380, - 710 - ], - "id": "0b318b49-fd2f-4ad7-9927-4048ad87009d" - }, - { - "parameters": { - "action": "hmac", - "type": "SHA384", - "value": "n8n", - "secret": "secrect" - }, - "name": "Crypto6", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1530, - 710 - ], - "id": "e4fc0137-576a-4401-8caf-5198ab0970e9" - }, - { - "parameters": { - "action": "hmac", - "type": "SHA512", - "value": "n8n", - "secret": "secrect" - }, - "name": "Crypto7", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1680, - 710 - ], - "id": "f1193f43-762d-4659-9444-ebea098c897e" - }, - { - "parameters": { - "functionCode": "testData = ['3fb7c95bca84c0bf49045b4e6a279dc0','a8066096944b87daa8d0459629d8f3958d35fa453c310e7370b619d0b81ce48e','08bec8212275cd79a1c6bf52cad5b31ccd46ec87c7a8a9d1c8589c816f8a7124313528040b138229e15c32c1b3c82b80','0f53f3a374314123991b32e47159ad44e1c61d1c0e96809c1f19d54a5e955c06d5b633f376f2a8419e36ea4b63346fcb39d389714c344771140fd512ac55723a']\n\nfor(let i=4;i<8;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i-4]){\n throw new Error(`Error in Hmac: ${$node[`Crypto${i}`].parameter[\"type\"]} operation`);\n }\n}\nreturn items;" - }, - "name": "Function1", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 1880, - 710 - ], - "notesInFlow": true, - "id": "b4c78dc0-9064-4de6-9c9d-1e6d6ce4b716", - "notes": "Verify hmac values" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "ripemd", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto11", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1400, - 900 - ], - "alwaysOutputData": true, - "id": "95830d32-cbdc-4fe9-914b-0b799ff503a7" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "ripemd160", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto12", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1580, - 900 - ], - "alwaysOutputData": true, - "id": "66906a33-ae4d-4e65-b809-614fecbc2c56" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "rmd160", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto13", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1780, - 900 - ], - "alwaysOutputData": true, - "id": "6832df1e-f3ff-479a-ac25-f04ed8be05ac" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "sha1", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto14", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 2040, - 900 - ], - "alwaysOutputData": true, - "id": "4549f4f2-eadb-4df0-8e27-701d62f7d750" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "sha224", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto15", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 2170, - 900 - ], - "alwaysOutputData": true, - "id": "07643489-a8fa-40c7-a1df-b3b910a5c83a" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "sha256", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto16", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 2300, - 900 - ], - "alwaysOutputData": true, - "id": "bde3009c-b253-4ff6-b7bc-89d3b02ef2b6" - }, - { - "parameters": { - "functionCode": "testData = [\n '9d0bc120a967882743370f715dfa90789c4d9322a4faf691d1f80b306c6bd900bfcba5f62946ef88ba7e1fdd008ff3efe8545b979299b14e0e0eccd3e33b1afa11397494526e31968f13d2ac3e3deaa2bc4a27862b7025444c91ebed5f1b98d2c0390630d8eabc6a7662a9ab069cb3aab273ae1c09f20f51fa8e04af4bcccbc6',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n '0b494c8146f7efd7aa53b418a7057a3a57317a0380c06c7d18114077a03fc6441b57ca8c03edff4ca6fdc2394d026893258b97d34bf0c5c44bc20bd264899eb1316da1e624db1455c73c9054ff732464f775b473b3ba67250ffd74ee42b1acfdf5539bf793d7002327d8d156424444624a625f8dd3f013d40a7ba7b6726186a9',\n 'b9d0c7c4acb8ef55b5c323f82755fb420e5145bafe4de34925e86c53c9f652eb08ec0d87a9be95ca0c0d90b16dd1b55f1200d87c13e4cdb1ae902f41998314f7b85ffc82f0f1d5296119bd92e23ae685b8b59a3a4ba4b8d54db2314c077b1b238c4ac582e36b51c18c0b5474f0d68c1f42e01c08985111ded4cfd3463068d89a',\n '1387958052cf887bd50925a8d44bbf8f138cdd23f51a3422028edf39ad413a1591f5ebd653c4f225298cd6857044648bcfb768113674e7bd11c632fb0fc40cfa646301934b8fcf4da9799272a737155a239e1f8db5e92a23bfa2aeabc6732f5be14078a5815fff542842efed681ac3b919f9d42bfc822b0fd611c0b22286f241',\n '922659a8d40b12f81080425a8676830be06f26dd8cd18cad25d02055332c94b8b9634598ef5b172ee53e53788d33c183bf0984ae3b48d792f426a601dbf2eb4771bc844bc2464de8ca5b6746bbdc2f1713a1e1d57a6970568f033e588c759e4b179b791b7fcb75d323c98cc5c6f33c3659410b159c94bc13834e81ce297ce98d'\n]\n\nfor(let i=10;i<17;i++){\n if($node[`Crypto${i}`].json['data'] !== testData[i-10]){\n throw new Error(`Error in Hmac: ${$node[`Crypto${i}`].parameter[\"algorithm\"]} operation (node:Crypto${i})`);\n }\n}\nreturn items;" - }, - "name": "Function2", - "type": "n8n-nodes-base.function", - "typeVersion": 1, - "position": [ - 2470, - 900 - ], - "alwaysOutputData": true, - "notesInFlow": true, - "id": "ae850710-ba68-44a1-892f-62dc2f270e53", - "notes": "Verify signing values" - }, - { - "parameters": { - "action": "sign", - "value": "n8n", - "algorithm": "md5", - "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDuY4lRGHHAW9mXYY57m/CUzM4zqQ1e0W9D3e76YpipgF6rWtUn\nS8aSD+DxGxp4MldazZTwPPcpJHcV/Hr3A/KezsY9aOpXdnUdquV85969OgyGCRJk\nBv2gowSGfy4ueomfm4PFTPF0anPir+X1IZzAyzO6igL5ZE0Y5rcVrOgLKwIDAQAB\nAoGARfQ4he8d5jwt0HHkzVoX0Zp+AgPgNAxSUcCNEbWgJdFRNoh7l0HxvcfiEu6I\nqG/hWXiNdaf2QYD9XxrNfLIQXj+2MVOh4wpeqbO1DlqiGa9J8y7rLOVO+64ODXGt\nbZns6kcWLx8gYnhwqIJHnqfzvAsFjEKuKiSxpyeK8EvjDW0CQQD91J9DzhSXyvwE\nNaZT4Y9BcEbazVv+xUVhkSs7WRWStimeb57eIrIcXPE9heiT+6QpAnm6EZQR7RWN\n48PiAfbnAkEA8G0gwMWsnpmtb9VbF2uuQxs4Bw5Nuzb6l/+0zTqMELSVCaHIGnxk\nkV08NHfnck1jp1RU9MiUFI1yfRrN6vz1HQJBAMWQ8w3Rn1Gumo2kPHvZeqlSfLPd\nV5drcF9KoL2mzxXMV4SMGLmJg9xzswlR6v8TxGhvFtPuzrNNN5OjDlohcU0CQBOC\nZ3P9FmLQSZiXkYq2/C8J2GQKLxiP/4myADPfGlqIrMdZT2mGyopZLHd9e1R1Hy8G\n0tYCKLH6QF4SfL8iw6kCQCV81eZ/3JthrEfsIMv9lxvTLaRrprI5Eei8Rl+cFhNH\nziv/tOUxppOn1SkHvxXni5F5dbNR9u4mjaCLDau+qIg=\n-----END RSA PRIVATE KEY-----" - }, - "name": "Crypto10", - "type": "n8n-nodes-base.crypto", - "typeVersion": 1, - "position": [ - 1220, - 900 - ], - "alwaysOutputData": true, - "id": "1c33cc3f-7124-4156-99ce-47c8d79408da" - } - ], - "connections": { - "Start": { - "main": [ - [ - { - "node": "Crypto0", - "type": "main", - "index": 0 - }, - { - "node": "Crypto4", - "type": "main", - "index": 0 - }, - { - "node": "Crypto10", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto1": { - "main": [ - [ - { - "node": "Crypto2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto2": { - "main": [ - [ - { - "node": "Crypto3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto3": { - "main": [ - [ - { - "node": "Function", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto0": { - "main": [ - [ - { - "node": "Crypto1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto4": { - "main": [ - [ - { - "node": "Crypto5", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto5": { - "main": [ - [ - { - "node": "Crypto6", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto6": { - "main": [ - [ - { - "node": "Crypto7", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto7": { - "main": [ - [ - { - "node": "Function1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto11": { - "main": [ - [ - { - "node": "Crypto12", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto12": { - "main": [ - [ - { - "node": "Crypto13", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto13": { - "main": [ - [ - { - "node": "Crypto14", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto14": { - "main": [ - [ - { - "node": "Crypto15", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto15": { - "main": [ - [ - { - "node": "Crypto16", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto16": { - "main": [ - [ - { - "node": "Function2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Crypto10": { - "main": [ - [ - { - "node": "Crypto11", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": { - "instanceId": "8e9416f42a954d0a370d988ac3c0f916f44074a6e45189164b1a8559394a7516" - }, - "pinData": {}, - "versionId": "25a0d83c-9242-42bd-8613-6157d43d59a4", - "triggerCount": 0, - "tags": [] -} \ No newline at end of file diff --git a/test-workflows/workflows/98.json b/test-workflows/workflows/98.json deleted file mode 100644 index 833074a87a..0000000000 --- a/test-workflows/workflows/98.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "createdAt": "2021-03-04T08:38:05.147Z", - "updatedAt": "2021-03-04T08:38:05.147Z", - "id": "98", - "name": "Disqus:Forum:get getCategories getThreads getPosts", - "active": false, - "nodes": [ - { - "parameters": {}, - "name": "Start", - "type": "n8n-nodes-base.start", - "typeVersion": 1, - "position": [ - 250, - 300 - ], - "id": "9468a1d9-c07c-4001-804d-f308db6f79a3" - }, - { - "parameters": { - "id": "disqus-demo-page", - "additionalFields": {} - }, - "name": "Disqus", - "type": "n8n-nodes-base.disqus", - "typeVersion": 1, - "position": [ - 500, - 300 - ], - "credentials": { - "disqusApi": { - "id": "5", - "name": "Disqus token" - } - }, - "id": "8c4e3006-b4d8-4015-9eeb-5cb77b7a46aa" - }, - { - "parameters": { - "operation": "getCategories", - "id": "disqus-demo-page", - "limit": 1, - "additionalFields": { - "order": "asc" - } - }, - "name": "Disqus1", - "type": "n8n-nodes-base.disqus", - "typeVersion": 1, - "position": [ - 650, - 300 - ], - "credentials": { - "disqusApi": { - "id": "5", - "name": "Disqus token" - } - }, - "id": "f1db25d5-8f78-4f29-a4f3-d27a3571370e" - }, - { - "parameters": { - "operation": "getThreads", - "id": "disqus-demo-page", - "limit": 1, - "additionalFields": { - "order": "desc" - } - }, - "name": "Disqus2", - "type": "n8n-nodes-base.disqus", - "typeVersion": 1, - "position": [ - 800, - 300 - ], - "credentials": { - "disqusApi": { - "id": "5", - "name": "Disqus token" - } - }, - "id": "4fcd6985-5dc8-4425-b852-25824964082a" - }, - { - "parameters": { - "operation": "getPosts", - "id": "disqus-demo-page", - "limit": 1, - "additionalFields": { - "order": "desc" - } - }, - "name": "Disqus3", - "type": "n8n-nodes-base.disqus", - "typeVersion": 1, - "position": [ - 950, - 300 - ], - "credentials": { - "disqusApi": { - "id": "5", - "name": "Disqus token" - } - }, - "id": "0dfe850e-186a-4072-b722-f35e15deeb16" - } - ], - "connections": { - "Disqus2": { - "main": [ - [ - { - "node": "Disqus3", - "type": "main", - "index": 0 - } - ] - ] - }, - "Disqus1": { - "main": [ - [ - { - "node": "Disqus2", - "type": "main", - "index": 0 - } - ] - ] - }, - "Disqus": { - "main": [ - [ - { - "node": "Disqus1", - "type": "main", - "index": 0 - } - ] - ] - }, - "Start": { - "main": [ - [ - { - "node": "Disqus", - "type": "main", - "index": 0 - } - ] - ] - } - }, - "settings": {}, - "staticData": null, - "meta": null, - "pinData": null, - "versionId": null, - "triggerCount": 0, - "tags": [] -} \ No newline at end of file