blob: 846dcac4fd08cf79726b874caf3d0a38235e8a8e [file] [log] [blame]
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><script>(function(){const t=localStorage.getItem("theme");t==="dark"?document.documentElement.classList.add("dark-mode"):t==="light"&&document.documentElement.classList.remove("dark-mode");const n=document.documentElement.classList.contains("dark-mode"),e=document.getElementById("theme-icon");e&&(e.classList&&e.classList.toggle("fa-sun",!n),e.classList&&e.classList.toggle("fa-moon",n))})()</script><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=alternate type=text/html href=/docs/tutorial/getting-started/_print/><link rel=alternate type=application/rss+xml href=/docs/tutorial/getting-started/index.xml><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/favicons/android-96x96.png sizes=96x96><link rel=icon type=image/png href=/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/favicons/android-192x192.png sizes=192x192><title>Getting started | Apache OpenServerless™</title>
<meta name=description content="Let's start building a sample application"><meta property="og:url" content="/docs/tutorial/getting-started/"><meta property="og:site_name" content="Apache OpenServerless™"><meta property="og:title" content="Getting started"><meta property="og:description" content="Let's start building a sample application"><meta property="og:locale" content="en"><meta property="og:type" content="website"><meta itemprop=name content="Getting started"><meta itemprop=description content="Let's start building a sample application"><meta itemprop=dateModified content="2025-08-01T16:51:57+02:00"><meta itemprop=wordCount content="641"><meta name=twitter:card content="summary"><meta name=twitter:title content="Getting started"><meta name=twitter:description content="Let's start building a sample application"><link rel=preload href=/scss/main.min.63d3665407fbf8c19373c7376d20ae27b458d1c085cc6645b75d65bbf044b537.css as=style><link href=/scss/main.min.63d3665407fbf8c19373c7376d20ae27b458d1c085cc6645b75d65bbf044b537.css rel=stylesheet integrity><script src=/js/jquery-3.7.1.min.js></script><script defer src=/js/lunr-2.3.9.min.js></script><link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="td-navbar js-navbar-scroll" data-bs-theme=dark><div class="container-fluid flex-column flex-md-row"><a class=navbar-brand href=/><span class="navbar-brand__logo navbar-logo"><svg viewBox="0 0 1024 781"><g stroke-width="2" fill="none" stroke-linecap="butt"><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M438.8 120.98Q435.57 121.88 434.78 122.21 431.12 123.7 423.21 127.52"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M423.21 127.52C416.56 130.57 409.18 133.39 403.28 136.68Q394.42 141.62 387.66 147.15 379.83 153.54 367.83 164.27C360.8 170.55 354.15 177.8 347.45 184.72"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M347.45 184.72 342.5 189.88Q342.21 190.18 341.84 190.38 341.07 190.8 341.03 191.71 341.01 192.11 340.65 191.92 340.53 191.86 340.4 191.9 339.91 192.07 339.71 192.6 339.03 194.41 337.73 195.89 337.39 196.28 337.81 195.97 337.86 195.93 337.92 195.9 338.54 195.6 338.12 196.15 335.04 200.12 332.21 203.99 332.03 204.23 331.79 204.04L331.46 203.78Q331.41 203.74 331.44 203.69 332.29 202.33 333.12 201.24 333.2 201.13 333.11 201 333.07 200.95 333.03 201 332.05 202.53 330.7 203.79 330.54 203.94 330.75 203.87 330.79 203.85 330.84 203.87 331.05 203.97 331.06 204.2 331.13 205.63 329.99 206.5A1.85 1.78 81.9 00329.4 207.32Q329.06 208.29 328.39 209.14 328.09 209.52 327.61 209.58 325.89 209.82 326 211.78A1.3 1.27-28 01325.72 212.66Q324.07 214.8 323.12 217.7"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M323.12 217.7 318.02 228.46"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M318.02 228.46Q313.27 234.86 311.76 237.75 309.37 242.33 305.99 252.05 304.46 256.44 305.93 254.25"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M305.93 254.25Q305.62 255.63 304.89 256.82 304.77 257.01 304.97 257.12L305.2 257.24Q305.23 257.26 305.24 257.22 306.13 255.05 307.26 252.78 307.34 252.62 307.51 252.71L307.73 252.82Q307.75 252.84 307.74 252.86 306.25 255.22 305.41 257.9 304.19 261.82 302.64 265.97 302.35 266.75 301.89 267.38C300.98 268.59 301.07 270.27 300.39 271.68Q299.06 274.47 298.36 277.53 298.26 277.97 297.92 278.28 297.32 278.84 297.16 279.76 296.53 283.42 295.29 287.79C294.38 290.99 294.69 294.16 293.83 297.36 292.99 300.5 293.12 303.75 292.59 306.9Q290.82 317.42 290.83 332.15C290.83 348.21 291.88 362.54 296.59 377.96Q298.48 384.15 300.49 390.37 301.18 392.52 299.65 390.86 298.11 389.19 295.54 387.72 290.29 384.72 285.05 381.84"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M285.05 381.84Q283.43 380.56 281.9 380.1C279.89 379.5 278.26 378.64 276.39 378.23 274.28 377.77 271.98 376.83 270.21 376.37Q255.65 372.58 240.43 373.13"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M240.43 373.13Q233.74 372.8 227 373.57 218.25 374.57 209.52 375.73 205.54 376.26 202.03 377.1 198.41 377.96 194.65 378.96 194.3 379.05 194.13 379.39A.74.72-79.5 01193.55 379.8Q189.92 380.15 187.2 381.49 184.73 382.71 182.18 383.81 179.39 385.01 177.01 386.52q-10.2 6.5-21.71 15.23-11.53 8.75-19.24 19.06C135.77 421.2 135.78 421.58 135.55 421.95Q132.47 426.87 128.69 431.08 125.96 434.1 123.91 437.19 121.72 440.47 119.57 443.8 119.26 444.28 119.09 444.83 118.95 445.24 118.63 445.53 116.84 447.17 116 449.6A1.7 1.69 80.4 01115.47 450.35Q115.1 450.66 114.87 451.08 111.96 456.46 110.57 460.85 109.15 465.35 107.7 469.25 104.74 477.22 102.44 485.43 102.33 485.83 102.71 485.65 103.01 485.5 102.86 485.13 102.81 485.01 102.88 485.11 102.9 485.13 102.93 485.15 102.99 485.16 102.97 485.22 101.22 490.96 100.5 495.31 98.77 505.78 98.79 517.39 98.79 517.88 98.5 518.29 98.25 518.63 98.23 519.04 97.87 528.44 98.18 537.77"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M98.18 537.77Q98.75 547.92 100.1 554.97q3.73 19.49 13.1 38.62 15.56 31.76 43.03 52.74Q162.21 650.9 172.97 656.97 173.4 657.21 173.93 657.11 174.27 657.04 174.47 657.33 175.25 658.44 176.62 658.35 176.74 658.34 176.63 658.37 176.5 658.41 176.38 658.48 176.21 658.58 176.36 658.71 179.72 661.6 184.36 663.69 193.12 667.64 200.92 670.96 203.51 672.06 206.39 672.09C213.79 672.17 220.75 674.59 227.85 675.5Q241.51 677.25 258.42 677.27 335.37 677.38 410.89 677.26 415.61 677.25 421.31 677.06A.94.94.0 00422.22 676.12L422.48 603.46"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M422.48 603.46C422.72 519.97 422.5 436.49 422.59 353Q422.59 348.1 423.66 344.48C424.85 340.39 429.55 336.76 433.9 336.21Q436.66 335.85 439.49 335.86 494.27 335.98 572.06 335.69 584.93 335.64 589.91 334.78 597.94 333.4 606.26 330.74C615.95 327.65 626.03 324.05 635.5 320.14Q646.37 315.66 657.62 312.96 667.09 310.69 676.08 307.82 691.68 302.85 706.51 297.5 712.77 295.24 718.01 296.26"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M718.01 296.26Q725.51 299 729.94 305.03 734.73 311.55 735.73 318.39 736.01 320.31 736.08 332.62 736.25 364.24 736.19 397 736.19 399.08 736.23 400.97"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M736.23 400.97Q735.9 449.45 735.46 497.75 735.19 527.79 736.15 604.08"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M736.15 604.08 736.67 675.56A2.19 2.19.0 00738.87 677.73Q767.94 677.54 795.44 677.62 817.97 677.68 841.39 674.15 847.16 673.28 852.49 671.66C860.03 669.38 868.01 666.67 874.77 663.04 886.51 656.73 899.29 648.52 907.95 640.2Q915.92 632.55 923.63 625.37 929.31 620.09 933.33 613.73C935.19 610.8 937.51 608.42 939.12 605.35 940.33 603.02 941.92 600.89 943.21 598.54Q943.45 598.12 943.29 597.67L943.16 597.31A.83.81 57.5 01943.33 596.5Q944.29 595.46 944.39 593.99A1.71 1.69-26.2 01944.69 593.13Q945.61 591.77 945.97 590.12 946.3 588.59 946.91 587.17 949.11 582.1 951.27 576.84 951.72 575.76 951.83 574.56 951.94 573.38 952.44 572.26 953.13 570.7 953.66 569.03 955.4 563.55 956.49 558.44 958.79 547.6 959.78 535.62 961.35 516.61 958.61 497.75C957.77 492.01 956.07 486.17 954.92 480.43Q954.15 476.64 952.59 472.89 950.98 469.01 950.1 465.43 949.18 461.64 947.3 458.42C946.62 457.26 946.43 456.23 946.02 455.01Q945.59 453.76 944.8 452.54 943.11 449.92 941.65 447.11C941.28 446.4 941.38 445.57 941.14 445Q940.04 442.39 934.75 436.96"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M934.75 436.96c-13.04-17.58-27.99-33.32-46.72-44.66"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M888.03 392.3Q882.24 387.36 875.24 384.36 875.2 384.34 875.22 384.3L875.35 384.08Q875.43 383.93 875.59 384L877.96 385.14Q877.99 385.16 878 385.13L878.15 384.9Q878.28 384.7 878.05 384.62 872.13 382.5 867.06 380.02 863.08 378.07 858.83 376.66 854.27 375.14 850.01 374.21 849.95 374.2 849.93 374.26L849.87 374.51A.03.03.0 00849.9 374.55Q857.11 375.83 861.77 378.39 864.48 379.88 861.51 379.04 859.01 378.34 856.67 377.6 852.48 376.26 846.15 375.67 846.1 375.67 846.08 375.63 846.06 375.57 846.12 375.55 846.17 375.54 846.21 375.55 847.25 375.84 848.13 375.69 848.82 375.58 848.13 375.43 844.1 374.56 840.02 375.3"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M840.02 375.3C831.63 374.33 823.73 372.69 814.84 373.31 813.35 373.41 812.06 372.84 810.51 372.87Q803.01 373.01 796.27 374.55C793.63 375.15 790.95 375.45 788.28 375.61Q787.88 375.64 787.61 375.92 787.23 376.32 786.68 376.4 780.74 377.31 775.04 379.37 770.87 380.88 764.64 384.8 759.7 387.91 754.7 391.19"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M754.7 391.19Q756.26 383.46 757.81 375.98 759.76 366.58 760.51 360.7 763.46 337.48 761.63 314.17 760.99 306.01 758.91 294.37 757.01 283.7 754.89 272.75 752.59 260.84 747.54 249.46 745.67 245.25 743.7 240.2 741.38 234.25 736.66 226.75C735.76 225.32 735.24 223.86 734.21 222.51Q733.24 221.24 732.62 219.78C731.88 218.02 730.63 216.88 729.84 215.09 728.87 212.88 727.16 211.39 726.04 209.26Q724.69 206.7 722.92 204.55 721.11 202.35 719.49 200.03C716.95 196.39 714.67 192.59 711.27 189.61Q707.54 186.33 704.82 182.42C701.84 178.13 697.85 175.09 694.54 171.01 691.17 166.84 686.76 163.44 682.74 159.88 681.82 159.06 681.72 157.86 680.73 157.06Q677.63 154.54 674.69 152.45A.07.06-54.1 00674.6 152.47L674.46 152.68Q674.33 152.89 674.54 153.03 676.02 153.98 677.32 155.07 677.52 155.24 677.29 155.11C674.74 153.75 672.51 152.11 670.69 149.82Q669.3 148.07 667.31 146.74 660.44 142.14 653.7 138.48 648.98 135.92 644.35 132.84 639.79 129.81 632.39 126.59 617.15 119.97 605.94 116.26C604.1 115.65 602.23 115.81 600.47 115.15"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M600.47 115.15Q599.76 114.79 599.28 114.25"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M599.28 114.25Q596.64 112.8 593.69 111.95 583.64 109.04 573.39 106.9 563.66 104.88 556.72 105.12"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M556.72 105.12Q535.59 102.85 519.25 103.18 496.98 103.62 471.85 109.31C463.27 111.26 455.62 114.24 447.42 117.07Q446.79 117.29 446.29 117.73 445.73 118.22 445.1 118.66 444.28 119.23 443.25 119.55 441.01 120.23 438.8 120.98"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M556.72 105.12Q564.58 106.17 572.15 108.42C574.83 109.21 577.17 109.07 579.82 109.64Q580.27 109.74 580.44 110.18 580.67 110.82 581.38 110.86 584.36 111.04 587.12 112.11C589.32 112.96 591.64 112.98 593.93 113.32Q594.18 113.36 596.46 114.17 597.76 114.63 599.28 114.25"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M600.47 115.15Q594.24 113.95 588.04 112.66 587.87 112.62 587.83 112.79 587.79 112.96 587.95 113.01 608.88 119.22 628.21 129.72C633.49 132.58 638.52 136.35 642.99 140.24q14.51 12.64 31.59 30.96Q681.7 178.84 686.51 185.46 692.99 194.41 696.62 201.36q10.9 20.91 18.41 47.15Q719.1 262.72 719.73 277.51 719.97 283.23 720.2 288.75 720.33 291.8 718.01 296.26"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M422.48 603.46 422.19 604.18Q421.98 604.7 421.43 604.61 416.66 603.86 412.59 603.87 348.88 604.09 284.71 603.84 267.13 603.77 251.02 602.46q-26.06-2.13-48.84-16.86C192.75 579.51 184.08 570.63 176.23 562.27 168.02 553.53 162.76 544.13 157.62 533.43Q155.23 528.46 153.32 520.84 150.92 511.24 149.17 502.91 148.38 499.18 148.32 495.49 148.17 486.3 148.6 475.52 148.73 472.34 149.5 469.45C150.03 467.49 149.69 465.7 150.07 463.83Q151.96 454.51 155.02 444.09 155.48 442.53 153.86 442.72 152.56 442.88 151.06 444.55 146.57 449.55 141.46 455.04 139.5 457.14 138.35 459.6C134.82 467.17 129.7 474.41 125.5 481.29Q121.17 488.38 116.92 498.43q-5.45 12.9-6.99 23.22C108.92 528.49 108.26 535.39 107.3 542.31Q107.23 542.83 106.78 543.08C101.52 546 99.61 542.27 98.18 537.77"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M240.43 373.13Q248.72 374.13 256.93 375.23C258.7 375.47 260.5 375.38 262.22 375.92Q264.38 376.6 266.46 376.63 268.9 376.67 270.74 377.14 278.05 378.99 285.05 381.84"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M305.93 254.25l12.09-25.79"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M323.12 217.7 323.73 217.65Q324.29 217.6 324.32 217.04 324.34 216.71 324.56 216.47 325.2 215.76 324.74 216.59 324.56 216.9 324.39 217.19 324.34 217.28 324.42 217.33 324.53 217.4 324.61 217.5 324.73 217.67 324.8 217.48L327.22 210.74Q327.33 210.44 327.62 210.57L327.88 210.69Q327.9 210.7 327.87 210.75L326.51 213.47Q326.35 213.8 326.68 213.96L326.95 214.1A.12.12.0 00327.11 214.04Q328.64 210.79 330.13 208.73 334.34 202.94 338.25 196.98C340.99 192.8 344.46 188.91 347.45 184.72"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M423.21 127.52l11.43-4.11Q434.84 123.34 434.69 123.5 434.59 123.61 434.43 123.71 433.68 124.17 434.55 124.09 434.86 124.06 435.14 123.85 436.98 122.44 438.8 120.98"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M754.7 391.19Q747.41 397.76 741.58 399.89 740.39 400.32 736.23 400.97"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M840.02 375.3Q848.37 376.89 856.74 378.43 858.39 378.73 859.67 379.4 861.35 380.28 862.67 380.11 863.04 380.06 862.71 380.22 862.58 380.28 862.61 380.45A.15.15.0 00862.73 380.57Q866.19 381.33 869.24 383.34 871.62 384.91 874.77 386.12 881.6 388.74 888.03 392.3"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M934.75 436.96Q933.36 439.7 931.62 440.82 930.42 441.59 929.18 440.89C920.72 436.1 912.25 432.32 903.95 427.51Q895.85 422.81 887.81 419.18A.49.49.0 00887.11 419.62Q887.09 420.94 887.79 422.07C891.49 428.02 895.07 433.53 898.27 440Q900.43 444.36 901.68 448 905.05 457.86 905.65 470.46 906.19 481.77 906.47 492.77 906.79 505.08 902.92 519.5C901.13 526.18 898.98 532.57 895.88 538.78Q889.94 550.64 883.64 559.19 875.85 569.75 866.31 577.47 846.68 593.35 821.44 600.21C811.7 602.85 801.87 603.19 791.75 603.52Q762.45 604.46 736.15 604.08"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M572.05 680.95Q573.46 683.34 577.75 683.35 578.25 683.35 578.66 683.64 580.2 684.7 582 685.13 584.37 685.69 585.95 686.1 588.82 686.85 591.3 687.21C595.8 687.86 600.29 689.82 604.84 691.11Q618.05 694.87 630.86 698.4 635.66 699.73 651.25 702.9 652.68 703.19 654.31 703.37 655.83 703.54 657.52 704.26 660.29 705.43 664.46 705.55"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M664.46 705.55 700.51 716.23A.45.45.0 00701.07 715.67Q700.51 713.85 700.53 711.75 701.4 620.4 700.42 518.5 700.28 504.3 700.93 458.5 701.46 420.35 700.4 335.5 700.38 334.25 700.52 333.01A.89.88 85.1 00699.4 332.06Q679.62 337.71 665.91 342.7 641.72 351.5 619.65 358.49 592.44 367.1 572.6 374.15A1.9 1.89-9.9 00571.34 375.93Q571.18 513.33 571.39 654.5 571.41 667.76 572.05 680.95"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M664.46 705.55Q662.11 704.49 659.7 703.75 657.6 703.1 655.67 702.18 653.66 701.22 651.42 700.83C647.87 700.21 644.58 699.9 641.14 698.5Q637.25 696.91 633.31 695.66 624.29 692.77 614.98 690.12 607.98 688.12 599.95 686.55 588.3 684.27 584.74 683.66 576.99 682.31 572.05 680.95"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M506.73 508.96Q507.23 508.97 507.24 509.47L507.61 567.73A1.71 1.71.0 00509.29 569.43L512.14 569.48Q513.67 569.51 513.68 567.99L514.06 509.31A.65.65.0 01514.72 508.66Q524.38 508.75 533.37 508.51 534.45 508.49 535.45 508.14 536.77 507.68 535.94 506.56 525.56 492.62 516.03 477.72 513.11 473.15 510.64 468.22A.71.71.0 00509.34 468.32Q508.89 469.68 508.14 470.81 499.59 483.62 490.59 498.33C488.69 501.42 486.13 503.98 484.7 507.4A.85.84-75.5 00485.38 508.57C492.34 509.35 499.77 508.84 506.73 508.96"/><path stroke="#e2f3ff" vector-effect="non-scaling-stroke" d="M323.4069 219.9496A.86.45 98.9 00323.9846 219.1696.86.45 98.9 00323.6731 218.2504.86.45 98.9 00323.0954 219.0304.86.45 98.9 00323.4069 219.9496"/><path stroke="#76a3c4" vector-effect="non-scaling-stroke" d="M562.87 105.64Q563.01 105.79 563.21 105.74 563.58 105.65 563.24 105.48 563.06 105.39 562.89 105.5A.09.09.0 00562.87 105.64"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M679.22 372.53C679.23 371.09 679.54 369.88 679.85 368.51A.54.54.0 00679.29 367.85Q677.1 368.03 675.2 368.64 662.08 372.86 652.04 375.23 641.91 377.62 633.09 380.61 616.35 386.29 597.27 393.54C595.19 394.33 594.11 394.37 594.1 396.75Q593.82 453.73 594.23 510.63A.53.53.0 00594.87 511.14C612.16 507.54 629.52 503.71 647.2 500.59Q662.96 497.81 678.69 494.94 679.2 494.85 679.2 494.33 679.02 429.9 679.22 372.53"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M679.1894 535.7817a14.73 13.11 84.9 0011.7487-15.8371 14.73 13.11 84.9 00-14.3675-13.5063 14.73 13.11 84.9 00-11.7487 15.8371 14.73 13.11 84.9 0014.3675 13.5063"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M653.47 677.48C653.58 677.65 653.78 677.81 653.97 677.85Q666.29 680.76 678.03 684.83A.8.79-79.7 00679.09 684.09C679.65 637.75 679.02 593.21 679.12 547.6Q679.12 546.36 677.91 546.11 673.94 545.3 670.08 544.24C662.1 542.05 657.76 536.87 655.27 529.33A.58.57 76.9 00654.64 528.93Q625.29 532.84 594.78 537.76A.97.97.0 00593.96 538.72L594.14 660.05A1.82 1.81-79.8 00595.31 661.75Q600.8 663.83 606.74 665.66 624.02 670.98 642.31 674.66 645.11 675.22 647.69 676.02 650.42 676.85 653.38 677.42 653.44 677.43 653.47 677.48"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M663.15 390.16A.99.99.0 00661.85 389.22l-51.99 17.14A.99.99.0 00609.19 407.31L609.77 491.24A.99.99.0 00610.99 492.19L662.55 480A.99.99.0 00663.31 479.04L663.15 390.16"/><path stroke="#93b0c4" vector-effect="non-scaling-stroke" d="M610.01 645.38C610.01 646.98 610.77 648.42 612.26 649.06 620.63 652.63 629.2 654.01 637.6 656.47Q649.19 659.86 661.88 663.03 663.27 663.38 663.33 661.95 663.43 659.77 663.43 657.69 663.36 600.71 663.09 550.52A1.49 1.48 1.9 00661.71 549.05Q658.24 548.79 654.88 548.95 640.98 549.6 624.11 551.2 617.1 551.87 609.98 552.02A.46.45-1.3 00609.53 552.48Q609.94 600.04 610.01 645.38"/></g><path fill="#276089" d="M255.43 337.58A1.16 1.15-8 00256.16 336.62Q256.94 329.44 256.97 321.89 257.01 312.67 258.49 300.83 260.97 280.96 264.63 264.23 267.08 253.08 270.94 243.18C272.28 239.75 274.57 236.93 276.22 233.52 282.54 220.44 289.18 206.77 297.09 195.08c14.64-21.65 32.53-44.29 51-59.85Q358.75 126.26 377.98 112.74 386.74 106.58 396.21 101.52q32.66-17.44 64.71-24.98C478.3 72.45 497.66 69.39 516.24 68.95Q539.13 68.4 559.76 70.68 603.35 75.49 639 92.39c15.7 7.44 31.16 15.56 45.33 25.63C708.06 134.9 728.25 153.79 745.77 178.17q28.53 39.69 41.12 83.29C789.89 271.86 792.34 283.71 793.66 294.66Q796.2 315.76 797.41 337.48A1.29 1.29.0 00798.69 338.7Q815.49 338.72 831.21 339.39C868.91 341 905.17 359.29 933.64 383.01 939.46 387.86 944.72 394.3 949.76 400.34 970.1 424.7 985.53 454.74 991.58 486.07Q997.12 514.79 994.49 540.6 989.42 590.5 960.66 630.97 946.97 650.24 931.32 664.82 918.69 676.6 899.38 686.96 880.83 696.92 863.47 701.77 836.07 709.42 806.25 710.24 774.38 711.1 736.61 711.19A1.97 1.96 7.1 00734.72 712.66C734.18 714.76 733.61 717.01 733.65 719.2 733.84 728.71 732.87 743.34 721.34 746.39Q718.5 747.14 716.12 748.82 715.67 749.14 715.13 749.15 713.55 749.18 711.03 748.73C690.73 745.11 671.12 739.21 651.67 733.55 640.94 730.43 629.8 726.69 618.56 723.66Q594.7 717.23 575.34 712.41 569.8 711.03 554.9 710.73C535.85 710.34 517.09 709.97 498.26 710.05Q426.4 710.36 354.01 711.11C327.54 711.39 300.74 711.31 273.96 711.36Q244.61 711.41 219.84 708.3 208.25 706.84 188 700.75 172.03 695.95 155.79 686.75 144.05 680.09 137 674.83c-19.35-14.45-34.77-33.51-48.28-53.75C85.29 615.94 82.26 610.27 79.9 604.58 72.57 586.93 66.35 568.74 63.94 550.49 62.68 540.98 61.35 531.56 61.65 521.49q1.04-35.65 13.88-70.2Q79.3 441.12 83.46 433.44q17.03-31.42 43.33-53.64c21.23-17.94 45.35-29.63 72.03-36.95C216.78 337.93 234.03 338.04 253.26 337.98Q254.42 337.98 255.43 337.58zM438.8 120.98Q435.57 121.88 434.78 122.21 431.12 123.7 423.21 127.52C416.56 130.57 409.18 133.39 403.28 136.68Q394.42 141.62 387.66 147.15 379.83 153.54 367.83 164.27C360.8 170.55 354.15 177.8 347.45 184.72L342.5 189.88Q342.21 190.18 341.84 190.38 341.07 190.8 341.03 191.71 341.01 192.11 340.65 191.92 340.53 191.86 340.4 191.9 339.91 192.07 339.71 192.6 339.03 194.41 337.73 195.89 337.39 196.28 337.81 195.97 337.86 195.93 337.92 195.9 338.54 195.6 338.12 196.15 335.04 200.12 332.21 203.99 332.03 204.23 331.79 204.04L331.46 203.78Q331.41 203.74 331.44 203.69 332.29 202.33 333.12 201.24 333.2 201.13 333.11 201 333.07 200.95 333.03 201 332.05 202.53 330.7 203.79 330.54 203.94 330.75 203.87 330.79 203.85 330.84 203.87 331.05 203.97 331.06 204.2 331.13 205.63 329.99 206.5A1.85 1.78 81.9 00329.4 207.32Q329.06 208.29 328.39 209.14 328.09 209.52 327.61 209.58 325.89 209.82 326 211.78A1.3 1.27-28 01325.72 212.66Q324.07 214.8 323.12 217.7L318.02 228.46Q313.27 234.86 311.76 237.75 309.37 242.33 305.99 252.05 304.46 256.44 305.93 254.25 305.62 255.63 304.89 256.82 304.77 257.01 304.97 257.12L305.2 257.24Q305.23 257.26 305.24 257.22 306.13 255.05 307.26 252.78 307.34 252.62 307.51 252.71L307.73 252.82Q307.75 252.84 307.74 252.86 306.25 255.22 305.41 257.9 304.19 261.82 302.64 265.97 302.35 266.75 301.89 267.38C300.98 268.59 301.07 270.27 300.39 271.68Q299.06 274.47 298.36 277.53 298.26 277.97 297.92 278.28 297.32 278.84 297.16 279.76 296.53 283.42 295.29 287.79C294.38 290.99 294.69 294.16 293.83 297.36 292.99 300.5 293.12 303.75 292.59 306.9Q290.82 317.42 290.83 332.15C290.83 348.21 291.88 362.54 296.59 377.96Q298.48 384.15 300.49 390.37 301.18 392.52 299.65 390.86 298.11 389.19 295.54 387.72 290.29 384.72 285.05 381.84 283.43 380.56 281.9 380.1C279.89 379.5 278.26 378.64 276.39 378.23 274.28 377.77 271.98 376.83 270.21 376.37Q255.65 372.58 240.43 373.13 233.74 372.8 227 373.57 218.25 374.57 209.52 375.73 205.54 376.26 202.03 377.1 198.41 377.96 194.65 378.96 194.3 379.05 194.13 379.39A.74.72-79.5 01193.55 379.8Q189.92 380.15 187.2 381.49 184.73 382.71 182.18 383.81 179.39 385.01 177.01 386.52q-10.2 6.5-21.71 15.23-11.53 8.75-19.24 19.06C135.77 421.2 135.78 421.58 135.55 421.95Q132.47 426.87 128.69 431.08 125.96 434.1 123.91 437.19 121.72 440.47 119.57 443.8 119.26 444.28 119.09 444.83 118.95 445.24 118.63 445.53 116.84 447.17 116 449.6A1.7 1.69 80.4 01115.47 450.35Q115.1 450.66 114.87 451.08 111.96 456.46 110.57 460.85 109.15 465.35 107.7 469.25 104.74 477.22 102.44 485.43 102.33 485.83 102.71 485.65 103.01 485.5 102.86 485.13 102.81 485.01 102.88 485.11 102.9 485.13 102.93 485.15 102.99 485.16 102.97 485.22 101.22 490.96 100.5 495.31 98.77 505.78 98.79 517.39 98.79 517.88 98.5 518.29 98.25 518.63 98.23 519.04 97.87 528.44 98.18 537.77 98.75 547.92 100.1 554.97q3.73 19.49 13.1 38.62 15.56 31.76 43.03 52.74Q162.21 650.9 172.97 656.97 173.4 657.21 173.93 657.11 174.27 657.04 174.47 657.33 175.25 658.44 176.62 658.35 176.74 658.34 176.63 658.37 176.5 658.41 176.38 658.48 176.21 658.58 176.36 658.71 179.72 661.6 184.36 663.69 193.12 667.64 200.92 670.96 203.51 672.06 206.39 672.09C213.79 672.17 220.75 674.59 227.85 675.5Q241.51 677.25 258.42 677.27 335.37 677.38 410.89 677.26 415.61 677.25 421.31 677.06A.94.94.0 00422.22 676.12L422.48 603.46C422.72 519.97 422.5 436.49 422.59 353Q422.59 348.1 423.66 344.48C424.85 340.39 429.55 336.76 433.9 336.21Q436.66 335.85 439.49 335.86 494.27 335.98 572.06 335.69 584.93 335.64 589.91 334.78 597.94 333.4 606.26 330.74C615.95 327.65 626.03 324.05 635.5 320.14Q646.37 315.66 657.62 312.96 667.09 310.69 676.08 307.82 691.68 302.85 706.51 297.5 712.77 295.24 718.01 296.26 725.51 299 729.94 305.03 734.73 311.55 735.73 318.39 736.01 320.31 736.08 332.62 736.25 364.24 736.19 397 736.19 399.08 736.23 400.97 735.9 449.45 735.46 497.75 735.19 527.79 736.15 604.08L736.67 675.56A2.19 2.19.0 00738.87 677.73Q767.94 677.54 795.44 677.62 817.97 677.68 841.39 674.15 847.16 673.28 852.49 671.66C860.03 669.38 868.01 666.67 874.77 663.04 886.51 656.73 899.29 648.52 907.95 640.2Q915.92 632.55 923.63 625.37 929.31 620.09 933.33 613.73C935.19 610.8 937.51 608.42 939.12 605.35 940.33 603.02 941.92 600.89 943.21 598.54Q943.45 598.12 943.29 597.67L943.16 597.31A.83.81 57.5 01943.33 596.5Q944.29 595.46 944.39 593.99A1.71 1.69-26.2 01944.69 593.13Q945.61 591.77 945.97 590.12 946.3 588.59 946.91 587.17 949.11 582.1 951.27 576.84 951.72 575.76 951.83 574.56 951.94 573.38 952.44 572.26 953.13 570.7 953.66 569.03 955.4 563.55 956.49 558.44 958.79 547.6 959.78 535.62 961.35 516.61 958.61 497.75C957.77 492.01 956.07 486.17 954.92 480.43Q954.15 476.64 952.59 472.89 950.98 469.01 950.1 465.43 949.18 461.64 947.3 458.42C946.62 457.26 946.43 456.23 946.02 455.01Q945.59 453.76 944.8 452.54 943.11 449.92 941.65 447.11C941.28 446.4 941.38 445.57 941.14 445Q940.04 442.39 934.75 436.96c-13.04-17.58-27.99-33.32-46.72-44.66Q882.24 387.36 875.24 384.36 875.2 384.34 875.22 384.3L875.35 384.08Q875.43 383.93 875.59 384L877.96 385.14Q877.99 385.16 878 385.13L878.15 384.9Q878.28 384.7 878.05 384.62 872.13 382.5 867.06 380.02 863.08 378.07 858.83 376.66 854.27 375.14 850.01 374.21 849.95 374.2 849.93 374.26L849.87 374.51A.03.03.0 00849.9 374.55Q857.11 375.83 861.77 378.39 864.48 379.88 861.51 379.04 859.01 378.34 856.67 377.6 852.48 376.26 846.15 375.67 846.1 375.67 846.08 375.63 846.06 375.57 846.12 375.55 846.17 375.54 846.21 375.55 847.25 375.84 848.13 375.69 848.82 375.58 848.13 375.43 844.1 374.56 840.02 375.3C831.63 374.33 823.73 372.69 814.84 373.31 813.35 373.41 812.06 372.84 810.51 372.87Q803.01 373.01 796.27 374.55C793.63 375.15 790.95 375.45 788.28 375.61Q787.88 375.64 787.61 375.92 787.23 376.32 786.68 376.4 780.74 377.31 775.04 379.37 770.87 380.88 764.64 384.8 759.7 387.91 754.7 391.19 756.26 383.46 757.81 375.98 759.76 366.58 760.51 360.7 763.46 337.48 761.63 314.17 760.99 306.01 758.91 294.37 757.01 283.7 754.89 272.75 752.59 260.84 747.54 249.46 745.67 245.25 743.7 240.2 741.38 234.25 736.66 226.75C735.76 225.32 735.24 223.86 734.21 222.51Q733.24 221.24 732.62 219.78C731.88 218.02 730.63 216.88 729.84 215.09 728.87 212.88 727.16 211.39 726.04 209.26Q724.69 206.7 722.92 204.55 721.11 202.35 719.49 200.03C716.95 196.39 714.67 192.59 711.27 189.61Q707.54 186.33 704.82 182.42C701.84 178.13 697.85 175.09 694.54 171.01 691.17 166.84 686.76 163.44 682.74 159.88 681.82 159.06 681.72 157.86 680.73 157.06Q677.63 154.54 674.69 152.45A.07.06-54.1 00674.6 152.47L674.46 152.68Q674.33 152.89 674.54 153.03 676.02 153.98 677.32 155.07 677.52 155.24 677.29 155.11C674.74 153.75 672.51 152.11 670.69 149.82Q669.3 148.07 667.31 146.74 660.44 142.14 653.7 138.48 648.98 135.92 644.35 132.84 639.79 129.81 632.39 126.59 617.15 119.97 605.94 116.26C604.1 115.65 602.23 115.81 600.47 115.15Q599.76 114.79 599.28 114.25 596.64 112.8 593.69 111.95 583.64 109.04 573.39 106.9 563.66 104.88 556.72 105.12 535.59 102.85 519.25 103.18 496.98 103.62 471.85 109.31C463.27 111.26 455.62 114.24 447.42 117.07Q446.79 117.29 446.29 117.73 445.73 118.22 445.1 118.66 444.28 119.23 443.25 119.55 441.01 120.23 438.8 120.98zM572.05 680.95Q573.46 683.34 577.75 683.35 578.25 683.35 578.66 683.64 580.2 684.7 582 685.13 584.37 685.69 585.95 686.1 588.82 686.85 591.3 687.21C595.8 687.86 600.29 689.82 604.84 691.11Q618.05 694.87 630.86 698.4 635.66 699.73 651.25 702.9 652.68 703.19 654.31 703.37 655.83 703.54 657.52 704.26 660.29 705.43 664.46 705.55L700.51 716.23A.45.45.0 00701.07 715.67Q700.51 713.85 700.53 711.75 701.4 620.4 700.42 518.5 700.28 504.3 700.93 458.5 701.46 420.35 700.4 335.5 700.38 334.25 700.52 333.01A.89.88 85.1 00699.4 332.06Q679.62 337.71 665.91 342.7 641.72 351.5 619.65 358.49 592.44 367.1 572.6 374.15A1.9 1.89-9.9 00571.34 375.93Q571.18 513.33 571.39 654.5 571.41 667.76 572.05 680.95zM506.73 508.96Q507.23 508.97 507.24 509.47L507.61 567.73A1.71 1.71.0 00509.29 569.43L512.14 569.48Q513.67 569.51 513.68 567.99L514.06 509.31A.65.65.0 01514.72 508.66Q524.38 508.75 533.37 508.51 534.45 508.49 535.45 508.14 536.77 507.68 535.94 506.56 525.56 492.62 516.03 477.72 513.11 473.15 510.64 468.22A.71.71.0 00509.34 468.32Q508.89 469.68 508.14 470.81 499.59 483.62 490.59 498.33C488.69 501.42 486.13 503.98 484.7 507.4A.85.84-75.5 00485.38 508.57C492.34 509.35 499.77 508.84 506.73 508.96z"/><path fill="#fff" d="M556.72 105.12Q564.58 106.17 572.15 108.42C574.83 109.21 577.17 109.07 579.82 109.64Q580.27 109.74 580.44 110.18 580.67 110.82 581.38 110.86 584.36 111.04 587.12 112.11C589.32 112.96 591.64 112.98 593.93 113.32Q594.18 113.36 596.46 114.17 597.76 114.63 599.28 114.25 599.76 114.79 600.47 115.15 594.24 113.95 588.04 112.66 587.87 112.62 587.83 112.79 587.79 112.96 587.95 113.01 608.88 119.22 628.21 129.72C633.49 132.58 638.52 136.35 642.99 140.24q14.51 12.64 31.59 30.96Q681.7 178.84 686.51 185.46 692.99 194.41 696.62 201.36q10.9 20.91 18.41 47.15Q719.1 262.72 719.73 277.51 719.97 283.23 720.2 288.75 720.33 291.8 718.01 296.26 712.77 295.24 706.51 297.5 691.68 302.85 676.08 307.82 667.09 310.69 657.62 312.96 646.37 315.66 635.5 320.14C626.03 324.05 615.95 327.65 606.26 330.74Q597.94 333.4 589.91 334.78 584.93 335.64 572.06 335.69 494.27 335.98 439.49 335.86 436.66 335.85 433.9 336.21C429.55 336.76 424.85 340.39 423.66 344.48Q422.59 348.1 422.59 353C422.5 436.49 422.72 519.97 422.48 603.46L422.19 604.18Q421.98 604.7 421.43 604.61 416.66 603.86 412.59 603.87 348.88 604.09 284.71 603.84 267.13 603.77 251.02 602.46q-26.06-2.13-48.84-16.86C192.75 579.51 184.08 570.63 176.23 562.27 168.02 553.53 162.76 544.13 157.62 533.43Q155.23 528.46 153.32 520.84 150.92 511.24 149.17 502.91 148.38 499.18 148.32 495.49 148.17 486.3 148.6 475.52 148.73 472.34 149.5 469.45C150.03 467.49 149.69 465.7 150.07 463.83Q151.96 454.51 155.02 444.09 155.48 442.53 153.86 442.72 152.56 442.88 151.06 444.55 146.57 449.55 141.46 455.04 139.5 457.14 138.35 459.6C134.82 467.17 129.7 474.41 125.5 481.29Q121.17 488.38 116.92 498.43q-5.45 12.9-6.99 23.22C108.92 528.49 108.26 535.39 107.3 542.31Q107.23 542.83 106.78 543.08C101.52 546 99.61 542.27 98.18 537.77Q97.87 528.44 98.23 519.04 98.25 518.63 98.5 518.29 98.79 517.88 98.79 517.39 98.77 505.78 100.5 495.31 101.22 490.96 102.97 485.22 102.99 485.16 102.93 485.15 102.9 485.13 102.88 485.11 102.81 485.01 102.86 485.13 103.01 485.5 102.71 485.65 102.33 485.83 102.44 485.43 104.74 477.22 107.7 469.25 109.15 465.35 110.57 460.85 111.96 456.46 114.87 451.08 115.1 450.66 115.47 450.35A1.7 1.69 80.4 00116 449.6Q116.84 447.17 118.63 445.53 118.95 445.24 119.09 444.83 119.26 444.28 119.57 443.8 121.72 440.47 123.91 437.19 125.96 434.1 128.69 431.08 132.47 426.87 135.55 421.95C135.78 421.58 135.77 421.2 136.06 420.81Q143.77 410.5 155.3 401.75 166.81 393.02 177.01 386.52 179.39 385.01 182.18 383.81 184.73 382.71 187.2 381.49 189.92 380.15 193.55 379.8A.74.72-79.5 00194.13 379.39Q194.3 379.05 194.65 378.96 198.41 377.96 202.03 377.1 205.54 376.26 209.52 375.73 218.25 374.57 227 373.57 233.74 372.8 240.43 373.13 248.72 374.13 256.93 375.23C258.7 375.47 260.5 375.38 262.22 375.92Q264.38 376.6 266.46 376.63 268.9 376.67 270.74 377.14 278.05 378.99 285.05 381.84 290.29 384.72 295.54 387.72 298.11 389.19 299.65 390.86 301.18 392.52 300.49 390.37 298.48 384.15 296.59 377.96C291.88 362.54 290.83 348.21 290.83 332.15Q290.82 317.42 292.59 306.9C293.12 303.75 292.99 300.5 293.83 297.36 294.69 294.16 294.38 290.99 295.29 287.79Q296.53 283.42 297.16 279.76 297.32 278.84 297.92 278.28 298.26 277.97 298.36 277.53 299.06 274.47 300.39 271.68C301.07 270.27 300.98 268.59 301.89 267.38Q302.35 266.75 302.64 265.97 304.19 261.82 305.41 257.9 306.25 255.22 307.74 252.86 307.75 252.84 307.73 252.82L307.51 252.71Q307.34 252.62 307.26 252.78 306.13 255.05 305.24 257.22 305.23 257.26 305.2 257.24L304.97 257.12Q304.77 257.01 304.89 256.82 305.62 255.63 305.93 254.25l12.09-25.79L323.12 217.7 323.73 217.65Q324.29 217.6 324.32 217.04 324.34 216.71 324.56 216.47 325.2 215.76 324.74 216.59 324.56 216.9 324.39 217.19 324.34 217.28 324.42 217.33 324.53 217.4 324.61 217.5 324.73 217.67 324.8 217.48L327.22 210.74Q327.33 210.44 327.62 210.57L327.88 210.69Q327.9 210.7 327.87 210.75L326.51 213.47Q326.35 213.8 326.68 213.96L326.95 214.1A.12.12.0 00327.11 214.04Q328.64 210.79 330.13 208.73 334.34 202.94 338.25 196.98C340.99 192.8 344.46 188.91 347.45 184.72 354.15 177.8 360.8 170.55 367.83 164.27q12-10.73 19.83-17.12Q394.42 141.62 403.28 136.68C409.18 133.39 416.56 130.57 423.21 127.52l11.43-4.11Q434.84 123.34 434.69 123.5 434.59 123.61 434.43 123.71 433.68 124.17 434.55 124.09 434.86 124.06 435.14 123.85 436.98 122.44 438.8 120.98 441.01 120.23 443.25 119.55 444.28 119.23 445.1 118.66 445.73 118.22 446.29 117.73 446.79 117.29 447.42 117.07C455.62 114.24 463.27 111.26 471.85 109.31q25.13-5.69 47.4-6.13Q535.59 102.85 556.72 105.12zM323.4069 219.9496A.86.45 98.9 00323.9846 219.1696.86.45 98.9 00323.6731 218.2504.86.45 98.9 00323.0954 219.0304.86.45 98.9 00323.4069 219.9496z"/><path fill="#c4e6ff" d="M599.28 114.25Q597.76 114.63 596.46 114.17 594.18 113.36 593.93 113.32C591.64 112.98 589.32 112.96 587.12 112.11Q584.36 111.04 581.38 110.86 580.67 110.82 580.44 110.18 580.27 109.74 579.82 109.64C577.17 109.07 574.83 109.21 572.15 108.42Q564.58 106.17 556.72 105.12 563.66 104.88 573.39 106.9 583.64 109.04 593.69 111.95 596.64 112.8 599.28 114.25zm-36.41-8.61Q563.01 105.79 563.21 105.74 563.58 105.65 563.24 105.48 563.06 105.39 562.89 105.5A.09.09.0 00562.87 105.64z"/><path fill="#276089" d="M562.87 105.64A.09.09.0 01562.89 105.5Q563.06 105.39 563.24 105.48 563.58 105.65 563.21 105.74 563.01 105.79 562.87 105.64z"/><path fill="#c4e6ff" d="M600.47 115.15C602.23 115.81 604.1 115.65 605.94 116.26Q617.15 119.97 632.39 126.59 639.79 129.81 644.35 132.84 648.98 135.92 653.7 138.48 660.44 142.14 667.31 146.74 669.3 148.07 670.69 149.82C672.51 152.11 674.74 153.75 677.29 155.11Q677.52 155.24 677.32 155.07 676.02 153.98 674.54 153.03 674.33 152.89 674.46 152.68L674.6 152.47A.07.06-54.1 01674.69 152.45Q677.63 154.54 680.73 157.06C681.72 157.86 681.82 159.06 682.74 159.88 686.76 163.44 691.17 166.84 694.54 171.01 697.85 175.09 701.84 178.13 704.82 182.42Q707.54 186.33 711.27 189.61C714.67 192.59 716.95 196.39 719.49 200.03Q721.11 202.35 722.92 204.55 724.69 206.7 726.04 209.26C727.16 211.39 728.87 212.88 729.84 215.09 730.63 216.88 731.88 218.02 732.62 219.78Q733.24 221.24 734.21 222.51C735.24 223.86 735.76 225.32 736.66 226.75Q741.38 234.25 743.7 240.2 745.67 245.25 747.54 249.46 752.59 260.84 754.89 272.75 757.01 283.7 758.91 294.37 760.99 306.01 761.63 314.17 763.46 337.48 760.51 360.7 759.76 366.58 757.81 375.98 756.26 383.46 754.7 391.19 747.41 397.76 741.58 399.89 740.39 400.32 736.23 400.97 736.19 399.08 736.19 397 736.25 364.24 736.08 332.62 736.01 320.31 735.73 318.39 734.73 311.55 729.94 305.03 725.51 299 718.01 296.26 720.33 291.8 720.2 288.75 719.97 283.23 719.73 277.51 719.1 262.72 715.03 248.51 707.52 222.27 696.62 201.36 692.99 194.41 686.51 185.46 681.7 178.84 674.58 171.2q-17.08-18.32-31.59-30.96C638.52 136.35 633.49 132.58 628.21 129.72q-19.33-10.5-40.26-16.71Q587.79 112.96 587.83 112.79 587.87 112.62 588.04 112.66 594.24 113.95 600.47 115.15z"/><path fill="#c4e6ff" d="M438.8 120.98Q436.98 122.44 435.14 123.85 434.86 124.06 434.55 124.09 433.68 124.17 434.43 123.71 434.59 123.61 434.69 123.5 434.84 123.34 434.64 123.41l-11.43 4.11Q431.12 123.7 434.78 122.21 435.57 121.88 438.8 120.98z"/><path fill="#c4e6ff" d="M347.45 184.72C344.46 188.91 340.99 192.8 338.25 196.98Q334.34 202.94 330.13 208.73 328.64 210.79 327.11 214.04A.12.12.0 01326.95 214.1L326.68 213.96Q326.35 213.8 326.51 213.47L327.87 210.75Q327.9 210.7 327.88 210.69L327.62 210.57Q327.33 210.44 327.22 210.74L324.8 217.48Q324.73 217.67 324.61 217.5 324.53 217.4 324.42 217.33 324.34 217.28 324.39 217.19 324.56 216.9 324.74 216.59 325.2 215.76 324.56 216.47 324.34 216.71 324.32 217.04 324.29 217.6 323.73 217.65L323.12 217.7Q324.07 214.8 325.72 212.66A1.3 1.27-28 00326 211.78Q325.89 209.82 327.61 209.58 328.09 209.52 328.39 209.14 329.06 208.29 329.4 207.32A1.85 1.78 81.9 01329.99 206.5Q331.13 205.63 331.06 204.2 331.05 203.97 330.84 203.87 330.79 203.85 330.75 203.87 330.54 203.94 330.7 203.79 332.05 202.53 333.03 201 333.07 200.95 333.11 201 333.2 201.13 333.12 201.24 332.29 202.33 331.44 203.69 331.41 203.74 331.46 203.78L331.79 204.04Q332.03 204.23 332.21 203.99 335.04 200.12 338.12 196.15 338.54 195.6 337.92 195.9 337.86 195.93 337.81 195.97 337.39 196.28 337.73 195.89 339.03 194.41 339.71 192.6 339.91 192.07 340.4 191.9 340.53 191.86 340.65 191.92 341.01 192.11 341.03 191.71 341.07 190.8 341.84 190.38 342.21 190.18 342.5 189.88L347.45 184.72z"/><ellipse fill="#c4e6ff" cx="0" cy="0" transform="translate(323.54,219.10) rotate(98.9)" rx=".86" ry=".45"/><path fill="#c4e6ff" d="M305.93 254.25Q304.46 256.44 305.99 252.05 309.37 242.33 311.76 237.75 313.27 234.86 318.02 228.46l-12.09 25.79z"/><path fill="#fff" d="M664.46 705.55Q662.11 704.49 659.7 703.75 657.6 703.1 655.67 702.18 653.66 701.22 651.42 700.83C647.87 700.21 644.58 699.9 641.14 698.5Q637.25 696.91 633.31 695.66 624.29 692.77 614.98 690.12 607.98 688.12 599.95 686.55 588.3 684.27 584.74 683.66 576.99 682.31 572.05 680.95 571.41 667.76 571.39 654.5 571.18 513.33 571.34 375.93A1.9 1.89-9.9 01572.6 374.15Q592.44 367.1 619.65 358.49 641.72 351.5 665.91 342.7 679.62 337.71 699.4 332.06A.89.88 85.1 01700.52 333.01Q700.38 334.25 700.4 335.5 701.46 420.35 700.93 458.5 700.28 504.3 700.42 518.5 701.4 620.4 700.53 711.75 700.51 713.85 701.07 715.67A.45.45.0 01700.51 716.23L664.46 705.55zm14.76-333.02C679.23 371.09 679.54 369.88 679.85 368.51A.54.54.0 00679.29 367.85Q677.1 368.03 675.2 368.64 662.08 372.86 652.04 375.23 641.91 377.62 633.09 380.61 616.35 386.29 597.27 393.54C595.19 394.33 594.11 394.37 594.1 396.75Q593.82 453.73 594.23 510.63A.53.53.0 00594.87 511.14C612.16 507.54 629.52 503.71 647.2 500.59Q662.96 497.81 678.69 494.94 679.2 494.85 679.2 494.33 679.02 429.9 679.22 372.53zM679.1894 535.7817a14.73 13.11 84.9 0011.7487-15.8371 14.73 13.11 84.9 00-14.3675-13.5063 14.73 13.11 84.9 00-11.7487 15.8371 14.73 13.11 84.9 0014.3675 13.5063zM653.47 677.48C653.58 677.65 653.78 677.81 653.97 677.85Q666.29 680.76 678.03 684.83A.8.79-79.7 00679.09 684.09C679.65 637.75 679.02 593.21 679.12 547.6Q679.12 546.36 677.91 546.11 673.94 545.3 670.08 544.24C662.1 542.05 657.76 536.87 655.27 529.33A.58.57 76.9 00654.64 528.93Q625.29 532.84 594.78 537.76A.97.97.0 00593.96 538.72L594.14 660.05A1.82 1.81-79.8 00595.31 661.75Q600.8 663.83 606.74 665.66 624.02 670.98 642.31 674.66 645.11 675.22 647.69 676.02 650.42 676.85 653.38 677.42 653.44 677.43 653.47 677.48z"/><path fill="#276089" d="M679.22 372.53Q679.02 429.9 679.2 494.33 679.2 494.85 678.69 494.94 662.96 497.81 647.2 500.59C629.52 503.71 612.16 507.54 594.87 511.14A.53.53.0 01594.23 510.63Q593.82 453.73 594.1 396.75C594.11 394.37 595.19 394.33 597.27 393.54Q616.35 386.29 633.09 380.61 641.91 377.62 652.04 375.23 662.08 372.86 675.2 368.64 677.1 368.03 679.29 367.85A.54.54.0 01679.85 368.51C679.54 369.88 679.23 371.09 679.22 372.53zM663.15 390.16A.99.99.0 00661.85 389.22l-51.99 17.14A.99.99.0 00609.19 407.31L609.77 491.24A.99.99.0 00610.99 492.19L662.55 480A.99.99.0 00663.31 479.04L663.15 390.16z"/><path fill="#fff" d="M840.02 375.3Q848.37 376.89 856.74 378.43 858.39 378.73 859.67 379.4 861.35 380.28 862.67 380.11 863.04 380.06 862.71 380.22 862.58 380.28 862.61 380.45A.15.15.0 00862.73 380.57Q866.19 381.33 869.24 383.34 871.62 384.91 874.77 386.12 881.6 388.74 888.03 392.3C906.76 403.64 921.71 419.38 934.75 436.96Q933.36 439.7 931.62 440.82 930.42 441.59 929.18 440.89C920.72 436.1 912.25 432.32 903.95 427.51Q895.85 422.81 887.81 419.18A.49.49.0 00887.11 419.62Q887.09 420.94 887.79 422.07C891.49 428.02 895.07 433.53 898.27 440Q900.43 444.36 901.68 448 905.05 457.86 905.65 470.46 906.19 481.77 906.47 492.77 906.79 505.08 902.92 519.5C901.13 526.18 898.98 532.57 895.88 538.78Q889.94 550.64 883.64 559.19 875.85 569.75 866.31 577.47 846.68 593.35 821.44 600.21C811.7 602.85 801.87 603.19 791.75 603.52Q762.45 604.46 736.15 604.08 735.19 527.79 735.46 497.75 735.9 449.45 736.23 400.97 740.39 400.32 741.58 399.89 747.41 397.76 754.7 391.19 759.7 387.91 764.64 384.8 770.87 380.88 775.04 379.37 780.74 377.31 786.68 376.4 787.23 376.32 787.61 375.92 787.88 375.64 788.28 375.61C790.95 375.45 793.63 375.15 796.27 374.55Q803.01 373.01 810.51 372.87C812.06 372.84 813.35 373.41 814.84 373.31 823.73 372.69 831.63 374.33 840.02 375.3z"/><path fill="#c4e6ff" d="M285.05 381.84Q278.05 378.99 270.74 377.14 268.9 376.67 266.46 376.63 264.38 376.6 262.22 375.92C260.5 375.38 258.7 375.47 256.93 375.23Q248.72 374.13 240.43 373.13 255.65 372.58 270.21 376.37C271.98 376.83 274.28 377.77 276.39 378.23 278.26 378.64 279.89 379.5 281.9 380.1Q283.43 380.56 285.05 381.84z"/><path fill="#c4e6ff" d="M888.03 392.3Q881.6 388.74 874.77 386.12 871.62 384.91 869.24 383.34 866.19 381.33 862.73 380.57A.15.15.0 01862.61 380.45Q862.58 380.28 862.71 380.22 863.04 380.06 862.67 380.11 861.35 380.28 859.67 379.4 858.39 378.73 856.74 378.43 848.37 376.89 840.02 375.3 844.1 374.56 848.13 375.43 848.82 375.58 848.13 375.69 847.25 375.84 846.21 375.55 846.17 375.54 846.12 375.55 846.06 375.57 846.08 375.63 846.1 375.67 846.15 375.67 852.48 376.26 856.67 377.6 859.01 378.34 861.51 379.04 864.48 379.88 861.77 378.39 857.11 375.83 849.9 374.55A.03.03.0 01849.87 374.51L849.93 374.26Q849.95 374.2 850.01 374.21 854.27 375.14 858.83 376.66 863.08 378.07 867.06 380.02 872.13 382.5 878.05 384.62 878.28 384.7 878.15 384.9L878 385.13Q877.99 385.16 877.96 385.14L875.59 384Q875.43 383.93 875.35 384.08L875.22 384.3Q875.2 384.34 875.24 384.36q7 3 12.79 7.94z"/><path fill="#fff" d="M663.15 390.16 663.31 479.04A.99.99.0 01662.55 480L610.99 492.19A.99.99.0 01609.77 491.24L609.19 407.31A.99.99.0 01609.86 406.36l51.99-17.14A.99.99.0 01663.15 390.16z"/><path fill="#c4e6ff" d="M934.75 436.96Q940.04 442.39 941.14 445C941.38 445.57 941.28 446.4 941.65 447.11Q943.11 449.92 944.8 452.54 945.59 453.76 946.02 455.01C946.43 456.23 946.62 457.26 947.3 458.42Q949.18 461.64 950.1 465.43 950.98 469.01 952.59 472.89 954.15 476.64 954.92 480.43C956.07 486.17 957.77 492.01 958.61 497.75Q961.35 516.61 959.78 535.62 958.79 547.6 956.49 558.44 955.4 563.55 953.66 569.03 953.13 570.7 952.44 572.26 951.94 573.38 951.83 574.56 951.72 575.76 951.27 576.84 949.11 582.1 946.91 587.17 946.3 588.59 945.97 590.12 945.61 591.77 944.69 593.13A1.71 1.69-26.2 00944.39 593.99Q944.29 595.46 943.33 596.5A.83.81 57.5 00943.16 597.31L943.29 597.67Q943.45 598.12 943.21 598.54C941.92 600.89 940.33 603.02 939.12 605.35 937.51 608.42 935.19 610.8 933.33 613.73Q929.31 620.09 923.63 625.37 915.92 632.55 907.95 640.2C899.29 648.52 886.51 656.73 874.77 663.04 868.01 666.67 860.03 669.38 852.49 671.66Q847.16 673.28 841.39 674.15 817.97 677.68 795.44 677.62 767.94 677.54 738.87 677.73A2.19 2.19.0 01736.67 675.56L736.15 604.08Q762.45 604.46 791.75 603.52C801.87 603.19 811.7 602.85 821.44 600.21Q846.68 593.35 866.31 577.47 875.85 569.75 883.64 559.19 889.94 550.64 895.88 538.78C898.98 532.57 901.13 526.18 902.92 519.5Q906.79 505.08 906.47 492.77 906.19 481.77 905.65 470.46 905.05 457.86 901.68 448 900.43 444.36 898.27 440C895.07 433.53 891.49 428.02 887.79 422.07Q887.09 420.94 887.11 419.62A.49.49.0 01887.81 419.18Q895.85 422.81 903.95 427.51C912.25 432.32 920.72 436.1 929.18 440.89Q930.42 441.59 931.62 440.82 933.36 439.7 934.75 436.96z"/><path fill="#c4e6ff" d="M422.48 603.46 422.22 676.12A.94.94.0 01421.31 677.06Q415.61 677.25 410.89 677.26 335.37 677.38 258.42 677.27 241.51 677.25 227.85 675.5C220.75 674.59 213.79 672.17 206.39 672.09Q203.51 672.06 200.92 670.96 193.12 667.64 184.36 663.69 179.72 661.6 176.36 658.71 176.21 658.58 176.38 658.48 176.5 658.41 176.63 658.37 176.74 658.34 176.62 658.35 175.25 658.44 174.47 657.33 174.27 657.04 173.93 657.11 173.4 657.21 172.97 656.97 162.21 650.9 156.23 646.33q-27.47-20.98-43.03-52.74Q103.83 574.46 100.1 554.97 98.75 547.92 98.18 537.77C99.61 542.27 101.52 546 106.78 543.08Q107.23 542.83 107.3 542.31C108.26 535.39 108.92 528.49 109.93 521.65Q111.47 511.33 116.92 498.43q4.25-10.05 8.58-17.14C129.7 474.41 134.82 467.17 138.35 459.6Q139.5 457.14 141.46 455.04 146.57 449.55 151.06 444.55 152.56 442.88 153.86 442.72 155.48 442.53 155.02 444.09 151.96 454.51 150.07 463.83C149.69 465.7 150.03 467.49 149.5 469.45Q148.73 472.34 148.6 475.52 148.17 486.3 148.32 495.49 148.38 499.18 149.17 502.91 150.92 511.24 153.32 520.84 155.23 528.46 157.62 533.43C162.76 544.13 168.02 553.53 176.23 562.27 184.08 570.63 192.75 579.51 202.18 585.6q22.78 14.73 48.84 16.86Q267.13 603.77 284.71 603.84 348.88 604.09 412.59 603.87 416.66 603.86 421.43 604.61 421.98 604.7 422.19 604.18L422.48 603.46z"/><path fill="#fff" d="M506.73 508.96C499.77 508.84 492.34 509.35 485.38 508.57A.85.84-75.5 01484.7 507.4C486.13 503.98 488.69 501.42 490.59 498.33q9-14.71 17.55-27.52Q508.89 469.68 509.34 468.32A.71.71.0 01510.64 468.22Q513.11 473.15 516.03 477.72 525.56 492.62 535.94 506.56 536.77 507.68 535.45 508.14 534.45 508.49 533.37 508.51 524.38 508.75 514.72 508.66A.65.65.0 00514.06 509.31L513.68 567.99Q513.67 569.51 512.14 569.48L509.29 569.43A1.71 1.71.0 01507.61 567.73L507.24 509.47Q507.23 508.97 506.73 508.96z"/><ellipse fill="#276089" cx="0" cy="0" transform="translate(677.88,521.11) rotate(84.9)" rx="14.73" ry="13.11"/><path fill="#276089" d="M653.38 677.42Q650.42 676.85 647.69 676.02 645.11 675.22 642.31 674.66 624.02 670.98 606.74 665.66 600.8 663.83 595.31 661.75A1.82 1.81-79.8 01594.14 660.05L593.96 538.72A.97.97.0 01594.78 537.76Q625.29 532.84 654.64 528.93A.58.57 76.9 01655.27 529.33C657.76 536.87 662.1 542.05 670.08 544.24Q673.94 545.3 677.91 546.11 679.12 546.36 679.12 547.6C679.02 593.21 679.65 637.75 679.09 684.09A.8.79-79.7 01678.03 684.83Q666.29 680.76 653.97 677.85C653.78 677.81 653.58 677.65 653.47 677.48Q653.44 677.43 653.38 677.42zm-43.37-32.04C610.01 646.98 610.77 648.42 612.26 649.06 620.63 652.63 629.2 654.01 637.6 656.47Q649.19 659.86 661.88 663.03 663.27 663.38 663.33 661.95 663.43 659.77 663.43 657.69 663.36 600.71 663.09 550.52A1.49 1.48 1.9 00661.71 549.05Q658.24 548.79 654.88 548.95 640.98 549.6 624.11 551.2 617.1 551.87 609.98 552.02A.46.45-1.3 00609.53 552.48Q609.94 600.04 610.01 645.38z"/><path fill="#fff" d="M612.26 649.06C610.77 648.42 610.01 646.98 610.01 645.38Q609.94 600.04 609.53 552.48A.46.45-1.3 01609.98 552.02Q617.1 551.87 624.11 551.2 640.98 549.6 654.88 548.95 658.24 548.79 661.71 549.05A1.49 1.48 1.9 01663.09 550.52Q663.36 600.71 663.43 657.69 663.43 659.77 663.33 661.95 663.27 663.38 661.88 663.03 649.19 659.86 637.6 656.47C629.2 654.01 620.63 652.63 612.26 649.06z"/><path fill="#c4e6ff" d="M664.46 705.55Q660.29 705.43 657.52 704.26 655.83 703.54 654.31 703.37 652.68 703.19 651.25 702.9 635.66 699.73 630.86 698.4 618.05 694.87 604.84 691.11C600.29 689.82 595.8 687.86 591.3 687.21Q588.82 686.85 585.95 686.1 584.37 685.69 582 685.13 580.2 684.7 578.66 683.64 578.25 683.35 577.75 683.35 573.46 683.34 572.05 680.95 576.99 682.31 584.74 683.66 588.3 684.27 599.95 686.55 607.98 688.12 614.98 690.12 624.29 692.77 633.31 695.66 637.25 696.91 641.14 698.5C644.58 699.9 647.87 700.21 651.42 700.83Q653.66 701.22 655.67 702.18 657.6 703.1 659.7 703.75 662.11 704.49 664.46 705.55z"/></svg></span><span class=navbar-brand__name>Apache OpenServerless™</span></a><div class="td-navbar-nav-scroll ms-md-auto" id=main_navbar><ul class=navbar-nav><li class=nav-item><a class=nav-link href=/about/><span>About</span></a></li><li class=nav-item><a class=nav-link href=/blog/><span>Blog</span></a></li><li class=nav-item><a class="nav-link active" href=/docs/><span>Docs</span></a></li><li class=nav-item><a class=nav-link href=/community/><span>Community</span></a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" role=button data-bs-toggle=dropdown aria-haspopup=true aria-expanded=false href><span>Apache Software Foundation</span></a><ul class=dropdown-menu><li><a class=dropdown-item href=https://www.apache.org/>Apache Homepage</a></li><li><a class=dropdown-item href=https://www.apache.org/licenses/>License</a></li><li><a class=dropdown-item href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a class=dropdown-item href=https://www.apache.org/foundation/thanks.html>Thanks</a></li><li><a class=dropdown-item href=https://www.apache.org/security/>Security</a></li><li><a class=dropdown-item href=https://privacy.apache.org/policies/privacy-policy-public.html>Privacy</a></li><li><a class=dropdown-item href=https://www.apache.org/events/current-event>Events</a></li></ul></li></ul></div></div></nav></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-xl-nowrap"><aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><div id=td-sidebar-menu class=td-sidebar__inner><form class="td-sidebar__search d-flex align-items-center"><div class="td-search td-search--offline"><div class=td-search__icon></div><input type=search class="td-search__input form-control" placeholder="Search this site…" aria-label="Search this site…" autocomplete=off data-offline-search-index-json-src=/offline-search-index.18d36acbfd11db1d3f75fcbb2d1cd511.json data-offline-search-base-href=/ data-offline-search-max-results=10></div><button class="btn btn-link td-sidebar__toggle d-md-none p-0 ms-3 fas fa-bars" type=button data-bs-toggle=collapse data-bs-target=#td-section-nav aria-controls=td-section-nav aria-expanded=false aria-label="Toggle section navigation"></button></form><nav class="td-sidebar-nav collapse foldable-nav" id=td-section-nav><ul class="td-sidebar-nav__section pe-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docs-li><a href=/docs/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section tree-root" id=m-docs><span>Docs</span></a><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docstutorial-li><input type=checkbox id=m-docstutorial-check checked>
<label for=m-docstutorial-check><a href=/docs/tutorial/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorial><span>Tutorial</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id=m-docstutorialgetting-started-li><input type=checkbox id=m-docstutorialgetting-started-check checked>
<label for=m-docstutorialgetting-started-check><a href=/docs/tutorial/getting-started/ class="align-left ps-0 active td-sidebar-link td-sidebar-link__section" id=m-docstutorialgetting-started><span class=td-sidebar-nav-active-item>Getting started</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialfirst-steps-li><input type=checkbox id=m-docstutorialfirst-steps-check>
<label for=m-docstutorialfirst-steps-check><a href=/docs/tutorial/first-steps/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialfirst-steps><span>First steps</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialform-validation-li><input type=checkbox id=m-docstutorialform-validation-check>
<label for=m-docstutorialform-validation-check><a href=/docs/tutorial/form-validation/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialform-validation><span>Form validation</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialuse-database-li><input type=checkbox id=m-docstutorialuse-database-check>
<label for=m-docstutorialuse-database-check><a href=/docs/tutorial/use-database/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialuse-database><span>Use database</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialnotify-message-li><input type=checkbox id=m-docstutorialnotify-message-check>
<label for=m-docstutorialnotify-message-check><a href=/docs/tutorial/notify-message/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialnotify-message><span>Sending notifications</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialpackaging-li><input type=checkbox id=m-docstutorialpackaging-check>
<label for=m-docstutorialpackaging-check><a href=/docs/tutorial/packaging/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialpackaging><span>App Deployment</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docstutorialconclusions-li><input type=checkbox id=m-docstutorialconclusions-check>
<label for=m-docstutorialconclusions-check><a href=/docs/tutorial/conclusions/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docstutorialconclusions><span>Conclusions</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docscli-li><input type=checkbox id=m-docscli-check>
<label for=m-docscli-check><a href=/docs/cli/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docscli><span>CLI</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsclientities-li><input type=checkbox id=m-docsclientities-check>
<label for=m-docsclientities-check><a href=/docs/cli/entities/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientities><span>Entities</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiespackages-li><input type=checkbox id=m-docsclientitiespackages-check>
<label for=m-docsclientitiespackages-check><a href=/docs/cli/entities/packages/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiespackages><span>Packages</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiesactions-li><input type=checkbox id=m-docsclientitiesactions-check>
<label for=m-docsclientitiesactions-check><a href=/docs/cli/entities/actions/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiesactions><span>Actions</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiesactivations-li><input type=checkbox id=m-docsclientitiesactivations-check>
<label for=m-docsclientitiesactivations-check><a href=/docs/cli/entities/activations/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiesactivations><span>Activations</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiessequences-li><input type=checkbox id=m-docsclientitiessequences-check>
<label for=m-docsclientitiessequences-check><a href=/docs/cli/entities/sequences/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiessequences><span>Sequences</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiestriggers-li><input type=checkbox id=m-docsclientitiestriggers-check>
<label for=m-docsclientitiestriggers-check><a href=/docs/cli/entities/triggers/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiestriggers><span>Triggers</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclientitiesrules-li><input type=checkbox id=m-docsclientitiesrules-check>
<label for=m-docsclientitiesrules-check><a href=/docs/cli/entities/rules/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclientitiesrules><span>Rules</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscliadmin-li><input type=checkbox id=m-docscliadmin-check>
<label for=m-docscliadmin-check><a href=/docs/cli/admin/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docscliadmin><span>Administration</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsclidebug-li><input type=checkbox id=m-docsclidebug-check>
<label for=m-docsclidebug-check><a href=/docs/cli/debug/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsclidebug><span>Debugging</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscliproject-li><input type=checkbox id=m-docscliproject-check>
<label for=m-docscliproject-check><a href=/docs/cli/project/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docscliproject><span>Project</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docscliassets-li><input type=checkbox id=m-docscliassets-check>
<label for=m-docscliassets-check><a href=/docs/cli/assets/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docscliassets><span>Web Assets</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreference-li><input type=checkbox id=m-docsreference-check>
<label for=m-docsreference-check><a href=/docs/reference/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreference><span>Reference</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferenceentities-li><input type=checkbox id=m-docsreferenceentities-check>
<label for=m-docsreferenceentities-check><a href=/docs/reference/entities/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentities><span>Entities</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitiesactions-li><input type=checkbox id=m-docsreferenceentitiesactions-check>
<label for=m-docsreferenceentitiesactions-check><a href=/docs/reference/entities/actions/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitiesactions><span>Actions</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitieswebactions-li><input type=checkbox id=m-docsreferenceentitieswebactions-check>
<label for=m-docsreferenceentitieswebactions-check><a href=/docs/reference/entities/webactions/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitieswebactions><span>Web Actions</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitiesparameters-li><input type=checkbox id=m-docsreferenceentitiesparameters-check>
<label for=m-docsreferenceentitiesparameters-check><a href=/docs/reference/entities/parameters/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitiesparameters><span>Parameters</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitiesannotations-li><input type=checkbox id=m-docsreferenceentitiesannotations-check>
<label for=m-docsreferenceentitiesannotations-check><a href=/docs/reference/entities/annotations/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitiesannotations><span>Annotations</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitiespackages-li><input type=checkbox id=m-docsreferenceentitiespackages-check>
<label for=m-docsreferenceentitiespackages-check><a href=/docs/reference/entities/packages/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitiespackages><span>Packages</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceentitiesfeeds-li><input type=checkbox id=m-docsreferenceentitiesfeeds-check>
<label for=m-docsreferenceentitiesfeeds-check><a href=/docs/reference/entities/feeds/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceentitiesfeeds><span>Feeds</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferencereferences-li><input type=checkbox id=m-docsreferencereferences-check>
<label for=m-docsreferencereferences-check><a href=/docs/reference/references/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferences><span>Advanced Reference Guide</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesadvanced-cli-li><input type=checkbox id=m-docsreferencereferencesadvanced-cli-check>
<label for=m-docsreferencereferencesadvanced-cli-check><a href=/docs/reference/references/advanced-cli/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesadvanced-cli><span>Advanced CLI</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesnaming-limits-li><input type=checkbox id=m-docsreferencereferencesnaming-limits-check>
<label for=m-docsreferencereferencesnaming-limits-check><a href=/docs/reference/references/naming-limits/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesnaming-limits><span>Naming Limits</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesrest_api-li><input type=checkbox id=m-docsreferencereferencesrest_api-check>
<label for=m-docsreferencereferencesrest_api-check><a href=/docs/reference/references/rest_api/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesrest_api><span>Rest API</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesscheduler-li><input type=checkbox id=m-docsreferencereferencesscheduler-check>
<label for=m-docsreferencereferencesscheduler-check><a href=/docs/reference/references/scheduler/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesscheduler><span>Scheduler</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesactions-new-li><input type=checkbox id=m-docsreferencereferencesactions-new-check>
<label for=m-docsreferencereferencesactions-new-check><a href=/docs/reference/references/actions-new/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesactions-new><span>Runtimes under the hood</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencereferencesactions-actionloop-li><input type=checkbox id=m-docsreferencereferencesactions-actionloop-check>
<label for=m-docsreferencereferencesactions-actionloop-check><a href=/docs/reference/references/actions-actionloop/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencereferencesactions-actionloop><span>Building your runtime</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferenceruntimes-li><input type=checkbox id=m-docsreferenceruntimes-check>
<label for=m-docsreferenceruntimes-check><a href=/docs/reference/runtimes/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimes><span>Runtimes</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferenceruntimesnodejs-li><input type=checkbox id=m-docsreferenceruntimesnodejs-check>
<label for=m-docsreferenceruntimesnodejs-check><a href=/docs/reference/runtimes/nodejs/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesnodejs><span>NodeJS</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesnodejsnodejsv18-li><input type=checkbox id=m-docsreferenceruntimesnodejsnodejsv18-check>
<label for=m-docsreferenceruntimesnodejsnodejsv18-check><a href=/docs/reference/runtimes/nodejs/nodejsv18/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesnodejsnodejsv18><span>nodejs:v18</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesnodejsnodejsv20-li><input type=checkbox id=m-docsreferenceruntimesnodejsnodejsv20-check>
<label for=m-docsreferenceruntimesnodejsnodejsv20-check><a href=/docs/reference/runtimes/nodejs/nodejsv20/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesnodejsnodejsv20><span>nodejs:v20</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesnodejsnodejsv21-li><input type=checkbox id=m-docsreferenceruntimesnodejsnodejsv21-check>
<label for=m-docsreferenceruntimesnodejsnodejsv21-check><a href=/docs/reference/runtimes/nodejs/nodejsv21/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesnodejsnodejsv21><span>nodejs:v21</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferenceruntimesphp-li><input type=checkbox id=m-docsreferenceruntimesphp-check>
<label for=m-docsreferenceruntimesphp-check><a href=/docs/reference/runtimes/php/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesphp><span>PHP</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesphpphpv80-li><input type=checkbox id=m-docsreferenceruntimesphpphpv80-check>
<label for=m-docsreferenceruntimesphpphpv80-check><a href=/docs/reference/runtimes/php/phpv8.0/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesphpphpv80><span>php:v8.0</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesphpphpv81-li><input type=checkbox id=m-docsreferenceruntimesphpphpv81-check>
<label for=m-docsreferenceruntimesphpphpv81-check><a href=/docs/reference/runtimes/php/phpv8.1/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesphpphpv81><span>php:v8.1</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesphpphpv82-li><input type=checkbox id=m-docsreferenceruntimesphpphpv82-check>
<label for=m-docsreferenceruntimesphpphpv82-check><a href=/docs/reference/runtimes/php/phpv8.2/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesphpphpv82><span>php:v8.2</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimesphpphpv83-li><input type=checkbox id=m-docsreferenceruntimesphpphpv83-check>
<label for=m-docsreferenceruntimesphpphpv83-check><a href=/docs/reference/runtimes/php/phpv8.3/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimesphpphpv83><span>php:v8.3</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferenceruntimespython-li><input type=checkbox id=m-docsreferenceruntimespython-check>
<label for=m-docsreferenceruntimespython-check><a href=/docs/reference/runtimes/python/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimespython><span>Python</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimespythonpythonv310-li><input type=checkbox id=m-docsreferenceruntimespythonpythonv310-check>
<label for=m-docsreferenceruntimespythonpythonv310-check><a href=/docs/reference/runtimes/python/pythonv3.10/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimespythonpythonv310><span>python:v3.10</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimespythonpythonv311-li><input type=checkbox id=m-docsreferenceruntimespythonpythonv311-check>
<label for=m-docsreferenceruntimespythonpythonv311-check><a href=/docs/reference/runtimes/python/pythonv3.11/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimespythonpythonv311><span>python:v3.11</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferenceruntimespythonpythonv312-li><input type=checkbox id=m-docsreferenceruntimespythonpythonv312-check>
<label for=m-docsreferenceruntimespythonpythonv312-check><a href=/docs/reference/runtimes/python/pythonv3.12/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferenceruntimespythonpythonv312><span>python:v3.12</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferencetasks-li><input type=checkbox id=m-docsreferencetasks-check>
<label for=m-docsreferencetasks-check><a href=/docs/reference/tasks/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasks><span>Tasks</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksadmin-li><input type=checkbox id=m-docsreferencetasksadmin-check>
<label for=m-docsreferencetasksadmin-check><a href=/docs/reference/tasks/admin/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksadmin><span>Admin</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferencetaskscloud-li><input type=checkbox id=m-docsreferencetaskscloud-check>
<label for=m-docsreferencetaskscloud-check><a href=/docs/reference/tasks/cloud/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloud><span>Cloud</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudaks-li><input type=checkbox id=m-docsreferencetaskscloudaks-check>
<label for=m-docsreferencetaskscloudaks-check><a href=/docs/reference/tasks/cloud/aks/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudaks><span>Aks</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudaws-li><input type=checkbox id=m-docsreferencetaskscloudaws-check>
<label for=m-docsreferencetaskscloudaws-check><a href=/docs/reference/tasks/cloud/aws/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudaws><span>Aws</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudazcloud-li><input type=checkbox id=m-docsreferencetaskscloudazcloud-check>
<label for=m-docsreferencetaskscloudazcloud-check><a href=/docs/reference/tasks/cloud/azcloud/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudazcloud><span>Azcloud</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudeks-li><input type=checkbox id=m-docsreferencetaskscloudeks-check>
<label for=m-docsreferencetaskscloudeks-check><a href=/docs/reference/tasks/cloud/eks/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudeks><span>Eks</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudgcloud-li><input type=checkbox id=m-docsreferencetaskscloudgcloud-check>
<label for=m-docsreferencetaskscloudgcloud-check><a href=/docs/reference/tasks/cloud/gcloud/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudgcloud><span>Gcloud</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudgke-li><input type=checkbox id=m-docsreferencetaskscloudgke-check>
<label for=m-docsreferencetaskscloudgke-check><a href=/docs/reference/tasks/cloud/gke/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudgke><span>Gke</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudk3s-li><input type=checkbox id=m-docsreferencetaskscloudk3s-check>
<label for=m-docsreferencetaskscloudk3s-check><a href=/docs/reference/tasks/cloud/k3s/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudk3s><span>K3s</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudmk8s-li><input type=checkbox id=m-docsreferencetaskscloudmk8s-check>
<label for=m-docsreferencetaskscloudmk8s-check><a href=/docs/reference/tasks/cloud/mk8s/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudmk8s><span>Mk8s</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskscloudosh-li><input type=checkbox id=m-docsreferencetaskscloudosh-check>
<label for=m-docsreferencetaskscloudosh-check><a href=/docs/reference/tasks/cloud/osh/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskscloudosh><span>Osh</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksconfig-li><input type=checkbox id=m-docsreferencetasksconfig-check>
<label for=m-docsreferencetasksconfig-check><a href=/docs/reference/tasks/config/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksconfig><span>Config</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksdebug-li><input type=checkbox id=m-docsreferencetasksdebug-check>
<label for=m-docsreferencetasksdebug-check><a href=/docs/reference/tasks/debug/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdebug><span>Debug</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferencetasksdevel-li><input type=checkbox id=m-docsreferencetasksdevel-check>
<label for=m-docsreferencetasksdevel-check><a href=/docs/reference/tasks/devel/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdevel><span>Devel</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksdevelferretdb-li><input type=checkbox id=m-docsreferencetasksdevelferretdb-check>
<label for=m-docsreferencetasksdevelferretdb-check><a href=/docs/reference/tasks/devel/ferretdb/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdevelferretdb><span>Ferretdb</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksdevelminio-li><input type=checkbox id=m-docsreferencetasksdevelminio-check>
<label for=m-docsreferencetasksdevelminio-check><a href=/docs/reference/tasks/devel/minio/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdevelminio><span>Minio</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksdevelpsql-li><input type=checkbox id=m-docsreferencetasksdevelpsql-check>
<label for=m-docsreferencetasksdevelpsql-check><a href=/docs/reference/tasks/devel/psql/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdevelpsql><span>Psql</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksdevelredis-li><input type=checkbox id=m-docsreferencetasksdevelredis-check>
<label for=m-docsreferencetasksdevelredis-check><a href=/docs/reference/tasks/devel/redis/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksdevelredis><span>Redis</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksenv-li><input type=checkbox id=m-docsreferencetasksenv-check>
<label for=m-docsreferencetasksenv-check><a href=/docs/reference/tasks/env/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksenv><span>Env</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskside-li><input type=checkbox id=m-docsreferencetaskside-check>
<label for=m-docsreferencetaskside-check><a href=/docs/reference/tasks/ide/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskside><span>Ide</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetaskssetup-li><input type=checkbox id=m-docsreferencetaskssetup-check>
<label for=m-docsreferencetaskssetup-check><a href=/docs/reference/tasks/setup/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetaskssetup><span>Setup</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetasksutil-li><input type=checkbox id=m-docsreferencetasksutil-check>
<label for=m-docsreferencetasksutil-check><a href=/docs/reference/tasks/util/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetasksutil><span>Util</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsreferencetools-li><input type=checkbox id=m-docsreferencetools-check>
<label for=m-docsreferencetools-check><a href=/docs/reference/tools/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetools><span>Tools</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsbase64-li><input type=checkbox id=m-docsreferencetoolsbase64-check>
<label for=m-docsreferencetoolsbase64-check><a href=/docs/reference/tools/base64/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsbase64><span>base64</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsdatefmt-li><input type=checkbox id=m-docsreferencetoolsdatefmt-check>
<label for=m-docsreferencetoolsdatefmt-check><a href=/docs/reference/tools/datefmt/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsdatefmt><span>datefmt</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsechoif-li><input type=checkbox id=m-docsreferencetoolsechoif-check>
<label for=m-docsreferencetoolsechoif-check><a href=/docs/reference/tools/echoif/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsechoif><span>echoif</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsechoifempty-li><input type=checkbox id=m-docsreferencetoolsechoifempty-check>
<label for=m-docsreferencetoolsechoifempty-check><a href=/docs/reference/tools/echoifempty/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsechoifempty><span>echoifempty</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsechoifexists-li><input type=checkbox id=m-docsreferencetoolsechoifexists-check>
<label for=m-docsreferencetoolsechoifexists-check><a href=/docs/reference/tools/echoifexists/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsechoifexists><span>echoifexists</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsempty-li><input type=checkbox id=m-docsreferencetoolsempty-check>
<label for=m-docsreferencetoolsempty-check><a href=/docs/reference/tools/empty/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsempty><span>empty</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsexecutable-li><input type=checkbox id=m-docsreferencetoolsexecutable-check>
<label for=m-docsreferencetoolsexecutable-check><a href=/docs/reference/tools/executable/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsexecutable><span>executable</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsextract-li><input type=checkbox id=m-docsreferencetoolsextract-check>
<label for=m-docsreferencetoolsextract-check><a href=/docs/reference/tools/extract/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsextract><span>extract</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsfiletype-li><input type=checkbox id=m-docsreferencetoolsfiletype-check>
<label for=m-docsreferencetoolsfiletype-check><a href=/docs/reference/tools/filetype/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsfiletype><span>filetype</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsneedupdate-li><input type=checkbox id=m-docsreferencetoolsneedupdate-check>
<label for=m-docsreferencetoolsneedupdate-check><a href=/docs/reference/tools/needupdate/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsneedupdate><span>needupdate</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsopspath-li><input type=checkbox id=m-docsreferencetoolsopspath-check>
<label for=m-docsreferencetoolsopspath-check><a href=/docs/reference/tools/opspath/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsopspath><span>opspath</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsrandom-li><input type=checkbox id=m-docsreferencetoolsrandom-check>
<label for=m-docsreferencetoolsrandom-check><a href=/docs/reference/tools/random/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsrandom><span>random</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsremove-li><input type=checkbox id=m-docsreferencetoolsremove-check>
<label for=m-docsreferencetoolsremove-check><a href=/docs/reference/tools/remove/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsremove><span>remove</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsrename-li><input type=checkbox id=m-docsreferencetoolsrename-check>
<label for=m-docsreferencetoolsrename-check><a href=/docs/reference/tools/rename/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsrename><span>rename</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsretry-li><input type=checkbox id=m-docsreferencetoolsretry-check>
<label for=m-docsreferencetoolsretry-check><a href=/docs/reference/tools/retry/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsretry><span>retry</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolssh-li><input type=checkbox id=m-docsreferencetoolssh-check>
<label for=m-docsreferencetoolssh-check><a href=/docs/reference/tools/sh/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolssh><span>sh</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsurlenc-li><input type=checkbox id=m-docsreferencetoolsurlenc-check>
<label for=m-docsreferencetoolsurlenc-check><a href=/docs/reference/tools/urlenc/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsurlenc><span>urlenc</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsreferencetoolsvalidate-li><input type=checkbox id=m-docsreferencetoolsvalidate-check>
<label for=m-docsreferencetoolsvalidate-check><a href=/docs/reference/tools/validate/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsreferencetoolsvalidate><span>validate</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallation-li><input type=checkbox id=m-docsinstallation-check>
<label for=m-docsinstallation-check><a href=/docs/installation/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallation><span>Installation</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationquickstart-li><input type=checkbox id=m-docsinstallationquickstart-check>
<label for=m-docsinstallationquickstart-check><a href=/docs/installation/quickstart/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationquickstart><span>Quick Start</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationdownload-li><input type=checkbox id=m-docsinstallationdownload-check>
<label for=m-docsinstallationdownload-check><a href=/docs/installation/download/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationdownload><span>Download</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallationprereq-li><input type=checkbox id=m-docsinstallationprereq-check>
<label for=m-docsinstallationprereq-check><a href=/docs/installation/prereq/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereq><span>Prerequisites</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqdocker-li><input type=checkbox id=m-docsinstallationprereqdocker-check>
<label for=m-docsinstallationprereqdocker-check><a href=/docs/installation/prereq/docker/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqdocker><span>Local Docker</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallationprereqserver-li><input type=checkbox id=m-docsinstallationprereqserver-check>
<label for=m-docsinstallationprereqserver-check><a href=/docs/installation/prereq/server/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqserver><span>Linux Server</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqservergeneric-li><input type=checkbox id=m-docsinstallationprereqservergeneric-check>
<label for=m-docsinstallationprereqservergeneric-check><a href=/docs/installation/prereq/server/generic/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqservergeneric><span>SSH and Sudo</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqserveraws-li><input type=checkbox id=m-docsinstallationprereqserveraws-check>
<label for=m-docsinstallationprereqserveraws-check><a href=/docs/installation/prereq/server/aws/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqserveraws><span>Server on AWS</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqserverazure-li><input type=checkbox id=m-docsinstallationprereqserverazure-check>
<label for=m-docsinstallationprereqserverazure-check><a href=/docs/installation/prereq/server/azure/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqserverazure><span>Server on Azure</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqserverk3s-li><input type=checkbox id=m-docsinstallationprereqserverk3s-check>
<label for=m-docsinstallationprereqserverk3s-check><a href=/docs/installation/prereq/server/k3s/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqserverk3s><span>Install K3S</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqservermk8s-li><input type=checkbox id=m-docsinstallationprereqservermk8s-check>
<label for=m-docsinstallationprereqservermk8s-check><a href=/docs/installation/prereq/server/mk8s/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqservermk8s><span>Install MicroK8S</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallationprereqkubernetes-li><input type=checkbox id=m-docsinstallationprereqkubernetes-check>
<label for=m-docsinstallationprereqkubernetes-check><a href=/docs/installation/prereq/kubernetes/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqkubernetes><span>Kubernetes Cluster</span></a></label><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqkuberneteseks-li><input type=checkbox id=m-docsinstallationprereqkuberneteseks-check>
<label for=m-docsinstallationprereqkuberneteseks-check><a href=/docs/installation/prereq/kubernetes/eks/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqkuberneteseks><span>Amazon EKS</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqkubernetesaks-li><input type=checkbox id=m-docsinstallationprereqkubernetesaks-check>
<label for=m-docsinstallationprereqkubernetesaks-check><a href=/docs/installation/prereq/kubernetes/aks/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqkubernetesaks><span>Azure AKS</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationprereqkubernetescluster-li><input type=checkbox id=m-docsinstallationprereqkubernetescluster-check>
<label for=m-docsinstallationprereqkubernetescluster-check><a href=/docs/installation/prereq/kubernetes/cluster/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationprereqkubernetescluster><span>Generic Kubernetes</span></a></label></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallationconfigure-li><input type=checkbox id=m-docsinstallationconfigure-check>
<label for=m-docsinstallationconfigure-check><a href=/docs/installation/configure/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationconfigure><span>Configure OpenServerless</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationconfiguredns-li><input type=checkbox id=m-docsinstallationconfiguredns-check>
<label for=m-docsinstallationconfiguredns-check><a href=/docs/installation/configure/dns/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationconfiguredns><span>DNS and SSL</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationconfigureservices-li><input type=checkbox id=m-docsinstallationconfigureservices-check>
<label for=m-docsinstallationconfigureservices-check><a href=/docs/installation/configure/services/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationconfigureservices><span>Services</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsinstallationinstall-li><input type=checkbox id=m-docsinstallationinstall-check>
<label for=m-docsinstallationinstall-check><a href=/docs/installation/install/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationinstall><span>Install OpenServerless</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationinstalldocker-li><input type=checkbox id=m-docsinstallationinstalldocker-check>
<label for=m-docsinstallationinstalldocker-check><a href=/docs/installation/install/docker/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationinstalldocker><span>Docker</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationinstallserver-li><input type=checkbox id=m-docsinstallationinstallserver-check>
<label for=m-docsinstallationinstallserver-check><a href=/docs/installation/install/server/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationinstallserver><span>Linux Server</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationinstallcluster-li><input type=checkbox id=m-docsinstallationinstallcluster-check>
<label for=m-docsinstallationinstallcluster-check><a href=/docs/installation/install/cluster/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationinstallcluster><span>Kubernetes cluster</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsinstallationdebug-li><input type=checkbox id=m-docsinstallationdebug-check>
<label for=m-docsinstallationdebug-check><a href=/docs/installation/debug/ class="align-left ps-0 td-sidebar-link td-sidebar-link__section" id=m-docsinstallationdebug><span>Troubleshooting</span></a></label></li></ul></li></ul></li></ul></nav></div></aside><aside class="d-none d-xl-block col-xl-2 td-sidebar-toc d-print-none"><div class="td-page-meta ms-2 pb-1 pt-2 mb-0"><a id=print href=/docs/tutorial/getting-started/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#getting-started>Getting started</a><ul><li><a href=#build-a-sample-application>Build a sample Application</a></li><li><a href=#openserverless-cli-ops>Openserverless CLI: Ops</a></li><li><a href=#deploy-openserverless>Deploy OpenServerless</a></li><li><a href=#enabling-services>Enabling Services</a></li><li><a href=#create-a-user>Create a user</a></li><li><a href=#login-as-user>Login as user</a></li><li><a href=#cleaning-up>Cleaning Up</a></li></ul></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/docs/>Docs</a></li><li class=breadcrumb-item><a href=/docs/tutorial/>Tutorial</a></li><li class="breadcrumb-item active" aria-current=page>Getting started</li></ol></nav><div class=td-content><h1>Getting started</h1><div class=lead>Let&rsquo;s start building a sample application</div><header class=article-meta></header><h2 id=getting-started>Getting started</h2><h3 id=build-a-sample-application>Build a sample Application</h3><p>Imagine we have a static website and need server logic to store contacts
and validate data. This would require a server, a database and some code
to glue it all together. With a serverless approach, we can just
sprinkle little functions (that we call actions) on top of our static
website and let OpenServerless take care of the rest. No more setting up
VMs, backend web servers, databases, etc.</p><p>In this tutorial, we will see how you can take advantage of several
services which are already part of a OpenServerless deployment and
develop a contact form page for users to fill it with their emails and
messages, which are then sent via email to us and stored in a database.</p><p>Finally, we&rsquo;ll see how to activate external services using <a href=https://en.wikipedia.org/wiki/Webhook>Web hooks</a>.</p><h3 id=openserverless-cli-ops>Openserverless CLI: Ops</h3><p>Serverless development is mostly performed on the CLI, and
OpenServerless has its tool called <code>ops</code>. It’s a command line tool that
allows you to deploy (and interact with) the platform seamlessly to the
cloud, locally and in custom environments.</p><p>Ops is cross-platform and can be installed on Windows, Linux and MacOS.
You can find the project and the sources on
<a href=https://github.com/apache/openserverless-cli>Apache OpenServerless Cli Github page</a></p><h3 id=deploy-openserverless>Deploy OpenServerless</h3><p>To start using OpenServerless you can refer to the <a href=/docs/installation/>Installation
Guide</a>. You can follow the local
installation to quickly get started with OpenServerless deployed on your
machine, or if you want to follow the tutorial on a deployment on cloud
you can pick one of the many supported cloud provider. Once installed
come back here!</p><h3 id=enabling-services>Enabling Services</h3><p>After installing OpenServerless on a local machine with Docker or on a
supported cloud, you can enable or disable the services offered by the platform.
As we will use Postgres database, the Static content with the Minio S3 compatible
storage, let’s run in the terminal:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops config <span style=color:#204a87>enable</span> --postgres --static --minio --cron
</span></span></code></pre></div><p>This is the default set of services.</p><p>Since you should already have a deployment running, we have to update it
with the new services so they get deployed. Simply run:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops update apply
</span></span></code></pre></div><p>And with just that (when it finishes), we have everything we need ready
to use!</p><style>blockquote.warning{border-color:#b91900!important}blockquote.important{border-color:#e7c416!important}</style><blockquote class=info><p class=quote-title>💡 <strong>NOTE</strong></p><p>If you&rsquo;ve installed the local development environment using the instructions from
the <a href=/docs/installation/install/docker/>Docker installation page</a> you&rsquo;ve already
the base services enabled by default.</p></blockquote><p>You can check what services are enabled with the command:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops config status
</span></span></code></pre></div><p>This should be the output:</p><pre tabindex=0><code>OPERATOR_COMPONENT_MINIO=true
OPERATOR_COMPONENT_MONGODB=true
OPERATOR_COMPONENT_POSTGRES=true
OPERATOR_COMPONENT_STATIC=true
OPERATOR_COMPONENT_CRON=true
OPERATOR_COMPONENT_REDIS=true
</code></pre><h3 id=create-a-user>Create a user</h3><p>If you don&rsquo;t have a user, it&rsquo;s the time to create one. We we&rsquo;ll use it to work on this tutorial.</p><style>blockquote.warning{border-color:#b91900!important}blockquote.important{border-color:#e7c416!important}</style><blockquote class=warning><p class=quote-title><strong>WARNING</strong></p><p>To create a user, we need to be the administrator, like described in <a href=/docs/cli/admin/>this section</a>.</p></blockquote><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops admin adduser opstutorial &lt;youremail&gt; SimplePassword --all
</span></span></code></pre></div><p>The output will be:</p><pre tabindex=0><code>Generated OPSTUTORIAL user secrets.
Creating user opstutorial...
whiskuser.nuvolaris.org/opstutorial created
</code></pre><h3 id=login-as-user>Login as user</h3><p>After user creation, it&rsquo;s time to perform ops login.</p><style>blockquote.warning{border-color:#b91900!important}blockquote.important{border-color:#e7c416!important}</style><blockquote class=info><p class=quote-title>💡 <strong>NOTE</strong></p><p>The <code>ops ide login</code> command will log you in on the server and dump the proper configuration of
active services for your user. The configuration is automatically used by <code>ops</code> for all the tasks.
You only need to run <code>ops ide login</code> once (unless you need to log in to another OpenServerless server or with another
OpenServerless user).</p></blockquote><p>Change your APIHOST accordly, if you&rsquo;ve specified a custom one during the system setup</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops ide login opstutorial http://localhost:80
</span></span></code></pre></div><pre tabindex=0><code>*** Configuring Access to OpenServerless ***
apihost=http://localhost:80 username=opstutorial
Logging in http://localhost:80 as opstutorial
Enter Password:
Successfully logged in as opstutorial.
ok: whisk auth set. Run &#39;wsk property get --auth&#39; to see the new value.
ok: whisk API host set to http://localhost:80
OpenServerless host and auth set successfully. You are now ready to use ops!
</code></pre><h3 id=cleaning-up>Cleaning Up</h3><p>Once you are done and want to clean the services configuration, just
run:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>ops config disable --postgres --static --minio --cron
</span></span></code></pre></div><hr><div class=section-index></div><style>.feedback--answer{display:inline-block}.feedback--answer-no{margin-left:1em}.feedback--response{display:none;margin-top:1em}.feedback--response__visible{display:block}</style><div class=d-print-none><h2 class=feedback--title>Feedback</h2><p class=feedback--question>Was this page helpful?</p><button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
<button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button><p class="feedback--response feedback--response-yes">Glad to hear it! Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p><p class="feedback--response feedback--response-no">Sorry to hear that. Please <a href=https://github.com/USERNAME/REPOSITORY/issues/new>tell us how we can improve</a>.</p></div><script>const yesButton=document.querySelector(".feedback--answer-yes"),noButton=document.querySelector(".feedback--answer-no"),yesResponse=document.querySelector(".feedback--response-yes"),noResponse=document.querySelector(".feedback--response-no"),disableButtons=()=>{yesButton.disabled=!0,noButton.disabled=!0},sendFeedback=e=>{if(typeof gtag!="function")return;gtag("event","page_helpful",{event_category:"Helpful",event_label:window.location.pathname,value:e})};yesButton.addEventListener("click",()=>{yesResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(100)}),noButton.addEventListener("click",()=>{noResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(0)})</script><br></div></main></div></div><footer class="td-footer row d-print-none"><div class=container-fluid><div class="disclaimer text-center"><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-2 order-sm-1">&nbsp;</div><div class="td-footer__right col-6 col-sm-2 order-sm-3">&nbsp;</div><div class="td-footer__center col-12 col-sm-8 py-2 order-sm-2"><p>Apache Openserverless™ is an effort undergoing incubation at The Apache Software Foundation (ASF),
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation
status is not necessarily a reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF.</p><br><br><p>Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache Openserverless, the names of other Apache projects, and the ASF logo are either
registered trademarks or trademarks of the Apache Software Foundation in the United States
and/or other countries.</p></div></div><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-4 order-sm-1">&nbsp;</div><div class="td-footer__right col-6 col-sm-4 order-sm-3">&nbsp;</div><div class="td-footer__center col-12 col-sm-4 py-2 order-sm-2"><a href=https://www.apache.org/><img class="asf-logo rounded-image" src=/images/asf.webp width=256 height=104>
</a><a href=https://incubator.apache.org/projects/openserverless.html><img class="asf-logo rounded-image" src=/images/apache_incubator.webp width=256 height=104></a></div></div></div></div><div class=container-fluid><div class="row mx-md-2"><div class="td-footer__left col-6 col-sm-4 order-sm-1"><ul class=td-footer__links-list><li class=td-footer__links-item data-bs-toggle=tooltip title="Developer mailing list" aria-label="Developer mailing list"><a target=_blank rel=noopener href=mailto:dev-subscribe@openserverless.apache.org aria-label="Developer mailing list"><i class="fa fa-envelope"></i></a></li><li class=td-footer__links-item data-bs-toggle=tooltip title=X.com aria-label=X.com><a target=_blank rel=noopener href=https://x.com/open_serverless aria-label=X.com><i class="fab fa-x-twitter"></i></a></li><li class=td-footer__links-item data-bs-toggle=tooltip title=Reddit aria-label=Reddit><a target=_blank rel=noopener href=https://reddit.com/r/openserverless aria-label=Reddit><i class="fab fa-reddit"></i></a></li></ul></div><div class="td-footer__right col-6 col-sm-4 order-sm-3"><ul class=td-footer__links-list><li class=td-footer__links-item data-bs-toggle=tooltip title=GitHub aria-label=GitHub><a target=_blank rel=noopener href=https://github.com/apache/openserverless aria-label=GitHub><i class="fab fa-github"></i></a></li><li class=td-footer__links-item data-bs-toggle=tooltip title=Discord aria-label=Discord><a target=_blank rel=noopener href=https://discord.com/invite/PkD7CcHgGP aria-label=Discord><i class="fab fa-discord"></i></a></li><li class=td-footer__links-item data-bs-toggle=tooltip title=Slack aria-label=Slack><a target=_blank rel=noopener href=https://the-asf.slack.com/archives/C07B6K5R3F0 aria-label=Slack><i class="fab fa-slack"></i></a></li></ul></div><div class="td-footer__center col-12 col-sm-4 py-2 order-sm-2"><span class=td-footer__copyright>&copy;
2024&ndash;2025
<span class=td-footer__authors>The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</span></span><span class=td-footer__all_rights_reserved>All Rights Reserved</span></div></div></div></footer><div id=theme-toggler-container><button id=theme-toggler class="btn btn-light-dark" aria-label="Toggle theme">
<span id=theme-icon class="fa fa-sun"></span></button></div><script>const themeToggler=document.getElementById("theme-toggler"),themeIcon=document.getElementById("theme-icon"),currentTheme=localStorage.getItem("theme")||"light";themeToggler.addEventListener("click",()=>{document.documentElement.classList.toggle("dark-mode");const e=document.documentElement.classList.contains("dark-mode");themeIcon.classList.toggle("fa-sun",!e),themeIcon.classList.toggle("fa-moon",e),localStorage.setItem("theme",e?"dark":"light")})</script><style>#theme-toggler-container{position:fixed;bottom:70px;right:20px;z-index:1000}.btn-light-dark{background:#fff;border:1px solid #ddd;border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 6px rgba(0,0,0,.1);cursor:pointer;transition:background-color .3s,transform .2s}.btn-light-dark:hover{background:#f0f0f0;transform:scale(1.1)}.dark-mode .btn-light-dark{background:#333;color:#fff;border-color:#444}</style></div><script src=/js/main.min.90902a026ed2aee7ed45d85797f4c790b240ba148ac6f8a6f194cb1981ffecf5.js integrity="sha256-kJAqAm7SruftRdhXl/THkLJAuhSKxvim8ZTLGYH/7PU=" crossorigin=anonymous></script><script src=/js/prism.js></script><script src=/js/tabpane-persist.js></script></body></html>