github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/design/accepted/diagrams/routerFS-by_lakefs.excalidraw (about) 1 { 2 "type": "excalidraw", 3 "version": 2, 4 "source": "https://excalidraw.com", 5 "elements": [ 6 { 7 "type": "rectangle", 8 "version": 991, 9 "versionNonce": 888832966, 10 "isDeleted": false, 11 "id": "Wd0rSWBOZmJnVFw3WuSgT", 12 "fillStyle": "solid", 13 "strokeWidth": 1, 14 "strokeStyle": "solid", 15 "roughness": 0, 16 "opacity": 100, 17 "angle": 0, 18 "x": -536.0681357686151, 19 "y": 9586.7848052735, 20 "strokeColor": "#000000", 21 "backgroundColor": "transparent", 22 "width": 621.5894886363639, 23 "height": 449.0092329545447, 24 "seed": 1174698422, 25 "groupIds": [], 26 "strokeSharpness": "sharp", 27 "boundElements": [ 28 { 29 "id": "5FNCDX-Av5HcmTO6cjjNk", 30 "type": "arrow" 31 } 32 ], 33 "updated": 1645964081840, 34 "link": null 35 }, 36 { 37 "type": "text", 38 "version": 247, 39 "versionNonce": 280298394, 40 "isDeleted": false, 41 "id": "UzJMI1PF43dflUdUCS2kk", 42 "fillStyle": "solid", 43 "strokeWidth": 1, 44 "strokeStyle": "solid", 45 "roughness": 0, 46 "opacity": 100, 47 "angle": 0, 48 "x": -508.30180054134235, 49 "y": 9623.14347004623, 50 "strokeColor": "#000000", 51 "backgroundColor": "transparent", 52 "width": 92.98295454545455, 53 "height": 42.264979338842956, 54 "seed": 1709286570, 55 "groupIds": [], 56 "strokeSharpness": "sharp", 57 "boundElements": [], 58 "updated": 1645964081840, 59 "link": null, 60 "fontSize": 33.81198347107439, 61 "fontFamily": 1, 62 "text": "Spark", 63 "baseline": 29.264979338842956, 64 "textAlign": "center", 65 "verticalAlign": "top", 66 "containerId": null, 67 "originalText": "Spark" 68 }, 69 { 70 "type": "rectangle", 71 "version": 1896, 72 "versionNonce": 1136794374, 73 "isDeleted": false, 74 "id": "q3UowiCzk_1BKTq1JRn6v", 75 "fillStyle": "solid", 76 "strokeWidth": 1, 77 "strokeStyle": "dashed", 78 "roughness": 0, 79 "opacity": 100, 80 "angle": 0, 81 "x": -209.57310735952433, 82 "y": 9774.565488933908, 83 "strokeColor": "#495057", 84 "backgroundColor": "transparent", 85 "width": 281.368597307614, 86 "height": 240.02812862106552, 87 "seed": 502780662, 88 "groupIds": [ 89 "QikfeP3h50qKL5oP1VqQ7" 90 ], 91 "strokeSharpness": "sharp", 92 "boundElements": [ 93 { 94 "id": "CrSVndb4oaVxhZXiBrr0e", 95 "type": "arrow" 96 }, 97 { 98 "id": "XQJSHZ90m60vcBHVeEE2k", 99 "type": "arrow" 100 }, 101 { 102 "id": "7Vyll8J0hMKw1dMRKCs86", 103 "type": "arrow" 104 } 105 ], 106 "updated": 1645964081840, 107 "link": null 108 }, 109 { 110 "type": "text", 111 "version": 443, 112 "versionNonce": 1699053658, 113 "isDeleted": false, 114 "id": "31T36-_Sl-1CX2lRCNlTt", 115 "fillStyle": "solid", 116 "strokeWidth": 1, 117 "strokeStyle": "dashed", 118 "roughness": 0, 119 "opacity": 100, 120 "angle": 0, 121 "x": -189.69603997817512, 122 "y": 9795.243670431508, 123 "strokeColor": "#0b7285", 124 "backgroundColor": "transparent", 125 "width": 168, 126 "height": 26, 127 "seed": 1012629354, 128 "groupIds": [ 129 "QikfeP3h50qKL5oP1VqQ7" 130 ], 131 "strokeSharpness": "sharp", 132 "boundElements": [ 133 { 134 "id": "Yir9f-7fFgYRiq7gwte06", 135 "type": "arrow" 136 }, 137 { 138 "id": "0jTyJi6wQ19NRfsFmUpE0", 139 "type": "arrow" 140 } 141 ], 142 "updated": 1645964081841, 143 "link": null, 144 "fontSize": 20.14515099363079, 145 "fontFamily": 1, 146 "text": "RouterFileSystem", 147 "baseline": 18, 148 "textAlign": "center", 149 "verticalAlign": "top", 150 "containerId": null, 151 "originalText": "RouterFileSystem" 152 }, 153 { 154 "type": "rectangle", 155 "version": 2789, 156 "versionNonce": 471124550, 157 "isDeleted": false, 158 "id": "bgfgO6OVkf1Bx0lNmz8m5", 159 "fillStyle": "solid", 160 "strokeWidth": 2, 161 "strokeStyle": "solid", 162 "roughness": 0, 163 "opacity": 100, 164 "angle": 0, 165 "x": -147.80196443994328, 166 "y": 10222.49626178574, 167 "strokeColor": "#495057", 168 "backgroundColor": "transparent", 169 "width": 219.39950284090912, 170 "height": 154.09910402097873, 171 "seed": 1756234806, 172 "groupIds": [], 173 "strokeSharpness": "sharp", 174 "boundElements": [ 175 { 176 "id": "8yCvhNAcrKHcKfgCGGUbL", 177 "type": "text" 178 }, 179 { 180 "id": "XQJSHZ90m60vcBHVeEE2k", 181 "type": "arrow" 182 }, 183 { 184 "id": "Fuiz28ro6kddH8Z6FeJIE", 185 "type": "arrow" 186 }, 187 { 188 "id": "fGFOrIt4odl5MKaC9cLIP", 189 "type": "arrow" 190 }, 191 { 192 "id": "8yCvhNAcrKHcKfgCGGUbL", 193 "type": "text" 194 }, 195 { 196 "id": "8yCvhNAcrKHcKfgCGGUbL", 197 "type": "text" 198 }, 199 { 200 "id": "mqKjNbjjYx9UZIa68bJ1Y", 201 "type": "arrow" 202 }, 203 { 204 "id": "eSiMXO-nHP25ajUzkUni0", 205 "type": "arrow" 206 }, 207 { 208 "type": "text", 209 "id": "8yCvhNAcrKHcKfgCGGUbL" 210 } 211 ], 212 "updated": 1645964081841, 213 "link": null 214 }, 215 { 216 "type": "text", 217 "version": 2697, 218 "versionNonce": 1948804378, 219 "isDeleted": false, 220 "id": "8yCvhNAcrKHcKfgCGGUbL", 221 "fillStyle": "solid", 222 "strokeWidth": 1, 223 "strokeStyle": "solid", 224 "roughness": 0, 225 "opacity": 100, 226 "angle": 0, 227 "x": -142.80196443994328, 228 "y": 10279.545813796229, 229 "strokeColor": "#495057", 230 "backgroundColor": "transparent", 231 "width": 209.39950284090912, 232 "height": 40, 233 "seed": 1145831978, 234 "groupIds": [], 235 "strokeSharpness": "sharp", 236 "boundElements": [], 237 "updated": 1645964081841, 238 "link": null, 239 "fontSize": 16, 240 "fontFamily": 1, 241 "text": "Underlying\nFileSystem", 242 "baseline": 34, 243 "textAlign": "center", 244 "verticalAlign": "middle", 245 "containerId": "bgfgO6OVkf1Bx0lNmz8m5", 246 "originalText": "Underlying\nFileSystem" 247 }, 248 { 249 "type": "text", 250 "version": 2362, 251 "versionNonce": 214929798, 252 "isDeleted": false, 253 "id": "ReFxMRhTp-2njui4pkhBW", 254 "fillStyle": "solid", 255 "strokeWidth": 1, 256 "strokeStyle": "solid", 257 "roughness": 0, 258 "opacity": 100, 259 "angle": 0, 260 "x": -1200.5873119049786, 261 "y": 9533.065730511464, 262 "strokeColor": "#0b7285", 263 "backgroundColor": "transparent", 264 "width": 552, 265 "height": 40, 266 "seed": 2014055798, 267 "groupIds": [], 268 "strokeSharpness": "sharp", 269 "boundElements": [ 270 { 271 "id": "CrSVndb4oaVxhZXiBrr0e", 272 "type": "arrow" 273 } 274 ], 275 "updated": 1645964081841, 276 "link": null, 277 "fontSize": 31.895900106837598, 278 "fontFamily": 1, 279 "text": "Read an object managed by lakeFS", 280 "baseline": 28, 281 "textAlign": "left", 282 "verticalAlign": "top", 283 "containerId": null, 284 "originalText": "Read an object managed by lakeFS" 285 }, 286 { 287 "type": "text", 288 "version": 1803, 289 "versionNonce": 2144231132, 290 "isDeleted": false, 291 "id": "4qOzKwAw-pzrcsXL1WC0r", 292 "fillStyle": "solid", 293 "strokeWidth": 1, 294 "strokeStyle": "solid", 295 "roughness": 0, 296 "opacity": 100, 297 "angle": 0, 298 "x": -924.8195562231604, 299 "y": 9664.491165753305, 300 "strokeColor": "#000000", 301 "backgroundColor": "transparent", 302 "width": 275, 303 "height": 40, 304 "seed": 1755196650, 305 "groupIds": [], 306 "strokeSharpness": "sharp", 307 "boundElements": [ 308 { 309 "id": "CrSVndb4oaVxhZXiBrr0e", 310 "type": "arrow" 311 } 312 ], 313 "updated": 1646560970125, 314 "link": null, 315 "fontSize": 16, 316 "fontFamily": 1, 317 "text": "(1) spark.read.parquet\n(\"s3a://bucket/prefix/foo.parquet\")", 318 "baseline": 34, 319 "textAlign": "left", 320 "verticalAlign": "top", 321 "containerId": null, 322 "originalText": "(1) spark.read.parquet\n(\"s3a://bucket/prefix/foo.parquet\")" 323 }, 324 { 325 "type": "rectangle", 326 "version": 528, 327 "versionNonce": 19886278, 328 "isDeleted": false, 329 "id": "VxENWKfTP6WNcJfvqLatp", 330 "fillStyle": "solid", 331 "strokeWidth": 1, 332 "strokeStyle": "solid", 333 "roughness": 0, 334 "opacity": 100, 335 "angle": 0, 336 "x": -1068.2343289504333, 337 "y": 9727.139918909872, 338 "strokeColor": "#000000", 339 "backgroundColor": "transparent", 340 "width": 165, 341 "height": 139.90767045454598, 342 "seed": 425127606, 343 "groupIds": [], 344 "strokeSharpness": "sharp", 345 "boundElements": [ 346 { 347 "id": "CvB0Yr4NWn6GBs4MzUGJ2", 348 "type": "text" 349 }, 350 { 351 "id": "5FNCDX-Av5HcmTO6cjjNk", 352 "type": "arrow" 353 }, 354 { 355 "type": "text", 356 "id": "CvB0Yr4NWn6GBs4MzUGJ2" 357 } 358 ], 359 "updated": 1645964081841, 360 "link": null 361 }, 362 { 363 "type": "text", 364 "version": 426, 365 "versionNonce": 5334682, 366 "isDeleted": false, 367 "id": "CvB0Yr4NWn6GBs4MzUGJ2", 368 "fillStyle": "solid", 369 "strokeWidth": 1, 370 "strokeStyle": "solid", 371 "roughness": 0, 372 "opacity": 100, 373 "angle": 0, 374 "x": -1063.2343289504333, 375 "y": 9784.593754137144, 376 "strokeColor": "#000000", 377 "backgroundColor": "transparent", 378 "width": 155, 379 "height": 25, 380 "seed": 2128412586, 381 "groupIds": [], 382 "strokeSharpness": "sharp", 383 "boundElements": [], 384 "updated": 1645964081841, 385 "link": null, 386 "fontSize": 20, 387 "fontFamily": 1, 388 "text": "Spark client", 389 "baseline": 18, 390 "textAlign": "center", 391 "verticalAlign": "middle", 392 "containerId": "VxENWKfTP6WNcJfvqLatp", 393 "originalText": "Spark client" 394 }, 395 { 396 "type": "arrow", 397 "version": 355, 398 "versionNonce": 1959880710, 399 "isDeleted": false, 400 "id": "5FNCDX-Av5HcmTO6cjjNk", 401 "fillStyle": "solid", 402 "strokeWidth": 1, 403 "strokeStyle": "solid", 404 "roughness": 0, 405 "opacity": 100, 406 "angle": 0, 407 "x": -901.6647266777059, 408 "y": 9799.689634818962, 409 "strokeColor": "#000000", 410 "backgroundColor": "transparent", 411 "width": 360.938193260278, 412 "height": 0.12462023666921596, 413 "seed": 691251190, 414 "groupIds": [], 415 "strokeSharpness": "round", 416 "boundElements": [], 417 "updated": 1645964081841, 418 "link": null, 419 "startBinding": { 420 "elementId": "VxENWKfTP6WNcJfvqLatp", 421 "focus": 0.03667860947903231, 422 "gap": 1.5696022727274794 423 }, 424 "endBinding": { 425 "elementId": "Wd0rSWBOZmJnVFw3WuSgT", 426 "focus": 0.05060395181513596, 427 "gap": 4.658397648812752 428 }, 429 "lastCommittedPoint": null, 430 "startArrowhead": null, 431 "endArrowhead": "arrow", 432 "points": [ 433 [ 434 0, 435 0 436 ], 437 [ 438 360.938193260278, 439 0.12462023666921596 440 ] 441 ] 442 }, 443 { 444 "type": "arrow", 445 "version": 1319, 446 "versionNonce": 157123418, 447 "isDeleted": false, 448 "id": "7Vyll8J0hMKw1dMRKCs86", 449 "fillStyle": "solid", 450 "strokeWidth": 1, 451 "strokeStyle": "solid", 452 "roughness": 0, 453 "opacity": 100, 454 "angle": 0, 455 "x": -447.6692189419282, 456 "y": 9684.600493186326, 457 "strokeColor": "#000000", 458 "backgroundColor": "transparent", 459 "width": 226.78526694383834, 460 "height": 112.57526653117111, 461 "seed": 1932753514, 462 "groupIds": [], 463 "strokeSharpness": "round", 464 "boundElements": [], 465 "updated": 1645964081841, 466 "link": null, 467 "startBinding": null, 468 "endBinding": { 469 "elementId": "q3UowiCzk_1BKTq1JRn6v", 470 "focus": 0.1156393505796209, 471 "gap": 11.310844638565527 472 }, 473 "lastCommittedPoint": null, 474 "startArrowhead": null, 475 "endArrowhead": "arrow", 476 "points": [ 477 [ 478 0, 479 0 480 ], 481 [ 482 226.78526694383834, 483 112.57526653117111 484 ] 485 ] 486 }, 487 { 488 "type": "text", 489 "version": 2373, 490 "versionNonce": 1739749190, 491 "isDeleted": false, 492 "id": "HWrIIk-q9eoDU7wARUnpW", 493 "fillStyle": "solid", 494 "strokeWidth": 1, 495 "strokeStyle": "solid", 496 "roughness": 0, 497 "opacity": 100, 498 "angle": 0, 499 "x": -382.18200887467606, 500 "y": 9702.105591258358, 501 "strokeColor": "#000000", 502 "backgroundColor": "transparent", 503 "width": 371, 504 "height": 20, 505 "seed": 665270582, 506 "groupIds": [], 507 "strokeSharpness": "sharp", 508 "boundElements": [ 509 { 510 "id": "CrSVndb4oaVxhZXiBrr0e", 511 "type": "arrow" 512 } 513 ], 514 "updated": 1645964081841, 515 "link": null, 516 "fontSize": 16, 517 "fontFamily": 1, 518 "text": "(2) fs.open(\"s3a://bucket/prefix/foo.parquet\")\")", 519 "baseline": 14, 520 "textAlign": "left", 521 "verticalAlign": "top", 522 "containerId": null, 523 "originalText": "(2) fs.open(\"s3a://bucket/prefix/foo.parquet\")\")" 524 }, 525 { 526 "type": "text", 527 "version": 2290, 528 "versionNonce": 675606500, 529 "isDeleted": false, 530 "id": "HvFuAM11TQRQdg2-oeN18", 531 "fillStyle": "solid", 532 "strokeWidth": 1, 533 "strokeStyle": "solid", 534 "roughness": 0, 535 "opacity": 100, 536 "angle": 0, 537 "x": 100.86620159541053, 538 "y": 9919.743651548763, 539 "strokeColor": "#000000", 540 "backgroundColor": "transparent", 541 "width": 809, 542 "height": 100, 543 "seed": 1953275178, 544 "groupIds": [], 545 "strokeSharpness": "sharp", 546 "boundElements": [], 547 "updated": 1646038045034, 548 "link": null, 549 "fontSize": 16, 550 "fontFamily": 1, 551 "text": "\n(4) get the right underlying file system that interacts with the right object storage\n4.1 translatedPath = \"lakefs://example-repo/dev/prefix/foo.parquet\"\n4.2 underlyingFS = translatedPath.getFileSystem() // S3AFileSystem according to Spark configurations\n", 552 "baseline": 94, 553 "textAlign": "left", 554 "verticalAlign": "top", 555 "containerId": null, 556 "originalText": "\n(4) get the right underlying file system that interacts with the right object storage\n4.1 translatedPath = \"lakefs://example-repo/dev/prefix/foo.parquet\"\n4.2 underlyingFS = translatedPath.getFileSystem() // S3AFileSystem according to Spark configurations\n" 557 }, 558 { 559 "type": "text", 560 "version": 2346, 561 "versionNonce": 568042084, 562 "isDeleted": false, 563 "id": "ilA1XsFmJYqk5LNb7dHII", 564 "fillStyle": "solid", 565 "strokeWidth": 1, 566 "strokeStyle": "solid", 567 "roughness": 0, 568 "opacity": 100, 569 "angle": 0, 570 "x": -1199.8054305918477, 571 "y": 9890.656169586282, 572 "strokeColor": "#a61e4d", 573 "backgroundColor": "transparent", 574 "width": 533, 575 "height": 537, 576 "seed": 536045546, 577 "groupIds": [], 578 "strokeSharpness": "sharp", 579 "boundElements": [], 580 "updated": 1646042534232, 581 "link": null, 582 "fontSize": 14.914062500000005, 583 "fontFamily": 1, 584 "text": "Spark Configurations = { \n //\n // File system configurations\n //\n\n // Any fs operation first reaching RouterFS \n fs.s3a.impl=RouterFileSystem\n \n // Configuration of a file system that accesses lakefs\n fs.lakefs.impl=S3AFileSystem\n fs.lakefs.access.key='AKIAlakefs12345EXAMPLE' \n fs.lakefs.secret.key='abc/lakefs/1234567bPxRfiCYEXAMPLEKEY' \n fs.lakefs.endpoint='https://lakefs.example.com'\n \n \n //\n // Path mapping configurations \n //\n routerfs.mapping.1.lakefs.replace = '^s3a://bucket/prefix'\n routerfs.mapping.1.lakefs.with = 'lakefs://example-repo/dev/prefix'\n routerfs.mapping.2.lakefs.replace = '^s3a://another-bucket'\n routerfs.mapping.2.lakefs.with = 'lakefs://another-repo/main'\n\n // Default mapping, should be applied last \n routerfs.mapping.default.replace = '^s3a://'\n routerfs.mapping.default.with = 's3a-wrapped://'\n}\n \n", 585 "baseline": 531, 586 "textAlign": "left", 587 "verticalAlign": "top", 588 "containerId": null, 589 "originalText": "Spark Configurations = { \n //\n // File system configurations\n //\n\n // Any fs operation first reaching RouterFS \n fs.s3a.impl=RouterFileSystem\n \n // Configuration of a file system that accesses lakefs\n fs.lakefs.impl=S3AFileSystem\n fs.lakefs.access.key='AKIAlakefs12345EXAMPLE' \n fs.lakefs.secret.key='abc/lakefs/1234567bPxRfiCYEXAMPLEKEY' \n fs.lakefs.endpoint='https://lakefs.example.com'\n \n \n //\n // Path mapping configurations \n //\n routerfs.mapping.1.lakefs.replace = '^s3a://bucket/prefix'\n routerfs.mapping.1.lakefs.with = 'lakefs://example-repo/dev/prefix'\n routerfs.mapping.2.lakefs.replace = '^s3a://another-bucket'\n routerfs.mapping.2.lakefs.with = 'lakefs://another-repo/main'\n\n // Default mapping, should be applied last \n routerfs.mapping.default.replace = '^s3a://'\n routerfs.mapping.default.with = 's3a-wrapped://'\n}\n \n" 590 }, 591 { 592 "type": "rectangle", 593 "version": 2040, 594 "versionNonce": 1627649242, 595 "isDeleted": false, 596 "id": "c5ilVyY7Qkxj3q0U_CFVY", 597 "fillStyle": "solid", 598 "strokeWidth": 1, 599 "strokeStyle": "dashed", 600 "roughness": 0, 601 "opacity": 100, 602 "angle": 0, 603 "x": -193.16153065497883, 604 "y": 9914.041006103938, 605 "strokeColor": "#000000", 606 "backgroundColor": "transparent", 607 "width": 251.18963068181827, 608 "height": 87.39100743006965, 609 "seed": 424076214, 610 "groupIds": [], 611 "strokeSharpness": "sharp", 612 "boundElements": [ 613 { 614 "id": "aPX6mC498oio9ppJHREf4", 615 "type": "text" 616 }, 617 { 618 "id": "XQJSHZ90m60vcBHVeEE2k", 619 "type": "arrow" 620 }, 621 { 622 "id": "Fuiz28ro6kddH8Z6FeJIE", 623 "type": "arrow" 624 }, 625 { 626 "id": "fGFOrIt4odl5MKaC9cLIP", 627 "type": "arrow" 628 }, 629 { 630 "id": "aPX6mC498oio9ppJHREf4", 631 "type": "text" 632 }, 633 { 634 "id": "aPX6mC498oio9ppJHREf4", 635 "type": "text" 636 }, 637 { 638 "id": "aPX6mC498oio9ppJHREf4", 639 "type": "text" 640 }, 641 { 642 "id": "Yir9f-7fFgYRiq7gwte06", 643 "type": "arrow" 644 }, 645 { 646 "id": "0jTyJi6wQ19NRfsFmUpE0", 647 "type": "arrow" 648 }, 649 { 650 "id": "mqKjNbjjYx9UZIa68bJ1Y", 651 "type": "arrow" 652 }, 653 { 654 "type": "text", 655 "id": "aPX6mC498oio9ppJHREf4" 656 } 657 ], 658 "updated": 1645964081841, 659 "link": null 660 }, 661 { 662 "type": "text", 663 "version": 1984, 664 "versionNonce": 419814854, 665 "isDeleted": false, 666 "id": "aPX6mC498oio9ppJHREf4", 667 "fillStyle": "solid", 668 "strokeWidth": 1, 669 "strokeStyle": "solid", 670 "roughness": 0, 671 "opacity": 100, 672 "angle": 0, 673 "x": -188.16153065497883, 674 "y": 9947.736509818971, 675 "strokeColor": "#000000", 676 "backgroundColor": "transparent", 677 "width": 241.18963068181827, 678 "height": 20, 679 "seed": 768793258, 680 "groupIds": [], 681 "strokeSharpness": "sharp", 682 "boundElements": [], 683 "updated": 1645964081841, 684 "link": null, 685 "fontSize": 16, 686 "fontFamily": 1, 687 "text": "Path Mapper", 688 "baseline": 14, 689 "textAlign": "center", 690 "verticalAlign": "middle", 691 "containerId": "c5ilVyY7Qkxj3q0U_CFVY", 692 "originalText": "Path Mapper" 693 }, 694 { 695 "type": "arrow", 696 "version": 431, 697 "versionNonce": 1227114906, 698 "isDeleted": false, 699 "id": "Yir9f-7fFgYRiq7gwte06", 700 "fillStyle": "solid", 701 "strokeWidth": 1, 702 "strokeStyle": "solid", 703 "roughness": 0, 704 "opacity": 100, 705 "angle": 0, 706 "x": -175.73697110327566, 707 "y": 9824.455259818968, 708 "strokeColor": "#000000", 709 "backgroundColor": "transparent", 710 "width": 12.90893349308908, 711 "height": 74.44957386363694, 712 "seed": 1901919478, 713 "groupIds": [], 714 "strokeSharpness": "round", 715 "boundElements": [], 716 "updated": 1645964081841, 717 "link": null, 718 "startBinding": { 719 "elementId": "31T36-_Sl-1CX2lRCNlTt", 720 "focus": 0.8446194733014142, 721 "gap": 3.211589387459753 722 }, 723 "endBinding": { 724 "elementId": "c5ilVyY7Qkxj3q0U_CFVY", 725 "focus": -0.6387294666791961, 726 "gap": 15.136172421332958 727 }, 728 "lastCommittedPoint": null, 729 "startArrowhead": null, 730 "endArrowhead": "arrow", 731 "points": [ 732 [ 733 0, 734 0 735 ], 736 [ 737 12.90893349308908, 738 74.44957386363694 739 ] 740 ] 741 }, 742 { 743 "type": "text", 744 "version": 832, 745 "versionNonce": 229768284, 746 "isDeleted": false, 747 "id": "T_6UDO4vYefvS5YMEy_6G", 748 "fillStyle": "solid", 749 "strokeWidth": 1, 750 "strokeStyle": "solid", 751 "roughness": 0, 752 "opacity": 100, 753 "angle": 0, 754 "x": -618.6816143039692, 755 "y": 9932.253042331595, 756 "strokeColor": "#000000", 757 "backgroundColor": "transparent", 758 "width": 377, 759 "height": 38, 760 "seed": 481686890, 761 "groupIds": [], 762 "strokeSharpness": "sharp", 763 "boundElements": [], 764 "updated": 1646560992176, 765 "link": null, 766 "fontSize": 15.293389050777972, 767 "fontFamily": 1, 768 "text": "(3) mapPath(\"s3a://bucket/prefix/foo.parquet\") =\n \"lakefs://example-repo/dev/prefix/foo.parquet\"", 769 "baseline": 33, 770 "textAlign": "left", 771 "verticalAlign": "top", 772 "containerId": null, 773 "originalText": "(3) mapPath(\"s3a://bucket/prefix/foo.parquet\") =\n \"lakefs://example-repo/dev/prefix/foo.parquet\"" 774 }, 775 { 776 "type": "text", 777 "version": 354, 778 "versionNonce": 103533540, 779 "isDeleted": false, 780 "id": "tSqzXLq0S_tyrJS38z5Nu", 781 "fillStyle": "solid", 782 "strokeWidth": 1, 783 "strokeStyle": "solid", 784 "roughness": 0, 785 "opacity": 100, 786 "angle": 0, 787 "x": -25.18887440497906, 788 "y": 10119.632816637151, 789 "strokeColor": "#000000", 790 "backgroundColor": "transparent", 791 "width": 550, 792 "height": 60, 793 "seed": 702410294, 794 "groupIds": [], 795 "strokeSharpness": "sharp", 796 "boundElements": [], 797 "updated": 1646038099675, 798 "link": null, 799 "fontSize": 16, 800 "fontFamily": 1, 801 "text": "(5) Use the underlying file system to read \n underlyingFS.open(\"lakefs://example-repo/dev/prefix/foo.parquet\") \n", 802 "baseline": 54, 803 "textAlign": "left", 804 "verticalAlign": "top", 805 "containerId": null, 806 "originalText": "(5) Use the underlying file system to read \n underlyingFS.open(\"lakefs://example-repo/dev/prefix/foo.parquet\") \n" 807 }, 808 { 809 "type": "arrow", 810 "version": 2141, 811 "versionNonce": 613524550, 812 "isDeleted": false, 813 "id": "mqKjNbjjYx9UZIa68bJ1Y", 814 "fillStyle": "solid", 815 "strokeWidth": 1, 816 "strokeStyle": "solid", 817 "roughness": 0, 818 "opacity": 100, 819 "angle": 0, 820 "x": -45.37399476756764, 821 "y": 10005.194310025945, 822 "strokeColor": "#000000", 823 "backgroundColor": "transparent", 824 "width": 0.6455749537642532, 825 "height": 216.4010428563779, 826 "seed": 1575467050, 827 "groupIds": [], 828 "strokeSharpness": "round", 829 "boundElements": [], 830 "updated": 1645964081841, 831 "link": null, 832 "startBinding": { 833 "elementId": "c5ilVyY7Qkxj3q0U_CFVY", 834 "focus": -0.17539163361673055, 835 "gap": 3.762296491937377 836 }, 837 "endBinding": { 838 "elementId": "bgfgO6OVkf1Bx0lNmz8m5", 839 "focus": -0.05816142191400054, 840 "gap": 1 841 }, 842 "lastCommittedPoint": null, 843 "startArrowhead": null, 844 "endArrowhead": "arrow", 845 "points": [ 846 [ 847 0, 848 0 849 ], 850 [ 851 0.6455749537642532, 852 216.4010428563779 853 ] 854 ] 855 }, 856 { 857 "type": "rectangle", 858 "version": 2890, 859 "versionNonce": 1644047130, 860 "isDeleted": false, 861 "id": "8gxzJ4tsdyg-_9JtHQmak", 862 "fillStyle": "solid", 863 "strokeWidth": 1, 864 "strokeStyle": "solid", 865 "roughness": 0, 866 "opacity": 100, 867 "angle": 0, 868 "x": 652.7827529260232, 869 "y": 10248.916035652108, 870 "strokeColor": "#495057", 871 "backgroundColor": "transparent", 872 "width": 101.87890625, 873 "height": 87.77133413461634, 874 "seed": 531543926, 875 "groupIds": [], 876 "strokeSharpness": "sharp", 877 "boundElements": [ 878 { 879 "id": "G1L2PKGel-qUDiYWasE1L", 880 "type": "text" 881 }, 882 { 883 "id": "XQJSHZ90m60vcBHVeEE2k", 884 "type": "arrow" 885 }, 886 { 887 "id": "G1L2PKGel-qUDiYWasE1L", 888 "type": "text" 889 }, 890 { 891 "id": "eSiMXO-nHP25ajUzkUni0", 892 "type": "arrow" 893 }, 894 { 895 "id": "69b3B2KQTTgYvLd4feQl9", 896 "type": "arrow" 897 }, 898 { 899 "id": "G1L2PKGel-qUDiYWasE1L", 900 "type": "text" 901 }, 902 { 903 "id": "G1L2PKGel-qUDiYWasE1L", 904 "type": "text" 905 }, 906 { 907 "type": "text", 908 "id": "G1L2PKGel-qUDiYWasE1L" 909 } 910 ], 911 "updated": 1645964081841, 912 "link": null 913 }, 914 { 915 "type": "text", 916 "version": 2823, 917 "versionNonce": 1688284038, 918 "isDeleted": false, 919 "id": "G1L2PKGel-qUDiYWasE1L", 920 "fillStyle": "solid", 921 "strokeWidth": 1, 922 "strokeStyle": "solid", 923 "roughness": 0, 924 "opacity": 100, 925 "angle": 0, 926 "x": 657.7827529260232, 927 "y": 10272.801702719416, 928 "strokeColor": "#495057", 929 "backgroundColor": "transparent", 930 "width": 91.87890625, 931 "height": 40, 932 "seed": 22225642, 933 "groupIds": [], 934 "strokeSharpness": "sharp", 935 "boundElements": [], 936 "updated": 1645964081841, 937 "link": null, 938 "fontSize": 16, 939 "fontFamily": 1, 940 "text": "S3 \nGateway", 941 "baseline": 34, 942 "textAlign": "center", 943 "verticalAlign": "top", 944 "containerId": "8gxzJ4tsdyg-_9JtHQmak", 945 "originalText": "S3 Gateway" 946 }, 947 { 948 "type": "ellipse", 949 "version": 2451, 950 "versionNonce": 301840346, 951 "isDeleted": false, 952 "id": "CAjLx9Xo8tP8rvW1jC8jG", 953 "fillStyle": "solid", 954 "strokeWidth": 2, 955 "strokeStyle": "solid", 956 "roughness": 0, 957 "opacity": 100, 958 "angle": 0, 959 "x": 707.5600166906495, 960 "y": 10514.18741674242, 961 "strokeColor": "#fe4b4b", 962 "backgroundColor": "#fe4b4b", 963 "width": 74.05101102941174, 964 "height": 76.09604779411757, 965 "seed": 1259624630, 966 "groupIds": [ 967 "iQ_wjr06U0UO8iE9qImS4" 968 ], 969 "strokeSharpness": "sharp", 970 "boundElements": [ 971 { 972 "id": "fGFOrIt4odl5MKaC9cLIP", 973 "type": "arrow" 974 }, 975 { 976 "id": "69b3B2KQTTgYvLd4feQl9", 977 "type": "arrow" 978 } 979 ], 980 "updated": 1645964081841, 981 "link": null 982 }, 983 { 984 "type": "line", 985 "version": 2684, 986 "versionNonce": 1606273734, 987 "isDeleted": false, 988 "id": "axjhMVluF6FQCXmZDmMIc", 989 "fillStyle": "solid", 990 "strokeWidth": 2, 991 "strokeStyle": "solid", 992 "roughness": 0, 993 "opacity": 100, 994 "angle": 0, 995 "x": 725.349512972936, 996 "y": 10536.748580505175, 997 "strokeColor": "#fff", 998 "backgroundColor": "#fe4b4b", 999 "width": 38.57263165181928, 1000 "height": 41.261250243036045, 1001 "seed": 1635988906, 1002 "groupIds": [ 1003 "iQ_wjr06U0UO8iE9qImS4" 1004 ], 1005 "strokeSharpness": "round", 1006 "boundElements": [], 1007 "updated": 1645964081841, 1008 "link": null, 1009 "startBinding": null, 1010 "endBinding": null, 1011 "lastCommittedPoint": null, 1012 "startArrowhead": null, 1013 "endArrowhead": null, 1014 "points": [ 1015 [ 1016 0, 1017 0 1018 ], 1019 [ 1020 3.8452774439103905, 1021 32.14685684595355 1022 ], 1023 [ 1024 6.768312737880933, 1025 37.98883103590748 1026 ], 1027 [ 1028 20.34867663261207, 1029 40.48662140675077 1030 ], 1031 [ 1032 32.537268066406114, 1033 38.400380608974274 1034 ], 1035 [ 1036 35.36686823918285, 1037 31.944173177083314 1038 ], 1039 [ 1040 38.295773237179446, 1041 0.09767190004004078 1042 ], 1043 [ 1044 37.42304967359553, 1045 -0.7746288362852738 1046 ], 1047 [ 1048 -0.2768584146398325, 1049 0.06636381077350961 1050 ] 1051 ] 1052 }, 1053 { 1054 "type": "ellipse", 1055 "version": 1661, 1056 "versionNonce": 1542302874, 1057 "isDeleted": false, 1058 "id": "M9xTZ9DcvRqHYTRCrwE6A", 1059 "fillStyle": "solid", 1060 "strokeWidth": 2, 1061 "strokeStyle": "solid", 1062 "roughness": 0, 1063 "opacity": 100, 1064 "angle": 0, 1065 "x": 724.699776703729, 1066 "y": 10531.536472750415, 1067 "strokeColor": "#fff", 1068 "backgroundColor": "#fe4b4b", 1069 "width": 39.10563151041674, 1070 "height": 10.753995455228363, 1071 "seed": 1404293622, 1072 "groupIds": [ 1073 "iQ_wjr06U0UO8iE9qImS4" 1074 ], 1075 "strokeSharpness": "round", 1076 "boundElements": [], 1077 "updated": 1645964081841, 1078 "link": null 1079 }, 1080 { 1081 "type": "ellipse", 1082 "version": 1670, 1083 "versionNonce": 1686405638, 1084 "isDeleted": false, 1085 "id": "jUAis8PmXDmT87m54ID1L", 1086 "fillStyle": "solid", 1087 "strokeWidth": 1, 1088 "strokeStyle": "solid", 1089 "roughness": 0, 1090 "opacity": 100, 1091 "angle": 0, 1092 "x": 741.8279812059329, 1093 "y": 10547.677439977664, 1094 "strokeColor": "#fff", 1095 "backgroundColor": "#fff", 1096 "width": 4.69818115234375, 1097 "height": 4.69818115234375, 1098 "seed": 1336078442, 1099 "groupIds": [ 1100 "iQ_wjr06U0UO8iE9qImS4" 1101 ], 1102 "strokeSharpness": "round", 1103 "boundElements": [], 1104 "updated": 1645964081841, 1105 "link": null 1106 }, 1107 { 1108 "type": "line", 1109 "version": 1677, 1110 "versionNonce": 1971390810, 1111 "isDeleted": false, 1112 "id": "hx3g6TV7vl5l5q3ubVGKg", 1113 "fillStyle": "solid", 1114 "strokeWidth": 2, 1115 "strokeStyle": "solid", 1116 "roughness": 0, 1117 "opacity": 100, 1118 "angle": 0, 1119 "x": 743.7886472053553, 1120 "y": 10551.239576668891, 1121 "strokeColor": "#fff", 1122 "backgroundColor": "transparent", 1123 "width": 21.691176470588175, 1124 "height": 10.480238970588175, 1125 "seed": 613557046, 1126 "groupIds": [ 1127 "iQ_wjr06U0UO8iE9qImS4" 1128 ], 1129 "strokeSharpness": "round", 1130 "boundElements": [], 1131 "updated": 1645964081841, 1132 "link": null, 1133 "startBinding": null, 1134 "endBinding": null, 1135 "lastCommittedPoint": null, 1136 "startArrowhead": null, 1137 "endArrowhead": null, 1138 "points": [ 1139 [ 1140 0, 1141 0 1142 ], 1143 [ 1144 -10.181525735294144, 1145 7.120863970588175 1146 ], 1147 [ 1148 -21.691176470588175, 1149 10.480238970588175 1150 ], 1151 [ 1152 -20.045955882352928, 1153 3.120404411764639 1154 ] 1155 ] 1156 }, 1157 { 1158 "type": "arrow", 1159 "version": 2181, 1160 "versionNonce": 1710379334, 1161 "isDeleted": false, 1162 "id": "eSiMXO-nHP25ajUzkUni0", 1163 "fillStyle": "solid", 1164 "strokeWidth": 1, 1165 "strokeStyle": "solid", 1166 "roughness": 0, 1167 "opacity": 100, 1168 "angle": 0, 1169 "x": 74.2432844985924, 1170 "y": 10298.878550044228, 1171 "strokeColor": "#495057", 1172 "backgroundColor": "transparent", 1173 "width": 576.9943821572027, 1174 "height": 0.328049323778032, 1175 "seed": 1065177898, 1176 "groupIds": [], 1177 "strokeSharpness": "round", 1178 "boundElements": [], 1179 "updated": 1645964081841, 1180 "link": null, 1181 "startBinding": { 1182 "elementId": "bgfgO6OVkf1Bx0lNmz8m5", 1183 "focus": -0.009481512157583742, 1184 "gap": 2.6457460976265565 1185 }, 1186 "endBinding": { 1187 "elementId": "8gxzJ4tsdyg-_9JtHQmak", 1188 "focus": -0.14652831778353873, 1189 "gap": 1.5450862702281256 1190 }, 1191 "lastCommittedPoint": null, 1192 "startArrowhead": null, 1193 "endArrowhead": "arrow", 1194 "points": [ 1195 [ 1196 0, 1197 0 1198 ], 1199 [ 1200 576.9943821572027, 1201 0.328049323778032 1202 ] 1203 ] 1204 }, 1205 { 1206 "type": "arrow", 1207 "version": 3520, 1208 "versionNonce": 1711984154, 1209 "isDeleted": false, 1210 "id": "69b3B2KQTTgYvLd4feQl9", 1211 "fillStyle": "solid", 1212 "strokeWidth": 1, 1213 "strokeStyle": "solid", 1214 "roughness": 0, 1215 "opacity": 100, 1216 "angle": 0, 1217 "x": 728.627345566536, 1218 "y": 10380.15923970299, 1219 "strokeColor": "#495057", 1220 "backgroundColor": "transparent", 1221 "width": 2.251968125132862, 1222 "height": 137.43896194868466, 1223 "seed": 1330294, 1224 "groupIds": [], 1225 "strokeSharpness": "round", 1226 "boundElements": [], 1227 "updated": 1645964081841, 1228 "link": null, 1229 "startBinding": { 1230 "elementId": "qadKe1NF9Wxnrrfbdg60C", 1231 "focus": 0.2276185203667748, 1232 "gap": 4.148858356240453 1233 }, 1234 "endBinding": { 1235 "elementId": "CAjLx9Xo8tP8rvW1jC8jG", 1236 "focus": -0.5070834861866774, 1237 "gap": 1.3126886834753861 1238 }, 1239 "lastCommittedPoint": null, 1240 "startArrowhead": null, 1241 "endArrowhead": "arrow", 1242 "points": [ 1243 [ 1244 0, 1245 0 1246 ], 1247 [ 1248 -2.251968125132862, 1249 137.43896194868466 1250 ] 1251 ] 1252 }, 1253 { 1254 "type": "text", 1255 "version": 1897, 1256 "versionNonce": 1247623524, 1257 "isDeleted": false, 1258 "id": "g5ou16pR2eih_1o2Fg_Yo", 1259 "fillStyle": "solid", 1260 "strokeWidth": 1, 1261 "strokeStyle": "solid", 1262 "roughness": 0, 1263 "opacity": 100, 1264 "angle": 0, 1265 "x": 91.1736237739251, 1266 "y": 10319.897020379185, 1267 "strokeColor": "#000000", 1268 "backgroundColor": "transparent", 1269 "width": 414, 1270 "height": 20, 1271 "seed": 1937595882, 1272 "groupIds": [], 1273 "strokeSharpness": "sharp", 1274 "boundElements": [ 1275 { 1276 "id": "eSiMXO-nHP25ajUzkUni0", 1277 "type": "arrow" 1278 } 1279 ], 1280 "updated": 1646038276144, 1281 "link": null, 1282 "fontSize": 16, 1283 "fontFamily": 1, 1284 "text": "(6) getObject(\"example-repo/dev/prefix/foo.parquet\")", 1285 "baseline": 14, 1286 "textAlign": "left", 1287 "verticalAlign": "top", 1288 "containerId": null, 1289 "originalText": "(6) getObject(\"example-repo/dev/prefix/foo.parquet\")" 1290 }, 1291 { 1292 "type": "rectangle", 1293 "version": 506, 1294 "versionNonce": 1383987930, 1295 "isDeleted": false, 1296 "id": "qadKe1NF9Wxnrrfbdg60C", 1297 "fillStyle": "solid", 1298 "strokeWidth": 2, 1299 "strokeStyle": "solid", 1300 "roughness": 0, 1301 "opacity": 100, 1302 "angle": 0, 1303 "x": 637.6196404308794, 1304 "y": 10225.36975634675, 1305 "strokeColor": "#000000", 1306 "backgroundColor": "transparent", 1307 "width": 239.75390624999991, 1308 "height": 150.640625, 1309 "seed": 335498678, 1310 "groupIds": [], 1311 "strokeSharpness": "sharp", 1312 "boundElements": [ 1313 { 1314 "id": "69b3B2KQTTgYvLd4feQl9", 1315 "type": "arrow" 1316 } 1317 ], 1318 "updated": 1645964081841, 1319 "link": null 1320 }, 1321 { 1322 "type": "text", 1323 "version": 1821, 1324 "versionNonce": 152266596, 1325 "isDeleted": false, 1326 "id": "CX0zMdfSJILBh8x_PePUW", 1327 "fillStyle": "solid", 1328 "strokeWidth": 1, 1329 "strokeStyle": "solid", 1330 "roughness": 0, 1331 "opacity": 100, 1332 "angle": 0, 1333 "x": 747.4767481668939, 1334 "y": 10427.7459574664, 1335 "strokeColor": "#000000", 1336 "backgroundColor": "transparent", 1337 "width": 299, 1338 "height": 20, 1339 "seed": 682496170, 1340 "groupIds": [], 1341 "strokeSharpness": "sharp", 1342 "boundElements": [], 1343 "updated": 1646038280326, 1344 "link": null, 1345 "fontSize": 16, 1346 "fontFamily": 1, 1347 "text": "(7) getObject(\"some-physical-address\")", 1348 "baseline": 14, 1349 "textAlign": "left", 1350 "verticalAlign": "top", 1351 "containerId": null, 1352 "originalText": "(7) getObject(\"some-physical-address\")" 1353 }, 1354 { 1355 "type": "text", 1356 "version": 240, 1357 "versionNonce": 1231916954, 1358 "isDeleted": false, 1359 "id": "Wf-yd7Ln3mgosuWpN-gGC", 1360 "fillStyle": "solid", 1361 "strokeWidth": 2, 1362 "strokeStyle": "solid", 1363 "roughness": 0, 1364 "opacity": 100, 1365 "angle": 0, 1366 "x": 777.7212029308794, 1367 "y": 10323.26428759675, 1368 "strokeColor": "#000000", 1369 "backgroundColor": "transparent", 1370 "width": 89, 1371 "height": 35, 1372 "seed": 225978102, 1373 "groupIds": [], 1374 "strokeSharpness": "sharp", 1375 "boundElements": [], 1376 "updated": 1645964081841, 1377 "link": null, 1378 "fontSize": 28, 1379 "fontFamily": 1, 1380 "text": "lakeFS", 1381 "baseline": 25, 1382 "textAlign": "left", 1383 "verticalAlign": "top", 1384 "containerId": null, 1385 "originalText": "lakeFS" 1386 }, 1387 { 1388 "type": "text", 1389 "version": 272, 1390 "versionNonce": 2041073414, 1391 "isDeleted": false, 1392 "id": "gAvT-rA_eEA893HVdqbkI", 1393 "fillStyle": "solid", 1394 "strokeWidth": 2, 1395 "strokeStyle": "solid", 1396 "roughness": 0, 1397 "opacity": 100, 1398 "angle": 0, 1399 "x": -516.1386060968982, 1400 "y": 9881.073749402305, 1401 "strokeColor": "#5c940d", 1402 "backgroundColor": "transparent", 1403 "width": 237, 1404 "height": 25, 1405 "seed": 1119513450, 1406 "groupIds": [], 1407 "strokeSharpness": "sharp", 1408 "boundElements": [], 1409 "updated": 1645964081841, 1410 "link": null, 1411 "fontSize": 20, 1412 "fontFamily": 1, 1413 "text": "Path has mapping config", 1414 "baseline": 18, 1415 "textAlign": "left", 1416 "verticalAlign": "top", 1417 "containerId": null, 1418 "originalText": "Path has mapping config" 1419 }, 1420 { 1421 "type": "arrow", 1422 "version": 407, 1423 "versionNonce": 252480602, 1424 "isDeleted": false, 1425 "id": "hFPh2kpNsqSRVea-o7kBg", 1426 "fillStyle": "solid", 1427 "strokeWidth": 2, 1428 "strokeStyle": "dotted", 1429 "roughness": 0, 1430 "opacity": 100, 1431 "angle": 0, 1432 "x": -168.00585430008334, 1433 "y": 9982.09777460734, 1434 "strokeColor": "#495057", 1435 "backgroundColor": "transparent", 1436 "width": 410.44537927350416, 1437 "height": 293.07725694444525, 1438 "seed": 2132703316, 1439 "groupIds": [], 1440 "strokeSharpness": "round", 1441 "boundElements": [], 1442 "updated": 1645964081841, 1443 "link": null, 1444 "startBinding": null, 1445 "endBinding": null, 1446 "lastCommittedPoint": null, 1447 "startArrowhead": null, 1448 "endArrowhead": "arrow", 1449 "points": [ 1450 [ 1451 0, 1452 0 1453 ], 1454 [ 1455 -410.44537927350416, 1456 293.07725694444525 1457 ] 1458 ] 1459 } 1460 ], 1461 "appState": { 1462 "gridSize": null, 1463 "viewBackgroundColor": "#ffffff" 1464 }, 1465 "files": {} 1466 }